Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ergänzung zum Makro Modul kopieren

Forumthread: Ergänzung zum Makro Modul kopieren

Ergänzung zum Makro Modul kopieren
29.01.2019 09:45:57
sigrid
Guten Morgen Fachfrauen und Männer,
ich habe ein Makro "zusammenbebastelt" welches die aktuelle Tabelle
speichert.
Funktioniert einwandfrei !
Nun möchte ich das das Modul "mod_alles" mit in die neue Datei
reinkopiert wird.
Ich hab natürlich keinen Schimmer...wo ich das Makro reinsetzen soll.
Hier mein Makro:
Public Sub Sigrid_NEU_BlattSpeichern()
Dim TBName$
Dim tan
tan = ActiveSheet.Name
TBName = ActiveSheet.Name
'ActiveSheet.Unprotect (getStrPasswort)
Dim WBName As String, varAntwortMsg
Do
WBName = InputBox(Chr(13) & Chr(13) & _
"JETZT  im blau makierten Feld Kunden-Name eingeben: " & Chr(13) & Chr(13) & _
_
"              NUR Namen, kein DOPPELPUNKT, kein Schrägstrich !", _
"Kunden-Namen für Datei >", tan & ".xls")
If Not sichererDateiname(WBName) Then
If MsgBox("Dateiname enthält ungültige Sonderzeichen." & Chr(10) & _
"Nochmal probieren?", vbYesNo) = vbNo Then Exit Sub
Else
Exit Do
End If
Loop
ActiveSheet.Range("D1") = WBName
If WBName = "" Then Exit Sub
ActiveSheet.Unprotect (getStrPasswort)
Worksheets(TBName).Copy
'--- so jetzt noch ins Verzeichnis speichern -------------
Dim Fs As Object, OrdNam As Variant, Ord As Byte, Pfad As String
Dim DateiNam As String
Dim aDatei As String
Dim strPath$
DateiNam = WBName & " " & "Rg.-Nr. " & ActiveSheet.Range("I23") & " - " & ActiveSheet.Range(" _
J23") & " " _                                                                   & ActiveSheet.Range("E23") & ".xls"
'Pfad
strPath = "C:\_Sigi\__Dokumente\__Rechnungen\"
With ActiveSheet                        'Tabelle anpassen
If IsDate(.Range("J18")) Then
If .Range("J18") > 0 Then
'Pfad Jahr
strPath = strPath & Year(.Range("J18").Value) & "\"
'Pfad Monat
strPath = strPath & Format(.Range("J18").Value, "MM  MMMM") & "\"
'Ordner erstellen sollte dieser nicht vorhanden sein
apiCreateFullPath strPath
'Pfad Dateiname
strPath = strPath & DateiNam         '''''''ActiveWorkbook.Name
'Prüfung ob vorhanden
If Dir(strPath, vbNormal)  "" Then
MsgBox "Kunden-Name " & DateiNam & Chr(13) & Chr(13) & _
"mit der Rg. - Nr. ist vorhanden !" & vbLf & vbLf & "Bitte ändern !"
' strPath = ActiveWorkbook.FullName
' On Error Resume Next
Application.DisplayAlerts = False
ActiveWorkbook.Close ''True
' Kill strPath
' ActiveWindow.Close
Exit Sub                    ' ich eingesetzt
Else
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=strPath, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False
End If
End If
End If
End With
'- vorhandene button löschen -----------------------
'''' On Error Resume Next                         'raus 25.4.16
ActiveSheet.Shapes("CommandButton7").Delete
ActiveSheet.Shapes("CommandButton8").Delete      'zur Rechnungs-Auswahl
ActiveSheet.Shapes("CommandButton1").Delete     ' korrektur speichern
ActiveSheet.Shapes("CheckBox3").Delete          ' korrektur einschalten
''''' On Error GoTo 0
ActiveSheet.Application.ScreenUpdating = False
'----- jetzt schutz setzen --------------
Dim akw As String
akw = ActiveWorkbook.Name
Dim Password As String
Password = "wwpa"
Dim vbext_pp_none
Dim wb As Workbook, ok As Boolean, s As String
Set wb = Application.Workbooks(akw)
If ActiveSheet.Name = "Rechnung MG" Then
Call Arbeitsmappe_Makro_schreiben_Neu_MG
End If
End If
ActiveWorkbook.SaveAs Filename:=strPath, _
FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close True
Set wb = Nothing
'ActiveSheet.Unprotect (getStrPasswort)
''----- hier die Vorlage löschen -----------------------------------
ActiveSheet.Range("C11:C16").ClearContents                                 ' seite 1
If ActiveSheet.Name = "Rechnung1" Then
ActiveSheet.Unprotect (getStrPasswort)
Sheets("Rechnung1").CheckBox1.Value = False
ActiveSheet.Range("D1") = ThisWorkbook.Sheets("Rechnungs-Auswahl").Range("A46")
ActiveSheet.Range("C11").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:=getStrPasswort
End If
ActiveSheet.Range("D1") = ThisWorkbook.Sheets("Rechnungs-Auswahl").Range("A46")
ActiveSheet.Range("C11").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:=getStrPasswort
ActiveSheet.Range("D1") = ThisWorkbook.Sheets("Rechnungs-Auswahl").Range("A46")
ActiveSheet.Range("C11").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:=getStrPasswort
End If
If ActiveSheet.Name = "Slozinskima" Then
ActiveSheet.Unprotect (getStrPasswort)
Sheets("Slozinskima").CheckBox1.Value = False
ActiveSheet.Range("D1") = ThisWorkbook.Sheets("Rechnungs-Auswahl").Range("A46")
ActiveSheet.Range("C11").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:=getStrPasswort
End If
ActiveSheet.Application.ScreenUpdating = True
End Sub
Hoffentlich blickt jemand durch, würde mich freuen !
gruß sigrid
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ergänzung zum Makro Modul kopieren
29.01.2019 10:34:51
Luschi
Hallo sigrid,
das Thema Export/Import von Vba-Modulen, -Forms usw. ist nicht ganz trivial, deshalb hier mal ein bischen Lesestoff:
https://www.rondebruin.nl/win/s9/win002.htm
Gruß von Luschi
aus klein-Paris
AW: Ergänzung zum Makro Modul kopieren
29.01.2019 10:57:04
Nepumuk
Hallo Sigrid,
vor dem Speichern der Mappe:
Public Sub Export_Import()
    Const MODUL_NAME As String = "mod_alles"
    Dim strPath As String
    strPath = Environ$("TEMP") & "\" & MODUL_NAME & ".bas"
    If Dir$(PathName:=strPath) <> vbNullString Then Call Kill(PathName:=strPath)
    Call ThisWorkbook.VBProject.VBComponents(MODUL_NAME).Export(Filename:=strPath)
    Call ActiveWorkbook.VBProject.VBComponents.Import(Filename:=strPath)
    Call Kill(PathName:=strPath)
End Sub

Du musst natürlich im Trustcenter den Zugriff auf das VB-Projekt zulassen, und das auf allen Rechnern auf denen das Makro laufen soll.
Gruß
Nepumuk
Anzeige
AW: Ergänzung zum Makro Modul kopieren
29.01.2019 11:53:55
sigrid
Guten Morgen Nepumuk,
danke erst mal,
TRUSTcenter hab ich nicht aber Du meinst sicherlich
Vertrauungsstellenfenster ?!
gruß sigrid
AW: Ergänzung zum Makro Modul kopieren
29.01.2019 12:33:41
Nepumuk
Hallo Sigrid,
ich weiß nicht mehr wie das in Excel 2007 hieß, ist schon zu lange her. Aber genau das meinte ich.
Gruß
Nepumuk
Hab durchgeführt
29.01.2019 11:58:13
sigrid
Guten Tag Nepumuk,
habe das Makro in mein Modul: mod_alles kopiert.
Jetzt habe ich ein Modul:mod_alles1 zusätzlich drin.
Wie bekomme ich den das Modul in die neue die Datei ?
gruß sigrid
Anzeige
AW: Hab durchgeführt
29.01.2019 12:26:48
Nepumuk
Hallo Sigrid,
eieieieiei, das solltest du aber schon selber hin bekommen. So unbedarft in Sachen VBA bist du doch nicht.
Public Sub Export_Import()
    Const MODUL_NAME1 As String = "mod_alles"
    Const MODUL_NAME2 As String = "mod_alles1"
    Dim strPath1 As String, strPath2 As String
    strPath1 = Environ$("TEMP") & "\" & MODUL_NAME1 & ".bas"
    strPath2 = Environ$("TEMP") & "\" & MODUL_NAME2 & ".bas"
    If Dir$(PathName:=strPath1) <> vbNullString Then Call Kill(PathName:=strPath1)
    If Dir$(PathName:=strPath2) <> vbNullString Then Call Kill(PathName:=strPath2)
    Call ThisWorkbook.VBProject.VBComponents(MODUL_NAME1).Export(Filename:=strPath1)
    Call ThisWorkbook.VBProject.VBComponents(MODUL_NAME2).Export(Filename:=strPath2)
    Call ActiveWorkbook.VBProject.VBComponents.Import(Filename:=strPath1)
    Call ActiveWorkbook.VBProject.VBComponents.Import(Filename:=strPath2)
    Call Kill(PathName:=strPath1)
    Call Kill(PathName:=strPath2)
End Sub

Gruß
Nepumuk
Anzeige
Ich bin nicht so perfekt wie Du
29.01.2019 12:36:29
sigrid
Hey Nepumuk,
ich habe das Speichermenü nur mit Hilfe aus Forum zusammengestellt.
Also setze ich call Export_Import
als erstes ein.
Public Sub Sigrid_NEU_BlattSpeichern()
Dim TBName$
Dim tan
tan = ActiveSheet.Name
TBName = ActiveSheet.Name
'ActiveSheet.Unprotect (getStrPasswort)
Dim WBName As String, varAntwortMsg
call Export_Import
Do
und in welche Zeile setze ich was ein ? um das Modul zu inportieren ?
gruss sigrid
Anzeige
AW: Ich bin nicht so perfekt wie Du
29.01.2019 12:43:19
Nepumuk
Hallo Sigrid,
nach der Zeile:
Application.DisplayAlerts = False
Ich habe ja geschrieben, vor dem Speichern der neuen Mappe (SaveAs …)
Gruß
Nepumuk
AW: Ich bin nicht so perfekt wie Du
29.01.2019 13:19:15
sigrid
Public Sub Export_Import()
Const MODUL_NAME1 As String = "mod_alles"
Const MODUL_NAME2 As String = "mod_alles1"
Dim strPath1 As String, strPath2 As String
strPath1 = Environ$("TEMP") & "\" & MODUL_NAME1 & ".bas"
strPath2 = Environ$("TEMP") & "\" & MODUL_NAME2 & ".bas"
If Dir$(PathName:=strPath1)  vbNullString Then Call Kill(PathName:=strPath1)
If Dir$(PathName:=strPath2)  vbNullString Then Call Kill(PathName:=strPath2)
Call ThisWorkbook.VBProject.VBComponents(MODUL_NAME1).Export(Filename:=strPath1)
bleibt hier stehen: Laufzeitfehler 9
 Call ThisWorkbook.VBProject.VBComponents(MODUL_NAME2).Export(Filename:=strPath2) _
b>
Call ActiveWorkbook.VBProject.VBComponents.Import(Filename:=strPath1)
Call ActiveWorkbook.VBProject.VBComponents.Import(Filename:=strPath2)
Call Kill(PathName:=strPath1)
Call Kill(PathName:=strPath2)
End Sub
gruss sigrid
Anzeige
AW: Ich bin nicht so perfekt wie Du
29.01.2019 13:19:15
sigrid
Public Sub Export_Import()
Const MODUL_NAME1 As String = "mod_alles"
Const MODUL_NAME2 As String = "mod_alles1"
Dim strPath1 As String, strPath2 As String
strPath1 = Environ$("TEMP") & "\" & MODUL_NAME1 & ".bas"
strPath2 = Environ$("TEMP") & "\" & MODUL_NAME2 & ".bas"
If Dir$(PathName:=strPath1)  vbNullString Then Call Kill(PathName:=strPath1)
If Dir$(PathName:=strPath2)  vbNullString Then Call Kill(PathName:=strPath2)
Call ThisWorkbook.VBProject.VBComponents(MODUL_NAME1).Export(Filename:=strPath1)
bleibt hier stehen: Laufzeitfehler 9
 Call ThisWorkbook.VBProject.VBComponents(MODUL_NAME2).Export(Filename:=strPath2) _
b>
Call ActiveWorkbook.VBProject.VBComponents.Import(Filename:=strPath1)
Call ActiveWorkbook.VBProject.VBComponents.Import(Filename:=strPath2)
Call Kill(PathName:=strPath1)
Call Kill(PathName:=strPath2)
End Sub
gruss sigrid
Anzeige
AW: Ich bin nicht so perfekt wie Du
29.01.2019 13:22:45
Nepumuk
Hallo Sigrid,
der Fehler sagt, dass es kein Modul mit dem Namen "mod_alles1" gibt.
Gruß
Nepumuk
So läuft es... _)
29.01.2019 13:25:04
sigrid
Hey Nepumuk,
so läuft es :
Public Sub Export_Import()
Const MODUL_NAME1 As String = "mod_alles"
Const MODUL_NAME2 As String = "mod_alles1"
Dim strPath1 As String, strPath2 As String
strPath1 = Environ$("TEMP") & "\" & MODUL_NAME1 & ".bas"
strPath2 = Environ$("TEMP") & "\" & MODUL_NAME2 & ".bas"
If Dir$(PathName:=strPath1)  vbNullString Then Call Kill(PathName:=strPath1)
If Dir$(PathName:=strPath2)  vbNullString Then Call Kill(PathName:=strPath2)
Call ThisWorkbook.VBProject.VBComponents(MODUL_NAME1).Export(Filename:=strPath1)
'    Call ThisWorkbook.VBProject.VBComponents(MODUL_NAME2).Export(Filename:=strPath2)
Call ActiveWorkbook.VBProject.VBComponents.Import(Filename:=strPath1)
'    Call ActiveWorkbook.VBProject.VBComponents.Import(Filename:=strPath2)
Call Kill(PathName:=strPath1)
'    Call Kill(PathName:=strPath2)
End Sub
warum auch immer aber es klappt halt,
danke.
gruss sigrid
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige