Zu den Aufzeichnungen der tutorials.de-Live-Workshops
Like Tree1Danke
  • 1 Beitrag von tombe
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
1020
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Outsider77 Outsider77 ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    87
    Hallo zusammen!
    Wie oben beschrieben lösche ich beim Öffnen einer Excel-File das Modul "Modul1".
    Danach importiere ich ein neues Modul1.
    In dem alten Modul1 wird eine MessageBox mit "Alt" aufgerufen, in der neuen entsprechend eine MessageBox "Neu".

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    Private Sub Workbook_Open()
     
    ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("Modul1")
    ThisWorkbook.VBProject.VBComponents.Import ("C:\Users\Markus\Documents\Modul1.bas")
     
    test
        
    End Sub

    Per F8 ist folgendes zu beobachten:
    Anscheinend wird das alte Modul1 gelöscht, allerdings ist es im Projekt-Explorer weiterhin sichtbar.
    Das neue Modul1 wird importiert, jedoch wird dessen Name in Modul11 geändert,
    weil wie gesagt das alte Modul1 noch irgendwie vorhanden ist.
    Demzufolge kommt beim Aufrufen der test auch nur die Message-Box "Alt" statt wie gewollt "Neu".
    Nach der MsgBox wird dann, auch sichtbar, das Modul1 gelöscht.
    Hat jemand eine Lösung für dieses Problem? Kann ich den Projekt-Explorer zwischendurch irgendwie "aktualisieren"?
    Bin für jede Hilfe dankbar!
    Gruß Outi
     

  2. #2
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.009
    Das Problem ist wohl das im laufenden Code die Module usw. nicht wirklich aktualisiert werden. Auch wenn es "optisch" so aussieht.

    Mit der unten stehenden Lösung/den Lösungen habe ich es auf 2 verschiedene Weisen hinbekommen. Zur Unterscheidung habe ich es mit einer UserForm und 2 Buttons gemacht. Es klappt aber auch bei WorkbookOpen.

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    Private Sub CommandButton1_Click()
    'Das bestehende Modul1 zuerst umbenennen und dann mit diesem Namen löschen.
    ThisWorkbook.VBProject.VBComponents("Modul1").Name = "Modul99"
     
    ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("Modul99")
     
    'Neues Modul importieren und umbenennen
    ThisWorkbook.VBProject.VBComponents.Import ("C:\Modul1.bas")
    ThisWorkbook.VBProject.VBComponents(ThisWorkbook.VBProject.VBComponents.Count).Name = "Modul1"
    'Aufruf über Zwischenschritt
    test1
     
    End Sub
     
    Private Sub CommandButton2_Click()
    'Hier wird nur gelöscht und neu importiert. Das importierte Modul erhält hierbei aber nicht den Namen Modul1, die Prozedur "test" wird trotzdem gefunden.
    ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("Modul1")
    ThisWorkbook.VBProject.VBComponents.Import ("C:\Modul1.bas")
    'Aufruf über Zwischenschritt
    test1
     
    End Sub
     
    Sub test1()
    'Zwischenschritt damit die eigentliche Prozedur "test" nicht aus dem gleichen Codebereich aufgerufen wird
    test
     
    End Sub
    Outsider77 bedankt sich. 
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  3. #3
    Outsider77 Outsider77 ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    87
    Moin tombe,
    danke für Deine Hilfe, funktioniert bestens!
     

Ähnliche Themen

  1. Excel-Datei erstellen und Modul importieren
    Von Outsider77 im Forum .NET Café
    Antworten: 2
    Letzter Beitrag: 03.09.10, 09:33
  2. Apache Modul in C / C++
    Von ZodiacXP im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 26.09.09, 13:05
  3. JSF Modul
    Von Xeal_RS im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 26.07.07, 11:49
  4. externe swf datein importieren aber nicht importieren
    Von michback im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 08.04.05, 02:46
  5. PHP als CGI-Modul ?
    Von low-group im Forum PHP
    Antworten: 2
    Letzter Beitrag: 11.02.05, 20:51