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

Forumthread: VBA Modul löschen

VBA Modul löschen
20.09.2016 10:24:03
Samu
Hallo Leute,
ich habe folgende Frgae:
In meinem VBA-Code soll ein ausgelagertes Modul aufgerufen, abgearbeitet und wieder gelöscht werden. Das funktioniert auch alles bis auf das Löschen.
In einem anderen Makro werden Werte in einer Tabelle auf diesselbe Weise hinzugefügt und das Modul lässt sich am Ende auch wieder einwandfrei löschen. Es muss also in meinem "Problem Makro" daran liegen, dass das ausgelagerte Modul eine Tabelle öffnet. Diese Tabelle soll aber geöffnet bleiben. Das Modul lässt sich aber nur wieder löschen wenn die Tabelle vorher wieder geschlossen ist, das habe ich durch debuggen in Einzelschritten schon herausgefunden.
Wie kann ich mein zuvor aufgerufenes Modul wieder entfernen auch wenn die Tabelle noch geöffnet ist?
Danke schonmal für eure Hilfe!
Sub kennzahlen_aufrufen()
Application.VBE.ActiveVBProject.VBComponents.Import ("P:\A\AKKU\BLEIBATTERIEN\7_GEWA-Raten\ _
Externe Module\Modul11.bas")
Call startProcess
With ActiveWorkbook.VBProject
.VBComponents.Remove .VBComponents("Modul11")
End With
End Sub

Function startProcess()
Dim jahr As String, monat As String, datei As String
Dim datum As Long
Dim text As String
Dim s As String
s = "GEWA - Rate Batterie Exide 6.654-093.0.xlsm"
text = "" & datum
Call kennzahlentool_extern(jahr, monat, datei, s)
End Function

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Modul löschen
20.09.2016 11:35:36
Samu
Wäre für schnelle Hilfe dankbar! Komme sonst nicht weiter...
AW: VBA Modul löschen
20.09.2016 11:36:33
Samu
Wäre für schnelle Hilfe dankbar! Komme sonst nicht weiter...
AW: VBA Modul löschen
20.09.2016 18:27:57
Uduuh
Hallo,
versuchs mal mit
     With ThisWorkbook.VBProject
.VBComponents.Remove .VBComponents("Modul11")
End With
Gruß aus’m Pott
Udo

Anzeige
AW: VBA Modul löschen
21.09.2016 07:39:29
Samu
Funktioniert wunderbar! Vielen Dank!
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Modul löschen in Excel


Schritt-für-Schritt-Anleitung

Um ein VBA Modul in Excel zu löschen, kannst du die folgenden Schritte befolgen:

  1. Modul importieren: Stelle sicher, dass das Modul, das du verwenden möchtest, bereits importiert wurde. Hier ist ein Beispiel, wie du ein Modul importierst:

    Sub kennzahlen_aufrufen()
       Application.VBE.ActiveVBProject.VBComponents.Import ("P:\A\AKKU\BLEIBATTERIEN\7_GEWA-Raten\Externe Module\Modul11.bas")
       Call startProcess
    End Sub
  2. Modul verwenden: Führe die gewünschten Berechnungen oder Prozesse innerhalb des Moduls durch.

  3. Modul löschen: Um das Modul zu löschen, benutze den folgenden Code:

    With ThisWorkbook.VBProject
       .VBComponents.Remove .VBComponents("Modul11")
    End With

    Diese Methode funktioniert problemlos, solange das Modul keine geöffneten Arbeitsmappen benötigt.


Häufige Fehler und Lösungen

  • Fehler beim Löschen: Wenn du versuchst, ein Modul zu löschen, während eine Tabelle geöffnet ist, kann dies zu Fehlern führen.
    • Lösung: Schließe die Arbeitsmappe, bevor du das Modul löschst. Alternativ kannst du die Arbeitsmappe im Hintergrund geöffnet lassen und den Code anpassen, wie in der Schritt-für-Schritt-Anleitung beschrieben.

Alternative Methoden

Falls du Probleme mit dem Löschen eines Moduls hast, gibt es alternative Ansätze:

  • Verwendung von ThisWorkbook: Statt ActiveWorkbook kannst du ThisWorkbook verwenden, um sicherzustellen, dass das richtige Projekt angesprochen wird:

    With ThisWorkbook.VBProject
       .VBComponents.Remove .VBComponents("Modul11")
    End With
  • Makros in verschiedenen Modulen: Wenn du mit mehreren Modulen arbeitest, achte darauf, dass du das richtige Modul löschst und keine Abhängigkeiten verletzt.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du ein vba modul löschen kannst:

  1. Modul importieren und bearbeiten:

    Sub bearbeiteUndLoescheModul()
       Application.VBE.ActiveVBProject.VBComponents.Import ("Pfad\zu\deinem\Modul.bas")
       ' Führe hier deine Logik aus
       With ThisWorkbook.VBProject
           .VBComponents.Remove .VBComponents("DeinModul")
       End With
    End Sub
  2. Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass das Modul auch bei Problemen gelöscht wird.

    On Error Resume Next
    With ThisWorkbook.VBProject
       .VBComponents.Remove .VBComponents("Modul11")
    End With
    On Error GoTo 0

Tipps für Profis

  • Sicherheitsoptionen: Stelle sicher, dass die Sicherheitseinstellungen in Excel so konfiguriert sind, dass du VBA-Code ausführen darfst.
  • Backup deiner Module: Bevor du ein Modul löschst, ist es ratsam, ein Backup zu erstellen, um Datenverluste zu vermeiden.
  • Verwende Debug.Print: Nutze Debug.Print, um Informationen während der Ausführung zu protokollieren, falls etwas schiefgeht.

FAQ: Häufige Fragen

1. Warum kann ich mein VBA Modul nicht löschen? Wenn die Arbeitsmappe, die das Modul benötigt, noch geöffnet ist, kann das Löschen des Moduls zu Fehlern führen. Schließe die Arbeitsmappe oder passe deinen Code entsprechend an.

2. Gibt es eine Möglichkeit, mehrere Module gleichzeitig zu löschen? Ja, du kannst eine Schleife verwenden, um mehrere Module in einem einzigen Makro zu löschen. Stelle sicher, dass du die Namen der Module korrekt angibst.

3. Was passiert mit den Daten, wenn ich ein Modul lösche? Das Löschen eines Moduls hat keine Auswirkungen auf die Daten in deinen Arbeitsblättern. Es entfernt nur den VBA-Code, der in diesem Modul gespeichert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige