Probleme beim löschen von Modulen

Dieses Thema Probleme beim löschen von Modulen im Forum "Microsoft Office Suite" wurde erstellt von freestyler96, 17. Okt. 2005.

Thema: Probleme beim löschen von Modulen Hallo an alle, ich habe mal wieder ein Problem und hoffe auf eure Hilfe. Folgendes: 1. Es gibt eine Gesamtdatei...

  1. Hallo an alle,

    ich habe mal wieder ein Problem und hoffe auf eure Hilfe.

    Folgendes:

    1. Es gibt eine Gesamtdatei für ein Vielzahl von Mitarbeitern, welche per Mail verschickt wird.

    2. Wenn der Mitarbeiter die Datei DAS ERSTE MAL öffnet wird ein Makro gestartet:

    Private Sub Workbook_Open()
    Aufbereitung
    End Sub

    3. Ist das Makro durchgelaufen wird das Modul gelöscht, da die Funktion nur der ersten Aufbereitung dient:

    Sub Modullöschen()

    With Application.VBE.ActiveVBProject
    For Each VBComponente In .VBComponents
    If VBComponente.Type = 1 Then .VBComponents.Remove VBComponente
    Next VBComponente
    End With
    End Sub

    4. Hiernach speichert der Mitarbeiter die neue Datei auf seinem Rechner.

    Problem:

    Wird die neu gespeichert Datei geöffnet ist immer noch unter diese Arbeitsmappe der Aufruf zu Aufbereitung unter
    Private Sub Workbook_Open() enthalten was zu einer Fehlermeldung führt.

    Frage:

    Wie erkläre ich nu meinem begriffsstutzigen Rechner, dass auch diese Prozedur [Private Sub Workbook_Open()] gelöscht werden soll?

    Hat bitte jemand einen Vorschlag?


    Vielen Dank


    Fibo
     
  2. Hallo an alle,

    leider habe ich zu diesem Thema immer noch keine Lösung finden können.
    Ganz im Gegenteil. Nun ist ein weiteres Problem dazu gekommen. Zusätzlich
    zu dem bereits geschilderten Vorgang muss ich nun auch noch Klassenmo-
    dule automatisch loswerden.

    Hat vielleicht einer der Tüfftler eine Idee dazu? Ich bin mit meinem Latein
    am Ende.

    Einen guten Start ins neue Jahr @ all und;

    Vielen Dank


    Fibo
     
  3. Hallo Fibonacci,

    dann probier's mal mit Folgendem:
    Code:
    Option Explicit
    Const b_AllesOKzumLoeschen As Boolean = False
    
    Private Sub Workbook_Open()
      
    
     ->*** hier machst Du deinen normalen Kram
    
     ->***wenn alles ok mit der Vorverarbeitung ist, Flag zum Löschen des Codes setzen
      b_AllesOKzumLoeschen =true
      
      
    
     ->*** Code löschen ?
      If b_AllesOKzumLoeschen Then
    
        Dim vbkomponente As Object
       ->*** Module, Klassenmodule, Userformen wegraeumen
        For Each vbkomponente In Application.VBE.ActiveVBProject.VBComponents
          If vbkomponente.Type = 1 Then
            Application.VBE.ActiveVBProject.VBComponents.Remove vbkomponente->Modul
          ElseIf vbkomponente.Type = 2 Then
            Application.VBE.ActiveVBProject.VBComponents.Remove vbkomponente->KlassenModule
          ElseIf vbkomponente.Type = 3 Then
            Application.VBE.ActiveVBProject.VBComponents.Remove vbkomponente->Userform
          End If
        Next
    
       ->*** Tabellen-Code wegraeumen
        For Each vbkomponente In Application.VBE.ActiveVBProject.VBComponents
          If vbkomponente.Type = 100 Then
            If vbkomponente.Name <> DieseArbeitsmappe Then
             ->vbkomponente.CodeModule.DeleteLines 1, vbkomponente.CodeModule.CountOfLines
            End If
          End If
        Next
    
       ->*** Code in DieseArbeitsmappe wegraeumen (code des Workbooks)
        For Each vbkomponente In Application.VBE.ActiveVBProject.VBComponents
          If vbkomponente.Type = 100 Then
            If vbkomponente.Name = DieseArbeitsmappe Then
              ->vbkomponente.CodeModule.DeleteLines 1, vbkomponente.CodeModule.CountOfLines
            End If
          End If
        Next
      End If
    End Sub
    Dieser Code muß in->DieseArbeitsmappe' stehen.

    Wenn Du dir den Code anschaust, siehst Du das die Code-Zeilen in->DieseArbeitsmappe' zuletzt gelöscht werden. Andernfalls würde der Makro zu früh  beendet (zwangsweise  wegen fehlendem Code  ;D ).

    In Excel97 hab ich es so ausprobiert - läuft   :D
    Bei Excel2000/2003/XP mußt du mal schauen, welche Einstellungen du unter Makro->Sicherheit->... benötigst, damit gelöscht werden kann.

    Zum Ausprobieren solltest Du dir eine 2. Variable kreieren, die das Löschen erstmal verhindert. Diese Datei ist dann dein Backup.
    Dann legst du eine Kopie der Datei an, z.B. ...._scharf, editierst die Sperre so, daß Löschen erfolgen kann, und speicherst + schließt die Datei.
    Nach dem Öffnen dieser scharfen Datei sollte dann aller Code gelöscht sein, wenn deine->Vorverarbeitung' positiv zu Ende gekommen ist.

    !!! Code wird durch diesen Makro komplett gelöscht !!!

    Gruß Matjes  :)
     
  4. Hallo Matjes,

    Vielen Dank, dass du dich mit meinem Problem beschäftigt hast.

    Wenn ich den Code nach dem Öffnen starte funktioniert er. Starte ich diesen mit WorkbookOpen oder trage ihn dort direkt ein, klappt es nicht. Passt aber trotzdem, da ich die Prozedur (Datenverarbeitung) manuell starte. Somit kann ich ihn einfach hinten anhängen.

    Vielen Dank und eine guten Start in ein erfolgreiches neues Jahr;


    Fibo
     
  5. Hallo Fibonacci,

    fein, dass es erstmal geklappt hat  :D

    Kannst Du mir dafür ein Beispiel-Excelmappe an mein mailaddy schicken.

    Gruß Matjes :)
     
Die Seite wird geladen...

Probleme beim löschen von Modulen - Ähnliche Themen

Forum Datum
Probleme beim Öffnen von Programmen Windows 8 Forum 5. Nov. 2015
Probleme beim Upgrade von Windows 8.1 auf 10 Windows 10 Forum 20. Aug. 2015
Probleme mit Videoapp beim Ausleihen Von Filmen Windows 8 Forum 29. Juni 2015
Probleme beim Kopieren auf USB Windows 7 Forum 28. Mai 2015
Darstellungsprobleme beim Upgrade von Win7 zu 10 Windows 7 Forum 17. Feb. 2015