Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

neues Tabellenblatt mit Makro anlegen

neues Tabellenblatt mit Makro anlegen
13.04.2017 15:01:37
RedSmurf
Hallo zusammen,
Ich lege in einem Excel ein neues Tabellenblatt an und möchte dann in das neue Blatt ein Makro kopieren. Das soll mit einem Makro funktionieren.
Die Sache funktioniert im Prinzip. Der u.g. Code fügt ein Tabellenblatt ein und stellt auch das Makro auf das Blatt. Führt man den Code zweimal aus, dann läuft man in einen Fehler, da es "Tabelle1" schon gibt. Ich konnte das Problem leider auch nicht umgehen, in dem ich dem Blatt einen Namen gegeben habe, denn das VBA greift immer auf die "TabelleXX" zu und nicht auf den logischen Namen. Hat jemand eine Idee wie das Problem gelöst werden kann? Oder gibt es eine Möglichkeit abzufragen welches TabellenBlatt ich neu angelegt habe?
Hier der Code
' Blatt einfügen
Set Ziel = ThisWorkbook.Worksheets.Add
Ziel.Move after:=Sheets(Sheets.Count)
' Makro in Blatt kopieren
With Workbooks(wb1).VBProject.VBComponents("Tabelle1").CodeModule
x = .CreateEventProc("MyMakro_Change", "Worksheet")
.InsertLines x + 1, "MsgBox ""Hallo, Hallo !!!"""
End With

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: neues Tabellenblatt mit Makro anlegen
13.04.2017 15:28:37
JoWE
Hallo wie immer Du heißt,
statt "Tabelle1" evtl. activesheet.name
Denn das soeben eingefügte Tabellenblatt hat jetzt gerade den Focus.
Gruß
Jochen
AW: neues Tabellenblatt mit Makro anlegen
13.04.2017 16:04:09
RedSmurf
Hi Jochen,
das ist leider nicht die Lösung.
Allerdings habe ich gerade durch Zufall die Lösung gefunden. Den Namen 'Tabelle 16' in der VBA-Ansicht --- "Tabelle16 (TestTabelle)" --- kann man ändern mit
ThisWorkbook.VBProject.VBComponents.VBE.SelectedVBComponent.Name = "TestTabelle"
Dann erscheint im VBA "TestTabelle (TestTabelle)" und ich kann das Makro dorthin kopieren, auch ohne zu wissen wie die laufende Nummer der Tabelle ist.
Gruß
Jürgen
PS: Danke fürs 'Zuhören', das hat schon gereicht damit ich weiter gekommen bin.
Anzeige
AW: neues Tabellenblatt mit Makro anlegen
13.04.2017 15:34:33
UweD
Hallo
ungetestet..

Set WB1=ThisWorkbook
Set Ziel = Wb1.Worksheets.Add (after:=Sheets(Sheets.Count))
' Makro in Blatt kopieren
With .VBProject.VBComponents(Ziel.name).CodeModule 'oder Ziel.Codename

LG UweD
AW: neues Tabellenblatt mit Makro anlegen
13.04.2017 15:43:51
RedSmurf
Habe das mit dem "ziel.name" direkt probiert. Funktioniert aber leider nicht. In der VBA-Sicht sehe ich das neue Tabellenblatt als Tabelle16 (TestTabelle).
Im Code muss anscheinend immer irgendwas mit "TabelleXX" drin stehen. Meinen Namen "TestTabelle" ignoriert der Code.
Gibt es eine Möglichkeit diesen Wert "TabelleXX" direkt abzufragen?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige