1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

VBA MS Excel, Makros entfernen

Discussion in 'Office-Programme' started by lang76, Feb 4, 2010.

Thread Status:
Not open for further replies.
  1. lang76

    lang76 Byte

    Hallo liebes Forum,

    ich habe ein Makro geschrieben, welches eine kopie von einer Excel- Datei erstellt und dann weiter bearbeitet. Das Makro ist in XLSTART abgespeichert und wird durch das Anklicken des Push-Buttons ausgeführt.
    Ich möchte dieses Makro so ergänzen, dass es auch zusätzlich überprüft, ob in der zubearbeitenden Datei Makros vorhanden sind und diese anschließend entfernt. Die Namen von Module sind unbekannt. Vielleicht kennt sich jemand damit aus?

    Ich danke im Voraus
     
  2. Urs2

    Urs2 Megabyte

    Hallo lang

    Wo sind die Makros, in Modulen oder auch in den Arbeitsblättern, oder weiss man das nicht im voraus?

    Wenn in den Arbeitsblättern sicher keine Makros sind, kann man alle Blätter in eine eine neue Arbeitsmappe kopieren Was in der alten Mappe in Modulen steht, wird so nicht kopiert.

    Wenn in den Blättern aber Makros stehen, werden sie mit kopiert...

    Dann kommt es drauf an, wie aufwändig das Blatt formatiert ist.
    Einfache Tabellen könnte man zB als CSV-Datei exportieren und und in einer neuen Mappe wieder importieren.
    Man kann auch jedes Blatt mit Copy/Paste in eine neue Datei kopieren, so wie man es auch von Hand machen würde...

    Gruss Urs
     
  3. lang76

    lang76 Byte

    Hallo Urs2,
    danke für deine Antwort. Es ist vorher nicht bekannt, ob Makros vorhanden sind und wo. Es muss zuerst geprüft werden.

    Gruß
     
  4. bahnrat

    bahnrat Kbyte

    Hallo!

    Mit folgendem Code wird alles VBA-Code aus der aktiven Arbeitsmappe gelöscht.

    Rem Diese Prozedur zum Löschen aufrufen
    Sub Alles_löschen()
    Call Lösche_Module
    Call Lösche_Userformen
    Call Lösche_Ereignisprozeduren
    End Sub

    Sub Lösche_Module()
    Rem Löscht Module:
    For n = ActiveWorkbook.VBProject.vbComponents.Count To 1 Step -1
    If ActiveWorkbook.VBProject.vbComponents(n).Type = 1 Then
    ActiveWorkbook.VBProject.vbComponents(n).Collection.Remove _
    ActiveWorkbook.VBProject.vbComponents(n)
    End If
    Next
    End Sub

    Sub Lösche_Userformen()
    Rem Löscht Userforms:
    For n = ActiveWorkbook.VBProject.vbComponents.Count To 1 Step -1
    If ActiveWorkbook.VBProject.vbComponents(n).Type = 3 Then
    ActiveWorkbook.VBProject.vbComponents(n).Collection.Remove _
    ActiveWorkbook.VBProject.vbComponents(n)
    End If
    Next
    End Sub

    Sub Lösche_Ereignisprozeduren()
    Rem Löscht Ereignisprozeduren:
    For n = ActiveWorkbook.VBProject.vbComponents.Count To 1 Step -1
    For i = 1 To ActiveWorkbook.VBProject.vbComponents(n).CodeModule.CountOfLines
    If ActiveWorkbook.VBProject.vbComponents(n).Type <> 1 And _
    ActiveWorkbook.VBProject.vbComponents(n).Type <> 3 Then _
    ActiveWorkbook.VBProject.vbComponents(n).CodeModule.DeleteLines 1
    Next
    Next
    End Sub

    Code eingefügt mit VBA in HTML 2.0

    Gruß, René
     
  5. bahnrat

    bahnrat Kbyte

    Noch ein Nachtrag: In den Makrosicherheitseinstellungen muss dem Zugriff auf das VBA-Projekt vertraut werden. Daher einen Haken setzen bei Zugriff auf das VBA-Projektobjektmodell vertrauen (Excel ab 2007) bzw. Zugriff auf das Visual Basic-Projekt vertrauen (Excel 2003) setzen, ohne dem Haken kann nicht gelöscht werden.
     
  6. lang76

    lang76 Byte

    Hallo bahnrat,

    es funktioniert alles wunderbar,
    danke dir!

    Gruß
     
  7. lang76

    lang76 Byte

    Hallo bahnrat,

    es funktioniert alles wunderbar,
    danke dir!

    Gruß
     
  8. bahnrat

    bahnrat Kbyte

    Wenn da nur nicht immer dieses Crossposting wär. ;)
     
Thread Status:
Not open for further replies.

Share This Page