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.
bei Fragen zu Code ist es hilfreich zu wissen, wie dein Code aussieht.
Gruß
Peter
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.
Zelle merken: Um die aktuelle Zelle zu merken, kannst Du folgenden VBA-Code verwenden:
Dim ac As Range
Set ac = ActiveCell
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.
Zurückspringen: Um an die gespeicherte Zelle zurückzuspringen, füge den folgenden Befehl hinzu:
ac.Select
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
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
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.
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
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
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.
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.