online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Johannes94 vom 16.08.2021, 14:38 Options

Lösung

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

Lö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.

Ähnliche Themen

Windows XP-Firewall komfortabler gestalten
LordNoir  28.05.2006 - 3551 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026