Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1668to1672
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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
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
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: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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige