Mit Makro in neu eingefügte Zeile springen
Hallo,
mit folgendem Makro füge ich per Buttonklick über eine markierte Zeile eine neue ein:
Sub ZeileEinfügen()
With Selection
Selection.Insert Shift:=xlDown
Range("A1").Select
End With
End Sub
Dann springt Excel nach Einfügen der Zeile in die Zelle A1.
Ich möchte aber, dass Excel danach in die Spalte 1 der neuen Zeile springt oder die neue Zeile markiert.
Da ich ein völliger VBA-Neuling bin, weiß ich nicht, was ich in den Code statt "A1" einfügen soll.
Viele Dank für Tipps,
Johannes
Antwort schreiben
Antwort 1 von Hajo_Zi vom 16.08.2021, 14:43 Options
Hallo Johannes,
auf select usw.kann in VBA zu 99,9% verzichtet werden.
Option Explicit
Sub ZeileEinfügen()
Selection.Insert Shift:=xlDown
Cells(Selection.Row, 1).Select
End Sub
Gruß hajo
Antwort 2 von Johannes94 vom 16.08.2021, 14:51 Options
Hallo Hajo,
das mit select dient nur dazu, dass, wenn ich die neue Zeile in Zeile 200 einfüge, ich danach nicht wieder zu der neu erstellten Zeile scrollen muss, um dort Werte einzutragen.
Bei deiner Variante springt Excel in Zelle A3.
Das wollte ich leider nicht.
Vielleicht noch andere Lösungen?
Trotzdem Danke für die schnelle Antwort,
Johannes
Antwort 3 von Hajo_Zi vom 16.08.2021, 14:56 Options
Hallo Johannes,
wenn die Zeile 3 markiert war ist das klar.
Gruß Hajo
Antwort 4 von Johannes94 vom 16.08.2021, 14:58 Options
Hallo Hajo,
Es war aber Zeile 21 markiert.
Gruß, Johannes
Antwort 5 von Hajo_Zi vom 16.08.2021, 15:05 Options
Hallo Johannes,
das kann ich nicht nachvollziehen.
Gruß Hajo
Antwort 6 von Johannes94 vom 16.08.2021, 15:07 Options
Hallo Hajo,
da ich wie gesagt wenig von VBA verstehe, frage ich, wie funktioniert denn
Cells(Selection.Row, 1).Select
?
Gruß,
Johannes
Antwort 7 von Hajo_Zi vom 16.08.2021, 15:08 Options
Hallo Johannes,
Selection.Row gibt die selektierte Zeile zurück.
1=spalte A
Gruß Hajo
Antwort 8 von Johannes94 vom 16.08.2021, 15:13 Options
Hallo Hajo,
Das ist verständlich, danke sehr.
Ich habe noch etwas anderen Code in meinem Makro, will heißen, als ich die Frage gestellt habe, dachte ich, der sei nicht wichtig. Ich poste ihn jetzt doch, damit aufgedeckt werden kann, ob dieser noch etwas anderes beeinflusst:
Option Explicit
Sub ZeileEinfügen()
With Selection
Selection.Insert Shift:=xlDown
Range("J3:P3").Select
Selection.AutoFill Destination:=Range("J3:P81"), Type:=xlFillDefault
Range("R3:T3").Select
Selection.AutoFill Destination:=Range("R3:T81"), Type:=xlFillDefault
Cells(Selection.Row, 1).Select
End With
End Sub
Wie kann ich jetzt erreichen, dass Excel die neue Zeile markiert oder in eine Zelle der neuen Zeile springt?
Grüße,
Johannes
Antwort 9 von Hajo_Zi vom 16.08.2021, 15:20 OptionsLösung
Halo Johannes,
ich hatte doch schon geschrieben das select usw. nicht notwendig ist.
Sub ZeileEinfügen()
Selection.Insert Shift:=xlDown
Cells(Selection.Row, 1).Select
Range("J3:P3").AutoFill Destination:=Range("J3:P81"), Type:=xlFillDefault
Range("R3:T3").AutoFill Destination:=Range("R3:T81"), Type:=xlFillDefault
End Sub
Gruß Hajo
Antwort 10 von Johannes94 vom 16.08.2021, 15:24 Options
Danke, jetzt funktioniert es, so wie ich es wollte.