Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Code mit Makro einfügen

VBA Code mit Makro einfügen
21.07.2016 05:43:06
Olaf
Hallo
wie baue ich folgenden Code um, das ich eine Datei auswähle, und in die ausgewählte Datei einen Makro Code einfüge?
Sub Makro_einfuegen()
'öffnet die ausgewählte Datei
Dim varDatei As Variant
varDatei = Application.GetOpenFilename()
If varDatei = False Then
MsgBox "Der Benutzer hat abgebrochen.", vbInformation
'Else
' MsgBox "Folgende Datei wurde ausgewählt:" & vbCrLf & varDatei
End If
'fügt in die Tabelle Tabelle1 das Makro ein
Dim x As Integer
With Workbooks(varDatei).VBProject.VBComponents("Tabelle1").CodeModule
x = .CreateEventProc("SelectionChange", "Worksheet")
.InsertLines x + 1, "'dieses Makro wurde per Makro eingefügt"
.InsertLines x + 2, "MsgBox ""Hallo, Hallo !!!"""
End With
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Code mit Makro einfügen
21.07.2016 07:57:18
eres
Moin Olaf, versuch mal
Sub Makro_einfuegen()
'öffnet die ausgewählte Datei
Dim varDatei As Variant
varDatei = Application.GetOpenFilename()
If varDatei = False Then
MsgBox "Der Benutzer hat abgebrochen.", vbInformation
'   Else
'        MsgBox "Folgende Datei wurde ausgewählt:" & vbCrLf & varDatei
End If
Application.EnableEvents = False
Workbooks.Open varDatei
Application.EnableEvents = True
'fügt in die Tabelle Tabelle1 das Makro ein
Dim x As Integer
With Workbooks(ActiveWorkbook.Name).VBProject.VBComponents("Tabelle1").CodeModule
x = .CreateEventProc("SelectionChange", "Worksheet")
.InsertLines x + 1, "'dieses Makro wurde per Makro eingefügt"
.InsertLines x + 2, "MsgBox ""Hallo, Hallo !!!"""
End With
End Sub
Gruß
erwin
Anzeige
AW: VBA Code mit Makro einfügen
21.07.2016 08:05:43
baschti007
So vielleicht
Sub copy_VBAcode()
Dim varDatei As Variant
Dim y As String
Dim i As Integer
Dim scode1 As String
Dim myVBComponents As Object
Application.DisplayAlerts = False
varDatei = Application.GetOpenFilename() ' Datei wählen
If varDatei = False Then
MsgBox "Der Benutzer hat abgebrochen.", vbInformation: Exit Sub
End If
y = Right(CStr(varDatei), InStr(1, StrReverse(CStr(varDatei)), "\") - 1) ' Dateiname
With ThisWorkbook.VBProject.VBComponents("Tabelle1").CodeModule '--- Zeichnet den Code von  _
Tabelle1 in dieser Arbeitsmappe auf
scode1 = .Lines(1, .CountOfLines)
End With
Workbooks.Open Filename:=varDatei ' öffnet die neue arbeitsmappe
With Workbooks(y).VBProject.VBComponents("Tabelle1").CodeModule '--- Löscht den code in der  _
Neuen Arbeitsmappe in Tabelle1
.DeleteLines 1, .CountOfLines
End With
Workbooks(y).VBProject.VBComponents("Tabelle1").CodeModule.AddFromString scode1 '- fügt den  _
neunen  code ein
Workbooks(y).Save
Workbooks(y).Close
'Application.VBE.MainWindow.Visible = False 'blendet Vba aus
End Sub

Gruß Basti
Anzeige
AW: VBA Code mit Makro einfügen
21.07.2016 10:05:04
Olaf
Danke an eres und baschti
funzt beides.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Code in Excel einfügen: Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

Um einen VBA Code in Excel einzufügen, kannst du die folgenden Schritte befolgen:

  1. Excel öffnen: Starte Microsoft Excel und öffne die Arbeitsmappe, in die du den Code einfügen möchtest.

  2. Visual Basic for Applications (VBA) öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (deine Arbeitsmappe)" und wähle Einfügen > Modul. Dies fügt ein neues Modul in deine Arbeitsmappe ein.

  4. Code eingeben: Kopiere den gewünschten VBA Code in das neue Modul. Zum Beispiel:

    Sub BeispielMakro()
       MsgBox "Hallo, dies ist ein Beispiel-Makro!"
    End Sub
  5. Speichern und Schließen: Speichere deine Arbeit und schließe den VBA-Editor.


Häufige Fehler und Lösungen

  • Fehler: "Der Benutzer hat abgebrochen."

    • Lösung: Stelle sicher, dass du eine Datei auswählst, wenn der Dialog zum Öffnen erscheint. Wenn du den Dialog abbrichst, wird dieser Fehler ausgelöst.
  • Fehler: "Fehler beim Kompilieren"

    • Lösung: Überprüfe, ob der Code korrekt eingegeben wurde. Achte auf Syntaxfehler oder fehlende Enden von Schleifen und Bedingungen.

Alternative Methoden

Es gibt verschiedene Möglichkeiten, VBA Code in Excel einzufügen:

  1. Direktes Einfügen in die Arbeitsmappe: Du kannst ein Makro direkt in das Arbeitsblatt einfügen, indem du im VBA-Editor das entsprechende Arbeitsblatt auswählst und den Code dort einfügst.

  2. Importieren von Modulen: Du kannst ein bestehendes Modul von einer anderen Arbeitsmappe importieren, indem du im VBA-Editor mit der rechten Maustaste auf "Module" klickst und Importieren wählst.


Praktische Beispiele

Hier sind einige praktische Beispiele für das Einfügen von VBA Code:

  1. Ein einfaches Makro:

    Sub EinfachesMakro()
       MsgBox "Dies ist ein einfaches Makro!"
    End Sub
  2. Code einfügen aus einer Datei:

    Sub DateiEinfügenMitVBA()
       Dim varDatei As Variant
       varDatei = Application.GetOpenFilename()
       If varDatei <> False Then
           Workbooks.Open varDatei
       End If
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Füge Option Explicit am Anfang deines Moduls hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Fehlerbehandlung einfügen: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler zu verwalten. Zum Beispiel:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    Fehlerbehandlung:
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Wie füge ich ein Makro in Excel ein?
Du kannst ein Makro in Excel einfügen, indem du den VBA-Editor öffnest, ein Modul hinzufügst und den gewünschten Code dort eingibst.

2. Was mache ich, wenn ich eine Datei mit VBA öffnen möchte?
Verwende den Application.GetOpenFilename Befehl, um dem Benutzer zu ermöglichen, eine Datei auszuwählen, und öffne sie dann mit Workbooks.Open.

3. Kann ich VBA Code von einer anderen Datei importieren?
Ja, du kannst ein Modul aus einer anderen Arbeitsmappe importieren, indem du im VBA-Editor die Importfunktion verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige