Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
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

Per VBA Code in neues Tabellenblatt einfügen

Per VBA Code in neues Tabellenblatt einfügen
28.09.2016 12:35:44
Hartmut_M
Hallo, bitte helft mir bei folgender Frage.
Per VBA kopiere ich ein Tabellenblatt in meine Hauptdatei.
In dieses neue Tabellenblatt möchte ich gerne Code für ein SelectionChange Ereignis einfügen.
Ich stelle mir vor, dass der Code in einem Modul abgespeichert ist und dann per VBA in das neue Tabellenblatt kopiert wird.
Ist das möglich, und wenn ja wie?
Gruß Hartmut

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Code in neues Tabellenblatt einfügen
28.09.2016 16:53:49
Hajo_Zi
Hallo Hartmut,
warum nicht gleich in der Tabelle die kopiert wird?
Bei Deiner Aufgabe muss der Zugriff auf das VBA Projekt zugelassen werden.
Ich gebe dazu keine Auskunft.

AW: Per VBA Code in neues Tabellenblatt einfügen
29.09.2016 10:05:03
Hartmut_M
Hallo, erstmal danke für eure Rückmeldungen.
Komme allerdings noch nicht richtig weiter.
Die Tabelle, die kopiert wird, ist eine maschinell erzeugte csv-Datei, die jede Woche neu erstellt wird. Dieses Tabellenblatt kopiere ich in meine bestehende Excel-Datei. In das importierte Tabellenblatt soll dann code eingefügt werden. Wie könnte ich das sonst bewerkstelligen?
Habe jetzt durch Google folgende Lösung gefunden:
'Makro in neues Tabellenblatt kopieren
Dim x As Integer
With ThisWorkbook.VBProject.VBComponents("Tabelle1").CodeModule
x = .CreateEventProc("Change", "Worksheet")
.InsertLines x + 1, "Dim NR As String, VN As String"
.InsertLines x + 2, "Set Target = Application.Intersect(Target, Range(""B:B""))"
Damit läuft alles so, wie ich es benötige.
Mein Problem ist jetzut noch, dass bei VBComponents in Klammern die Tabellenbezeichnung mit Nummer eingegeben werden muss. Diese Tabellennummer ist aber nicht immer gleich. Statt der Bezeichnung würde ich lieber den Tabellennamen, wie er unten am Tabellenblatt steht nehmen. Also so:
With ThisWorkbook.VBProject.VBComponents("47110").CodeModule

Da bekomme ich aber den Laufzeitfehler 9: Index außerhalb des gültigen Bereiches.
Was mache ich falsch, bzw. wie muss es richtig lauten?
Gruß Hartmut
Anzeige
AW: Per VBA Code in neues Tabellenblatt einfügen
28.09.2016 17:07:33
Daniel
Hi
prinzipell ist sowas möglich, ist aber aufwendig (such mal im Internet nach "Code mit Code manipulieren")
wenn du die Eventmakros aber schon im Vorlagenblatt erstellst und das Blatt mit Sheets.Copy überträgst, werden die Makros automatisch mit übernommen.
wenn du möchtest, dass die Eventmakros erst in der Hauptdatei funktionieren und in der Vorlage noch nicht, dann könntest du ja an den Anfang folgende Prüfung stellen:
IF ThisWorkbook.Name = "Name der Vorlagendatei.xlsb" Then Exit Sub

Gruß Daniel

38 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige