Anzeige

 Excel VBA - Makros auf Server gespeicherten Excel Dateien starten


jerry0110

Erfahrenes Mitglied
#1
Hi,

ich versuche mich schon seit längerem mit der Möglichkeit meine Makros zentral aus einer Datei zu starten.
Hierbei möchte ich aber nicht die einzelnen Makros in eine Datei speichern und starten sondern, dass ich einen Button haben, der alle Makros der angegeben Dateien startet.

Code:
Application.Run "'C:\Users\x.xxxx\Desktop\Neuer Ordner\Zieldatei.xlsm'!Email_versenden"
Es klappt einfach nicht.
 

jerry0110

Erfahrenes Mitglied
#3
Also ich habe vorher was irgendwie nicht mit reinkopiert wurde das hier:

Code:
Workbooks.Open "C:\Users\x.xxxx\Desktop\Neuer Ordner\Zieldatei.xlsm
Also für mein Verständnis, öffne ich eine Datei und sage dann starte das Makro und dann schließe die Datei.
 

Yaslaw

n/a
Moderator
#4
Visual Basic:
    Dim wb As Workbook
   
    Set wb = Workbooks.Open("C:\_TMP\AdOnTest.xlsm", , True)
    Application.Run "AdOnTest.xlsm!mText", "abc"
    wb.Close
 

Yaslaw

n/a
Moderator
#7
Ah, der 1004.!Alles klar - Ne, Sorry. Hab keine Ahnung wofür der 1004er steht. Ist schon blöd, dass Access keine Meldung dazu ausspuckt.
 

Yaslaw

n/a
Moderator
#9
Du hast mich nicht verstanden. Ich kenne die Nummern wirklich nicht auswendig.
Also:
Was gibt Access für eine Fehlermeldung aus? Den Text bitte, nicht die Nummer.
Auf welcher Zeile (bitte die Zeile dazu auch posten) kommt der Fehler?
 

jerry0110

Erfahrenes Mitglied
#10
Achso :)

Also hier steht: Anwendungs- und Objektdefinierter Fehler.
Ist im Übrigen Excel nicht Access

Und die Zeile ist:

Application.Run "Zieldatei.xlsm!Email_versenden"
 
Zuletzt bearbeitet:

Yaslaw

n/a
Moderator
#13
Und jetzt zeig mal dein ganzer Code.
Und hast du im Email_versenden eine Error-Behandlung drin?
Ev. kommt der Fehler auch aus der Funktion.
 

jerry0110

Erfahrenes Mitglied
#14
Code:
Sub ExternesMakroStarten()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\Users\x.xxx\Desktop\Neuer_Ordner\Zieldatei.xlsm", , True)
Application.Run "Zieldatei.xlsm!Email_versenden"
wb.Close
End Sub
 

jerry0110

Erfahrenes Mitglied
#16
Code:
Sub Email_versenden()

Dim strPDF As String, strPDF2 As String
Dim OutlookApp As Object, strEmail As Object

myDate = ThisWorkbook.Worksheets("Detaillansicht Mitarbeiter").Range("T1")

Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)

ThisWorkbook.Sheets("Dashboards").Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\oda-san1\KPI´s\2018\" & Format(myDate, "mmmm") & "\" & Format(myDate, "YYYY_MM") & "_Zieldatei " & Format(myDate, "YYYY") & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False _

ThisWorkbook.Sheets(Array("Detaillansicht Aufträge VR", "Detailansicht Angebote VR", "Detailansicht Verkaufsbesuch VR", "Detailansicht Telefonate VR_TS", "Detail. Termintage_Forecast")).Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"\\oda-san1\KPI´s\2018\" & Format(myDate, "mmmm") & "\" & Format(myDate, "YYYY_MM") & "_Zieldatei " & Format(myDate, "YYYY") & " Detaillierte Aufstellung.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False

strPDF = "\\oda-san1\KPI´s\2018\" & Format(myDate, "mmmm") & "\" & Format(myDate, "YYYY_MM") & "_Zieldatei " & Format(myDate, "YYYY") & ".pdf"
strPDF2 = "\\oda-san1KPI´s\2018\" & Format(myDate, "mmmm") & "\" & Format(myDate, "YYYY_MM") & "_Zieldatei " & Format(myDate, "YYYY") & " Detaillierte Aufstellung.pdf"

With strEmail
.To = ""
.CC = ""
.Subject = "KPI Auswertung " & Format(myDate, "mmmm YYYY")
.body = "Guten Tag zusammen," & Chr(13) & _
"" & Chr(13) & _
"anbei übersende ich Ihnen die KPI´s für den " & Format(myDate, "mmmm YYYY") & "." & Chr(13) & _
"" & Chr(13) & _
"" & Chr(13) & _
"" & Chr(13)

.Attachments.Add strPDF
.Attachments.Add strPDF2
.Attachments.Add "\\oda-san1\KPI´s\Forecast\" & Format(myDate, "YYYY") & "\" & Format(myDate, "mmmm") & "\" & "Forecast " & Format(myDate, "mmmm YYYY") & ".xlsx"
.Display

End With

Set OutlookApp = Nothing
Set strEmail = Nothing
End Sub
 

Yaslaw

n/a
Moderator
#18
Nun, du hast also keine Fehlerbehandlung in deinem Code. Ist fast ein Muss für Funktionen, die du von aussen aufrufst.
Ich kann die nicht sagen, ob der Code in deiner aufrufenden Funktion ExternesMakroStarten() oder in Email_versenden() auftaucht.
 

jerry0110

Erfahrenes Mitglied
#19
Wenn dann kann es nur eine Funktion von Excel selber sein.
Wenn ich das Makro "Email_versenden" alleine aufrufe, dann läuft das ohne Probleme durch.
Er öffnet auch die Datei mit dem Makro "ExternesMakroStarten". Aber dann bricht er mit dem o. g. Fehler ab.
Es scheint so, als ob er das Makro nicht starten will.
 
Anzeige

Neue Beiträge

Anzeige