Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle merken und Rücksprung

Forumthread: Zelle merken und Rücksprung

Zelle merken und Rücksprung
23.05.2003 22:58:53
Hans Jürgen
Problem: Ich möchte mir die Zelle merken, in der mein Makro gestartet wird und am Ende des Makros dorthin zurückspringen.
Wie geht das?
Sorry, habe versucht mit Recherche eine Lösung zu finden, leider reichen meine Kenntnisse dazu nicht aus, da ich die zu suchenden Begriffe nicht kenne.

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zelle merken und Rücksprung
23.05.2003 23:12:57
PeterW

Hallo Hans Jürgen,

bei Fragen zu Code ist es hilfreich zu wissen, wie dein Code aussieht.

Gruß
Peter

Re: Zelle merken und Rücksprung
23.05.2003 23:51:36
L.Vira

Dim ac as Range
set ac = activecell
'...Code
ac.select

Re: Zelle merken und Rücksprung
24.05.2003 23:13:47
Hans Jürgen

Danke, genau nach diesen Befehlen habe ich gesucht!

Ich programmiere meine Makros derzeit nur durch Aufzeichnen mit kleinen von Hand Korrekturen. Habe in der Hilfe von Excel und VBA und der Suche nach "Position merken" u.ä. nichts dazu gefunden.

Ich habe etliche "alte" Programmiersprachen gelernt, aber wenn man "Range", "=activecell" und ".select" nicht kennt, dann ist es halt schwer.


Anzeige
Re: Zelle merken und Rücksprung
24.05.2003 23:18:48
Hans Jürgen

Problem ist bereits gelöst. Trotzdem die Info: Ich habe per Aufzeichnen ein Makro, dass Zeilen einfügt und anschließend ein paar durch das Einfügen zerschossene Formeln korrigiert. Die Korrektur erfolgt mit "Ende oben" und "Ende unten", so dass ich nachher nicht mehr an die Ausgangsposition zurückkomme.
Mit
Dim ac as Range
set ac = activecell
'...Code
ac.select
ist das Problem gelöst.

Anzeige
Re: Zelle merken und Rücksprung/noch was!
24.05.2003 23:50:45
Hans Jürgen

Der Rücksprung funktioniert wie gedacht, jetzt würde ich noch gerne, wenn ohne Aufwand möglich, auch den alten Zustand bezüglich oberster Zeile hinbekommen.
Also: ich stehe irgendwo im Sheet, starte das Makro (Zeile einfügen, in der letzten Spalte Formeln ändern von oben bis unten und Rücksprung auf die Ausgangsposition).
Ich habe die obersten beiden Zeilen fixiert und durch das Springen in der letzten Spalte ist evtl. der Bildschirm verschoben. Wie schaffe ich es, dass z.B. die Zeile 73 (die ich mir vorher merken muss) am Ende des Makros wieder oben unter den fixierten Zeilen steht?
Und noch was: wie kann ich festlegen, dass ein anderes Makro ("Zeile löschen") nur dann ausgeführt wird, wenn sich die aktuelle Position zwischen Zeile 3 und der drittletzten Zeile des Blattes befindet?

Anzeige
;
Anzeige

Infobox / Tutorial

Zelle merken und Rücksprung in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Zelle merken: Um die aktuelle Zelle zu merken, kannst Du folgenden VBA-Code verwenden:

    Dim ac As Range
    Set ac = ActiveCell
  2. Makro ausführen: Führe dein Makro aus, welches die gewünschten Änderungen vornimmt, wie das Einfügen von Zeilen oder das Anpassen von Formeln.

  3. Zurückspringen: Um an die gespeicherte Zelle zurückzuspringen, füge den folgenden Befehl hinzu:

    ac.Select
  4. Oberste Zeile zurücksetzen: Wenn Du möchtest, dass eine bestimmte Zeile (z.B. Zeile 73) nach der Ausführung des Makros wieder oben unter den fixierten Zeilen steht, kannst Du dies so machen:

    Rows("73:73").Select
    ActiveWindow.ScrollRow = ActiveCell.Row - 2 ' Adjust according to your fixed rows
  5. Bedingte Makroausführung: Um ein anderes Makro nur auszuführen, wenn sich die aktuelle Position zwischen Zeile 3 und der drittletzten Zeile befindet, kannst Du eine If-Bedingung verwenden:

    If ActiveCell.Row >= 3 And ActiveCell.Row <= (Rows.Count - 3) Then
        ' Führe dein Makro aus
    End If

Häufige Fehler und Lösungen

  • Fehler beim Rücksprung: Wenn das Rückspringen nicht funktioniert, überprüfe, ob die Variable ac korrekt gesetzt wurde und dass keine Fehler im Makro vorliegen.

  • Zeile nicht sichtbar: Stelle sicher, dass die Zeile, zu der Du zurückspringst, nicht ausgeblendet ist.


Alternative Methoden

Eine alternative Methode, um die aktuelle Zelle zu merken und zurückzuspringen, ist die Verwendung von Application.Goto. Dies kann nützlich sein, wenn Du die Zelle nicht direkt auswählen möchtest. Beispiel:

Dim ac As Range
Set ac = ActiveCell
' ... Code zur Bearbeitung
Application.Goto ac

Praktische Beispiele

Hier ist ein einfaches Beispiel für ein Makro, das eine Zeile einfügt und dann zur ursprünglichen Zelle zurückspringt:

Sub BeispielMakro()
    Dim ac As Range
    Set ac = ActiveCell

    ' Füge eine Zeile ein
    Rows(ac.Row).Insert Shift:=xlDown

    ' Zurückspringen
    ac.Select
End Sub

Tipps für Profis

  • Verwende With-Anweisungen: Dies kann Deinen Code effizienter und leserlicher machen.

  • Fehlerbehandlung: Implementiere Fehlerbehandlung, um unerwartete Probleme zu vermeiden, wenn Du mit Zellen und Bereichen arbeitest.

  • Dokumentation: Kommentiere Deinen Code ausführlich, damit Du beim erneuten Durchsehen sofort verstehst, was jeder Abschnitt macht.


FAQ: Häufige Fragen

1. Wie merke ich mir mehrere Zellen?
Du kannst ein Array verwenden, um mehrere Zellen zu speichern und später auf sie zuzugreifen.

2. Was tun, wenn das Makro nicht startet?
Überprüfe, ob die Makros in Excel aktiviert sind und ob Du die richtige Tastenkombination zum Starten des Makros verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige