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.

mehrer Verknuepfungen automatisch aktualisieren
#1
Hallo,

ich habe versucht mit dem MakroRecorder ein Makro aufzuzeichen.
in der DailyRec&Disb.MasterfileEU_VBA existiert fuer jedes Land eine Lasche. Jede LAsche ist zu den jeweiligen Laenderdateien verlinkt (die sammelt man regelmaessig mit updates ein).
Nun soll dass Makro in der file DailyRec&Disb.MasterfileEU_VBA folgende Schritte ausfuehren und genau diese Schritte habe ich ausgefuehrt waehrend der Makro Recorder lief.
1. Oeffne alle Laenderdateien (damit die aktualisierung der Verlinkung in Schritt 2 schnell vonstatten geht)
2. Aendere die Quelle fuer jede Verknuepfung zur neuen Laender Datei (unten steht im Code 0 updates weil es keine update gab in der neuen Datei gab)
3. schliesse die Dateien

DAs Makro fuehrt nur den Schritt 1 aus und das auch nur fuer die erste DAtei - danach tut sich nichts mehr.
Hat jemand eine Idee? Ich bin der totale Anfaenger in VBA.

Viele Dank

Sub Makro1()
'
' Makro1 Makro
' open country file and renew link/source data
'
' Tastenkombination: Strg+Umschalt+A
'
    ChDir _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day"
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\AT_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\BEL_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\BENL_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\DE_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\ES_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\FR_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\IT_HY_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\NO_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\PL_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\PT_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\RUS_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\SK_Masterfile.xlsx" _
        , UpdateLinks:=0
    Workbooks.Open Filename:= _
        "C:\Users\gillnerc\Desktop\Desktop\Automatization DailyRec.&Disb\prior day\UK_Masterfile.xlsx" _
        , UpdateLinks:=0
    Windows("DailyRec&Disb.MasterfileEU_VBA.xlsm").Activate
    ActiveWorkbook.ChangeLink Name:="AT_Masterfile.xlsx", NewName:= _
        "AT_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="BEL_Masterfile.xlsx", NewName:= _
        "BEL_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="BENL_Masterfile.xlsx", NewName:= _
        "BENL_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="DE_Masterfile.xlsx", NewName:= _
        "DE_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="ES_Masterfile.xlsx", NewName:= _
        "ES_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="FR_Masterfile.xlsx", NewName:= _
        "FR_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="IT_HY_Masterfile.xlsx", NewName:= _
        "IT_HY_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="NO_Masterfile.xlsx", NewName:= _
        "NO_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="PL_Masterfile.xlsx", NewName:= _
        "PL_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="PT_Masterfile.xlsx", NewName:= _
        "PT_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="RUS_Masterfile.xlsx", NewName:= _
        "RUS_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="SK_Masterfile.xlsx", NewName:= _
        "SK_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.ChangeLink Name:="UK_Masterfile.xlsx", NewName:= _
        "UK_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Save
    Windows("UK_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("SK_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("RUS_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("PT_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("PL_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("NO_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("IT_HY_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("FR_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("ES_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("DE_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("BENL_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("BEL_Masterfile.xlsx").Activate
    ActiveWindow.Close
    Windows("AT_Masterfile.xlsx").Activate
    ActiveWindow.Close
End Sub
Antworten Top
#2
Hallo,

was soll denn auch passieren, wenn NewName der selbe ist wie der alte Name?

Gruß Uwe
Antworten Top
#3
Hallo,

Ich denke nicht dass das das Problem ist/war warum es nicht funktioniert hat. es ist egal ob newname=old name
es funktioniert nun. ich habe mich "durchgewurschtelt"
falls es interessiert, unten der code. das Makro oefnet nun alle Dateien, aktualisert sofern es es aktualsierung gibt , schliesst die Dateien wieder und speichert.

Vielen Dank und bis zum naechsten Mal

Sub Makro3()
'
' Makro3 Makro
' Does open files, update source + close files
'
' Tastenkombination: Strg+Umschalt+C
    Dim strVerzeichnis As String
    Dim StrDatei As String
    Dim StrTyp As String
    Dim Dateiname As String
    strVerzeichnis = "C:\Users\gillnerc\desktop\desktop\Automatization DailyRec.&Disb\prior day\"
    StrTyp = "*.xlsx"
    Dateiname = Dir(strVerzeichnis & StrTyp)
    Do While Dateiname <> ""
        Workbooks.Open Filename:=strVerzeichnis & Dateiname
        Dateiname = Dir
    Loop
    Windows("DailyRec&Disb.MasterfileEU_VBA.xlsm").Activate
    ActiveWorkbook.Changelink Name:="AT_Masterfile.xlsx", NewName:= _
        "AT_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="BEL_Masterfile.xlsx", NewName:= _
        "BEL_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="BENL_Masterfile.xlsx", NewName:= _
        "BENL_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="DE_Masterfile.xlsx", NewName:= _
        "DE_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="ES_Masterfile.xlsx", NewName:= _
        "ES_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="FR_Masterfile.xlsx", NewName:= _
        "FR_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="IT_HY_Masterfile.xlsx", NewName:= _
        "IT_HY_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="NO_Masterfile.xlsx", NewName:= _
        "NO_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="PL_Masterfile.xlsx", NewName:= _
        "PL_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="PT_Masterfile.xlsx", NewName:= _
        "PT_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="RUS_Masterfile.xlsx", NewName:= _
        "RUS_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="SK_Masterfile.xlsx", NewName:= _
        "SK_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Changelink Name:="UK_Masterfile.xlsx", NewName:= _
        "UK_Masterfile.xlsx", Type:=xlExcelLinks
    ActiveWorkbook.Save
    Windows("UK_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("SK_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("RUS_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("PT_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("PL_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("NO_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("IT_HY_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("FR_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("ES_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("DE_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("BENL_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("BEL_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    Windows("AT_Masterfile.xlsx").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
End Sub
Antworten Top
#4
Hallo,

mit Schleife würde das ja reichen:
Sub Makro4()
   Dim strVerzeichnis As String
   Dim StrDatei As String
   Dim StrTyp As String
   Dim Dateiname As String
   strVerzeichnis = "C:\Users\gillnerc\desktop\desktop\Automatization DailyRec.&Disb\prior day\"
   StrTyp = "*.xlsx"
   Dateiname = Dir(strVerzeichnis & StrTyp)
   Do While Dateiname <> ""
       Workbooks.Open Filename:=strVerzeichnis & Dateiname
       ThisWorkbook.ChangeLink Name:=Dateiname, NewName:=Dateiname, Type:=xlExcelLinks
       ActiveWorkbook.Close True
       Dateiname = Dir
   Loop
End Sub
Gruß Uwe
Antworten Top
#5
Danke, probiere ich nachher mal aus.
Vielen Dank
Antworten Top
#6
Danke Uwe, es klappt . Super! ich bin begeisert..ich mein zusammengebastelter code mit den vielen Zeilen geht in die Tonne.

Danke
Antworten Top


Gehe zu:


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