Das Archiv des Excel-Forums

Kopieren und einfügen von VBA code per VBA


Betrifft: Kopieren und einfügen von VBA code per VBA
von: Chris W.

Geschrieben am: 14.12.2016 09:42:07

Hallo zusammen,
ich habe folgende routine geschrieben:

Dim CodeLines() As String, size As Integer
Sub test()
GetVBACode("inputsheet")
SetVBACode("outputsheet")
End Sub
Public Function GetVBACode(NameInputCodeModule As String)
Dim i As Integer
With ThisWorkbook.VBProject.VBComponents(Worksheets(NameInputCodeModule).CodeName).CodeModule
size = .CountOfLines
ReDim CodeLines(size)
For i = 1 To size
CodeLines(i) = .Lines(i, 1)
Next i
End With
End Function

Public Function SetVBACode(NameOutputCodeModule As String)
Dim i As Integer
With ThisWorkbook.VBProject.VBComponents(Worksheets(NameOutputCodeModule).CodeName).CodeModule
For i = 1 To size
.InsertLines i, CodeLines(i)
Next i
End With
End Function

Im Debugmodus funktioniert auch alles prima. Wenn ich allerdings das Makro ohne Debugger ausführen lassen, bekomme ich eine -> Runtime Error 9 - Subscript out of range <- Meldung.
Ist an meinem VBA code etwas fehlerhaft bzw. funktioniert dies überhaupt so?
Viele Grüsse

Betrifft: AW: Kopieren und einfügen von VBA code per VBA
von: Tino
Geschrieben am: 14.12.2016 10:36:36
Hallo,
ich würde es evtl. so versuchen.

Sub test()
Dim InsertString As String

InsertString = GetVBACode("inputsheet")

Call SetVBACode("outputsheet", InsertString)

End Sub

Public Function GetVBACode(NameInputCodeModule As String)
With ThisWorkbook.VBProject.VBComponents(Worksheets(NameInputCodeModule).CodeName).CodeModule
If .CountOfLines > 0 Then
GetVBACode = .Lines(1, .CountOfLines)
End If
End With
End Function

Public Sub SetVBACode(NameOutputCodeModule As String, InsertString As String)
With ThisWorkbook.VBProject.VBComponents(Worksheets(NameOutputCodeModule).CodeName).CodeModule
If .CountOfLines > 0 Then
.DeleteLines 1, .CountOfLines
End If
If InsertString <> "" Then
.CodePane.CodeModule.AddFromString InsertString
End If
End With
End Sub
Gruß Tino

Betrifft: AW: Kopieren und einfügen von VBA code per VBA
von: Chris W.

Geschrieben am: 14.12.2016 11:24:17
Hi Tino,
vielen Dank für Deine Rückmeldung.
Warum hast du SetVBACode in ein Sub ausgelagert?
Viele Grüsse

Betrifft: AW: Kopieren und einfügen von VBA code per VBA
von: Tino
Geschrieben am: 14.12.2016 11:44:44
Hallo,
weil ich von dieser keine Rückgabe bekomme, daher brauche ich keine Function.
Gruß Tino

Betrifft: AW: Kopieren und einfügen von VBA code per VBA
von: Chris W.

Geschrieben am: 14.12.2016 12:51:39
Vielen Dank für deine Rückmeldung.
Ich habe das Problem lokalisieren können.
Diese Zeile
With ThisWorkbook.VBProject.VBComponents(Worksheets(NameOutputCodeModule).CodeName).CodeModule
hat die Fehlermeldung verursacht.
Durch folgenden Aufruf:

For Each objVBComponent In ActiveWorkbook.VBProject.VBComponents
If ActiveSheet.CodeName = objVBComponent.Name Then
With objVBComponent.CodeModule
If .CountOfLines > 0 Then
.DeleteLines 1, .CountOfLines
End If
End With
Exit For
End If
Next

funktioniert es tadellos.
Keine Ahnung warum dies so ist.
Besten Dank und viele Grüsse

Excel-Beispiele zum Thema "Kopieren und einfügen von VBA code per VBA"

Blätter in andere Arbeitsmappen kopieren download Module von Mappe zu Mappe kopieren download
Arbeitsblatt 40 mal kopieren download Schriftgröße beim Kopieren verdoppeln download
Beim Kopieren auch die Zeilenhöhe und Spaltenbreite übernehmen download Tabellencode nach Kopieren des Blattes löschen download
Arbeitsmappe blitzschnell kopieren download VBE-Namen der Blattmodule beim Kopieren festlegen download
Blattinhalt von einer zur anderen Arbeitsmappe kopieren download Formel bis zur letzten Zeile der Nebenspalte kopieren download
Datei kopieren, wenn noch nicht vorhanden download Zeilenweise von Blatt zu Blatt kopieren download
Erste Druckseite in eine neue Arbeitsmappe kopieren download Durch DoppelKlick Spalte in zweites Arbeitsblatt kopieren download
Teilergebnisse einer Serie von Tabellen in anderes Blatt kopieren download Bei Eintrag in Spalte A aktuelle Zeile kopieren download
Filtern und Kopieren download Zeile mit aktiver Zelle in anderes Blatt kopieren download
Zeilen in Abhängigkeit des Wertes in Spalte A kopieren download Einen von einer Schlüsselziffer abhängigen Bereich kopieren download
Vorgegebene Anzahl von Einträgen in 2. Blatt kopieren download Über InputBox festzulegenden Bereich kopieren download
Passwortgeschützte Mappe öffnen, Daten kopieren, schliessen download Tabellenblatt kopieren und dreistellig fortlaufend numerieren download
Jede zweite Zelle kopieren download Werte aus UserForm-ComboBox suchen und Fundstelle kopieren download
Gruppe von Optionsfeldern kopieren und Makro zuweisen download Nicht zusammenhängenden Bereich in nächste Zeile kopieren download
Wert aus UserForm-TextBox suchen und Fundstelle kopieren download Nur sichtbare Zellen in anderes Arbeitsblatt kopieren download
Zeile in Abhängigkeit zur Eingabe in Blätter kopieren download Werte prüfen und kopieren download
Bei Eintrag von X Zeile in andere Tabelle kopieren download Daten kopieren wenn kein Datum oder Datum > Heute download
Blattinhalte dreier Blätter in neues Blatt kopieren download Kopieren und Umbenennen eines Blattes download
Nur Zeilen mit bestimmtem Inhalt kopieren download Artikelnummern nach Kriterien suchen und Datensätze kopieren download
Bild in zweites Blatt an gleiche Position kopieren download Alle Zeilen ohne Wert in vorgegebener Spalte kopieren download
Bei Eintrag Zeile in 2. Blatt kopieren und Tabellen sortieren download Bildergruppe in anderes Blatt kopieren download
Bei Eingabe Formel in der Nebenspalte nach unten kopieren download Auswahl in andere Arbeitsmappe kopieren, speichern, schließen download
Begriff suchen und Fundzeilen in anderes Blatt kopieren download Aktive Zeile kopieren und löschen download
Datensätze, die öfter als 3 mal vorkommen, kopieren download Den jeweils darüberliegenden Wert in Leerzellen kopieren download
Alle Zeilen mit einem Suchbegriff in nächstes Blatt kopieren download Dateien listen und Blätter in neue Arbeitsmappe kopieren download
Zeile einfügen und Formeln und Werte übernehmen download Datum in Fußzeile einfügen download
Nach jedem 5. Zeichen ein Leerzeichen einfügen download Kommentare in geschützte Tabellen einfügen download
Trennlinie in Kontextmenü einfügen download Zeilen oberhalb der markierten Zellen einfügen download
Grafik einfügen, wenn Wert in A1 unter eine Grenze sinkt download Benutzerdefiniertes Symbol in neue Symbolleiste einfügen download
Bei Doppelklick Textbox mit Text einfügen download Menüpunkte zum Einfügen und Löschen von Zeilen hinzufügen download
Schaltflächen-Id-Nummer finden und Schaltfläche einfügen download Ordnernamen eines Verzeichnisses in Zelle einfügen download
Ersten Absatz eines Word-Dokumentes in Tabelle einfügen download Wasserzeichen in Tabelle einfügen download
Über Schaltfläche neues Blatt mit aktuellem Datum einfügen download Eingabe auf bereits vorhanden prüfen und, wenn nein, einfügen download
Grafik in Abhängigkeit einer Zelleingabe einfügen download ComboBox für Monatsblattauswahl in Menüleiste einfügen download
Über Doppelklick aus Preisliste in Bestellformular einfügen download Grafik nach Eingabe des Dateinamens einfügen download
Zeilen einfügen, Werte und Bezüge zu den Werten eintragen download Wert der aktiven Spalte an nächste freie Position einfügen download
Meldung nach Einfügen oder Löschen von Zeilen download Einfügen von Zeilen vor und nach Zellen mit Fettdruck download
Mit ShortCut Textbaustein einfügen download Einfügen von Zeilen gem. Zellwerten download
Einfügen eines Menüpunktes zum Erstellen eines Kommentars. download Einfügen von Werten in Abhängigkeit eines Blattnamens download
Menüpunkt "Zellen einfügen..." im Kontextmenü deaktivieren download UserForm-TextBox-Inhalte mit Grafik-Hyperlinks einfügen download
Vor dem Druck Zeilen einfügen und danach wieder löschen download Neuer Menüpunkt mit Kommentar-einfügen-Befehl download
Überschriften gemäß Indizes in Tabelle einfügen download TextBox mit 12.000 Zeichen unterhalb einer Tabelle einfügen download
Zahl suchen und an den Fundstellen Zeile einfügen download Seitenumbruch nach Zeilen mit bestimmtem Inhalt einfügen download
Bei Gültigkeitsfeldauswahl Zeile einfügen download Nach Vergleich Kommentar einfügen download
Neuer Menüpunkt zum Einfügen eines benutzerdefinierten Kommentars download Grafikdatei aus dem Internet downloaden und in Tabelle einfügen download
Einfügen eines Sonderzeichens in einer UserForm-TextBox download Über InputBox zu ermittelnde Spaltenanzahl einfügen download
Kopieren und Einfügen in UserForm ohne Excel-ShortCuts download Bei Doppelklick Grafik in Kommentar einfügen download
Zeile einfügen, wenn 100er-Sprung download