Microsoft Excel

Herbers Excel/VBA-Archiv

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

VBA-Code in externer Datei ändern


Betrifft: VBA-Code in externer Datei ändern von: Edwin
Geschrieben am: 06.02.2018 16:16:20

Hallo,

ich muss in einer externen Datei 3 Zeilen im VBA-Code einfügen.

Der Code befindet sich in Tabelle1

Private Sub Worksheet_Activate()

    AlterVBA-Code1
    AlterVBA-Code2
    AlterVBA-Code3

    NeuerVBA-Code1
    NeuerVBA-Code2
    NeuerVBA-Code3

End Sub
Kann mir jemand sagen, wie der VBA aussehen muss, damit NeuerVBA-Code1 bis NeuerVBA-Code3 hinzugefügt wird?

Vielen Dank!

Gruß
Edwin

  

Betrifft: AW: VBA-Code in externer Datei ändern von: Hajo_Zi
Geschrieben am: 06.02.2018 16:46:22

Hallo Edwin,

mein Excel sagt das ist kein VBA Code.



nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.

Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.

Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.

GrußformelHomepage

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.


  

Betrifft: AW: VBA-Code in externer Datei ändern von: Edwin
Geschrieben am: 06.02.2018 16:53:01

Hallo Hajo,

es handelt sich um keinen Fehler, sondern lediglich um einen VBA-Code, der eingefügt werden soll.

Private Sub Worksheet_Activate()
    MsgBox "AlterVBA-Code1"
    MsgBox "AlterVBA-Code2"
    MsgBox "AlterVBA-Code3"


    MsgBox "NeuerVBA-Code1"
    MsgBox "NeuerVBA-Code2"
    MsgBox "NeuerVBA-Code3"
End Sub



  

Betrifft: AW: VBA-Code in externer Datei ändern von: Hajo_Zi
Geschrieben am: 06.02.2018 17:00:18

Das ist VBA Code, der löst bei mir keinen Fehler aus.
Ich bin dann raus, Du möchtest nicht den relevanten Code posten.

Gruß Hajo


  

Betrifft: AW: VBA-Code in externer Datei ändern von: ChrisL
Geschrieben am: 06.02.2018 16:59:07

Hi Edwin

z.B.
https://www.herber.de/forum/archiv/792to796/793924_VBA_Code_per_Makro_in_Arbeitsblatt_einfuegen.html

cu
Chris


  

Betrifft: AW: VBA-Code in externer Datei ändern von: Edwin
Geschrieben am: 06.02.2018 18:41:18

Hallo Chris,

ich habe aus deinem Link Fragmente des VBA übernommen.
Damit ich den VBA testen konnte, habe ich ein Sheet "Test" hinzugefügt.
Der VBA läuft.

Sub VBAeinfügen()
    Const WS      As String = "Test"
    Dim LineNr    As Integer
        
        With ThisWorkbook.VBProject.VBComponents(Worksheets(WS).CodeName).CodeModule
            LineNr = .createeventproc("activate", "Worksheet")
            .insertlines LineNr + 1, "msgbox ""hallo1"""
            .insertlines LineNr + 2, "msgbox ""hallo2"""
        End With

End Sub

Zwei Dinge müssen noch geändert werden und dazu fehlt mir leider das Wissen.

1. Private Sub Worksheet_Activate() muss nicht erstellt werden, es ist schon da.
Wie muss ich createeventproc abändern, damit in das vorhandene Worksheet_Activate eingefügt wird?

2. ThisWorkbook
Wie muss ich den VBA abändern, damit ich in die externe Datei den VBA einfügen kann?


Herzlichen Dank!
Viele Grüße
Edwin


  

Betrifft: AW: VBA-Code in externer Datei ändern von: ChrisL
Geschrieben am: 06.02.2018 19:08:48

Hi

ungetestet... "Create" braucht es nicht, nur die Zeilennummer

Sub VBAeinfügen()
    Dim WB As Workbook
    Const WS      As String = "Test"

Set WB = Workbooks("XY.xlsm")
        
        With WB.VBProject.VBComponents(WB.Worksheets(WS).CodeName).CodeModule
            .insertlines 5, "msgbox ""hallo1"""
            .insertlines 6, "msgbox ""hallo2"""
        End With

End Sub
Die andere Mappe muss geöffnet sein.

cu
Chris


  

Betrifft: AW: VBA-Code in externer Datei ändern von: Edwin
Geschrieben am: 06.02.2018 20:40:42

Hallo Chris,

es kommt zum Laufzeitfehler 1004.
Die Datei XY ist geöffnet, daran kann es nicht liegen.

Hier die Beispieldateien.
https://www.herber.de/bbs/user/119602.xlsm
https://www.herber.de/bbs/user/119603.xlsm

Ich denke, es fehlt das Ziel Worksheet_Activate.
Excel kann nicht wissen, wo der VBA hin soll.

VG
Edwin


  

Betrifft: AW: VBA-Code in externer Datei ändern von: ChrisL
Geschrieben am: 07.02.2018 08:52:49

Hi Edwin

Du hast geschrieben, dass das WS_Activate Ereignis in Mappe2 schon vorhanden ist und verändert werden muss. Ein solches fehlt in der Beispieldatei und darum der Fehler.

cu
Chris


  

Betrifft: AW: VBA-Code in externer Datei ändern von: Edwin
Geschrieben am: 07.02.2018 09:49:09

Hallo Chris,

uppsi.
Aber selbst wenn ich WS_Activate einfüge, dann wird der Code wie folgt eingetragen.

Private Sub Worksheet_Activate()

End Sub
MsgBox "hallo1"
MsgBox "hallo2"
Erschwerend kommt dann noch hinzu, dass ich mein VBAProject geschützt habe. Wenn wir das vorherige Problem gelöst haben, dann können wir uns noch über den VBAProject-Schutz hermachen.

VG
Edwin


  

Betrifft: AW: VBA-Code in externer Datei ändern von: ChrisL
Geschrieben am: 07.02.2018 13:06:42

Hi Edwin

Zeilennummer:
.insertlines 5, "msgbox ""hallo1"""

VBA Passwortschutz kannst du m.W. nur mittels SendKeys aufheben.
https://www.excel-inside.de/vba-loesungen/sonstiges/621-vba-passwort-ueber-ein-vba-makro-aufheben

cu
Chris


  

Betrifft: AW: VBA-Code in externer Datei ändern von: Edwin
Geschrieben am: 07.02.2018 16:02:04

Hallo Chris,

habe verstanden und das einfügen an der richtigen Stelle hat auch geklappt.

VBA Passwortschutz aufheben klappt auch mit der Beispieldatei von Excel-inside.de
Bei mir gerade nicht. Es kommt die Meldung, dass die Makros deaktiviert seien.
Die Meldung kann ich nicht nachvollziehen, weil ich an andere Stelle auch Application.Run ausführe und das einwandfrei funktioniert.
Ich versuche es einfach an einem anderen Tag nochmals. Dann geht es meistens ;-)

Vielen Dank für Deine Hilfe!

Viele Grüße
Edwin


Beiträge aus dem Excel-Forum zum Thema "VBA-Code in externer Datei ändern"