Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Module importieren und löschen
#1
Hallo liebes Forum,

kann mir bitte jemand sagen, was an den beiden Makros falsch sein könnte, da der Import in die gewählte Datei wohl funktioniert, das Löschen der gewünschten Moduls aber nur manchmal.
Vielen Dank für Eure Hilfe.

Liebe Grüße aus Innsbruck
Helmut
Code:
Option Explicit

Sub Makro_Kopieren_Anlage()        ' Achtung ! Funktioniert nicht bei Einzelschritten !!

'ACHTUNG! Workbook VBA-Sperre muss offen sein und Einzelschritte gehen nicht !!
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

'Module aus dieser Datei in die Anlage-Dateien exportieren

Application.ScreenUpdating = False
   
   Dim AktJahr, strPath, strFileName, strPathMakro, strFileMakro, Pfad1, Pfad2, Pfad3, Pfad4, Pfad5, _
   Pfad6, Pfad7, Pfad8, StZe
   
   AktJahr = Year(Date)

   StZe = " Stundenzettel "

   strPath = "C:\Geschäftsleitung\Daten\Neuer PC\Personalverwaltung\Stundenzettel\Stundenzettel " _
   & AktJahr & "\"
   strFileName = Dir(strPath & "~~~" & StZe & AktJahr & "*.xlsm") 'alle ~~~Anlagedateien
   
   strPathMakro = "C:\Geschäftsleitung\~Vorlagen\Makros Kopieren\"
   strFileMakro = "Makros Kopieren-neu-24 PST - FB.xlsm"

Do While strFileName <> ""  'Alle ~~~Anlagedateien

   Pfad1 = ThisWorkbook.Path & "\Essenmarken_13.bas"      'für alle DN-Dateien
   Pfad2 = ThisWorkbook.Path & "\Sollstunden_24_UD.bas"
   Pfad3 = ThisWorkbook.Path & "\Sonnt_Summen_I_13.bas"
   Pfad4 = ThisWorkbook.Path & "\Zeit_Zell_Null_Leer_3.bas"
   
   Application.VBE.ActiveVBProject.VBComponents("Modul_Essenmarken_13").Export Pfad1
   Application.VBE.ActiveVBProject.VBComponents("Modul_Sollstunden_24_UD").Export Pfad2    
    Application.VBE.ActiveVBProject.VBComponents("Modul_Sonnt_Summen_I_13").Export Pfad3
   Application.VBE.ActiveVBProject.VBComponents("Modul_Zeit_Zell_Null_Leer_3").Export Pfad4
       
Workbooks.Open Filename:=strPath & strFileName

Makro_Löschen                 'Modul
         
Windows(strFileName).Activate

   With ActiveWorkbook
   
   .Application.VBE.ActiveVBProject.VBComponents.Import Pfad1
Kill Pfad1
   .Application.VBE.ActiveVBProject.VBComponents.Import Pfad2
Kill Pfad2
   .Application.VBE.ActiveVBProject.VBComponents.Import Pfad3
Kill Pfad3
   .Application.VBE.ActiveVBProject.VBComponents.Import Pfad4
Kill Pfad4

   End With

Windows(strFileName).Activate

   ActiveWorkbook.Save
   ActiveWorkbook.Close
   
strFileName = Dir()     'Nächsten Dateinamen ermitteln
   
   If strFileName = "" Then
   MsgBox "Keine weiteren Dateien vorhanden !", vbExclamation, "Hinweis"
   End If
Loop

Application.ScreenUpdating = True
End Sub
Code:
Sub Makro_Löschen()

'löscht ohne Rückfrage Moduls
     
   With ActiveWorkbook.VBProject
   
   .VBComponents.Remove .VBComponents("Modul_Essenmarken_12")
   .VBComponents.Remove .VBComponents("Modul_Sollstunden_23_UD")
   .VBComponents.Remove .VBComponents("Modul_Sonnt_Summen_I_12")
   .VBComponents.Remove .VBComponents("Modul_Zeit_Zell_Null_Leer_2")
   
   End With

End Sub
Antworten Top
#2
Hallo,

kannst du einmal kurz erklären, was du eigentlich machen willst? Warum VBA-Module aus einer Vorlage kopieren und dann löschen?
Was ist der Sinn deines Tun?
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#3
Hallo Günter,

vielen Dank für Deine Antwort.
Es geht hier darum alte Module durch geänderte neue zu ersetzen, was bislang auch immer funktioniert hat, aber heute hatte ich das Problem, dass nur in einigen der zu ändernden Dateien die alten Module (siehe zweiter Code) auch gelöscht wurden, was mich verunsichert, da ich dann alle, in diesem Fall Gott Lob nur 16 Dateien Überprüfen musste.

Liebe Grüße
helmut
Antworten Top
#4
Moin Helmut!
Ist zwar ein wenig off topic, aber:
Zitat:Es geht hier darum alte Module durch geänderte neue zu ersetzen

Für so etwas hat Excel Add-Ins vorgesehen.
Muss ja noch nicht mal global per Add-In-Manager geschehen, sondern bietet sich bei "speziellen" Makros als Verweis auf das Add-In an.
Grob nach diesem Schema:
http://office-loesung.de/ftopic601306_0_0_asc.php

Edit:
Eine einfache Anleitung habe ich ja auch hier im Forum erstellt:
http://www.clever-excel-forum.de/thread-3929.html

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • heli
Antworten Top
#5
Hallo Ralf,

vielen Dank für Deinen Rat.
Ich werde mich nun doch mit Add In auseinander setzen.

Liebe Grüße
Helmut
Antworten Top
#6
Dann reicht vielleicht ?


Code:
Sub M_snb()
  With ThisWorkbook.VBProject
    For Each it In .VBComponents
      If it.Type = 1 Then .VBComponents.Remove it
    Next
        
    For j = 1 To 4
      .VBComponents.Import "G:\OF\" & Choose(j, "Essenmarken_13.bas", "Sollstunden_24_UD.bas", "Sonnt_Summen_I_13.bas", "Zeit_Zell_Null_Leer_3.bas")
    Next
  End With
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • heli
Antworten Top
#7
Hallo Ralph,

ich wollte nun Deine Anleitung betreffend Addin lt. Thread 3929 ausführen, komme aber bei einem Punkt nicht mehr weiter, da nicht vorhanden.
Zitat:

Im VBA-Editor:
- Extras, Verweise
- Durchsuchen, Dateityp Excel Files, Verzeichnis und AddIn suchen, Öffnen

Was mache ich falsch ?
Vielen Dank.
Liebe Grüße Helmut
Antworten Top
#8
Hallo Helmut,

Verzeichnis und AddIn suchen

da sollt Du sicher durch Deine Festplatte wandeln und nach dem AddIn schauen und es, wenn Du es gefunden hast, öffnen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • heli
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste