Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Makro in jedem Tabellenblatt ausführen

Betrifft: Makro in jedem Tabellenblatt ausführen von: M.Klein
Geschrieben am: 12.10.2020 00:11:13

Hallo zusammen,

ich kenne mich mit VBA nicht wirklich gut aus. Bis jetzt habe ich mich mit Makros aufzeichnen beholfen oder habe im Internet nach Makros gesucht. Auch jetzt habe ich wieder ein super Makro im Internet gefunden, was mir nur zu 90% weiterhilft. Das Makro kopiert bestimmte Zeilen und bevor die kopierten Zeilen eingefügt werden, wird man gefragt, ab welcher Zeile die kopierten Zeilen eingefügt werden sollen. Es werden immer dieselben 2 Zeilen aus dem Tabellenblatt "Tabelle1" kopiert. Jetzt möchte ich aber den Ort, in dem die kopierten Zeilen eingefügt werden sollen, variabel halten. Das Makro wird per Steuerelement, welches sich in verschiedenen Tabellenblättern befindet, ausgeführt. Und die kopierten Zeilen, sollen in dem Tabellenblatt eingefügt werden, wo das Makro per Steuerelement ausgeführt wurde.

Ich kenne immer nur Makros, die sich auf bestimmte Tabellenblätter beziehen. D.h. wähle das Tabellenblatt Tabelle1 aus, kopiere die Zeilen und füge die kopierten Zeilen in Tabelle2 ein.

Derzeit sieht mein Makro wie folgt aus:
Sub(Zeilen_einfügen)
Sheets("Tabelle1").Select
Dim zelleE
zelleE = Application.InputBox(Prompt:="Wo einfügen?", Title:="Zellenauswahl", Type:=1)
Rows("1:2").Select
Selection.Copy
Sheets("Tabelle2").Select
Rows(zelleE).Insert
End Sub

Kann mir hierbei vielleicht jemand weiterhelfen?

Über eine Rückmeldung würde ich mich freuen. Ich habe jetzt 3 Stunden im Netz gesucht und nichts richtiges gefunden.

Vielen Dank schon mal vorab.

V.G. M.K.

Betrifft: AW: Makro in jedem Tabellenblatt ausführen
von: ralf_b
Geschrieben am: 12.10.2020 00:21:50

den code in ein Allgemeines Modul einfügen, dann steht es in allen Arbeitsblättern ohne Präfix zur Verfügung
Sub Zeilen_einfügen ()
Dim zelleE

zelleE = Application.InputBox(Prompt:="Wo einfügen?", Title:="Zellenauswahl", Type:=1)
Activesheet.Rows("1:2").Copy
 ' ab hier weis excel nicht wohin deine Kopie eingefügt werden soll wenn dein Makro variabel 
 ' gestaltet werden soll. 
Sheets("Tabelle2").Rows(zelleE).Insert
End Sub


Betrifft: AW: Makro in jedem Tabellenblatt ausführen
von: Werner
Geschrieben am: 12.10.2020 00:26:00

Hallo,

wenn vor der Range (hier deine Zielzeile) kein Tabellenblatt angegeben wird, dann wird das immer in das gerade aktive Tabellenblatt eingefügt.
Sub Zeilen_einfügen()
Dim zelleE As Variant

zelleE = Application.InputBox(Prompt:="Wo einfügen?", Title:="Zellenauswahl", Type:=1)
If Not zelleE = False Then
    Worksheets("Tabelle1").Rows("1:2").Copy
    Rows(zelleE).Insert
End If
End Sub
Gruß Werner

Betrifft: Hinweis
von: Werner
Geschrieben am: 12.10.2020 00:28:25

Hallo,

nach dem End If fehlt noch

Application.CutcopyMode = False

damit die "Kopierameisen" auf dem Blatt1 ausgeschaltet werden.

Gruß Werner

Betrifft: AW: Hinweis
von: M.Klein
Geschrieben am: 12.10.2020 00:57:00

Hallo Werner,

super, vielen Dank!!!! Es hat geklappt.

V.G. M.K.

Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T.
von: Werner
Geschrieben am: 12.10.2020 01:13:55