Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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
Dateien aktualisieren per Button (Makro)
10.07.2018 14:47:03
CL
Hallo Excel-Profis,
ich habe mittlerweile so einige aufeinander aufbauende Excel-Dateien die ich immer mühselig nacheinander öffne, speichere und dann beende.
Endlich kam ich nun auf die Idee das mit einem Makro per Button-Klick zu lösen :-D.
Ich möchte die Reihenfolge festlegen und am Besten beim Öffnen der Arbeitsmappe, in der ich den Button integrieren will, ein Formular einblenden oder eine MsgBox.
Ich habe etwas recherchiert und habe bei http://www.hajo-excel.de/ gesehen, dass man MsgBoxen für eine bestimmte Zeit einblenden lassen kann, ggf. wäre das eine Lösung.
Meine konkrete Frage zu dieser Thematik:
Gibt es eine eleganter Lösung als nachfolgende?
  • 
    Private Sub CommandButton1_Click()
    Dim Mappe1 As String, Mappe2 As String, Mappe3 As String ...
    Mappe1 = "Pfad"
    Mappe2 = "Pfad"
    Mappe3 = "Pfad"
    Workbooks.Open Filename:=Mappe1, UpdateLinks:=3
    ActiveWorkbook.Close Save Changes=True
    Workbooks.Open Filename:=Mappe2, UpdateLinks:=3
    ActiveWorkbook.Close Save Changes=True
    Workbooks.Open Filename:=Mappe3, UpdateLinks:=3
    ActiveWorkbook.Close Save Changes=True
    End Sub
    


  • Wie kann ich das in ein UserForm oder eine MsgBox beim Start der entsprechenden Datei mit diesem Aktions-Button einblenden - mit einem "OK-" und "Abbrechen-Button"? Ein kleines nettes Extra wäre noch das Feature "Wenn keine Reaktion vom User erfolgt, soll das Fenster nach einigen (z.B. 3) Sekunden wieder verschwinden".
    Wäre super hilfreich wenn mir jemand hier auf die Sprünge helfen könnte :-).
    Gruß,
    Chris

    7
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Dateien aktualisieren per Button (Makro)
    10.07.2018 16:02:21
    Rob
    Du kannst die Userform oder die MsgBox über das Workbook-Event Private Sub Workbook_Open() beim Öffnen der Datei automatisch aufrufen lassen.
    Die Excel-Dateien kannst du mit Scripting.FileSystemObject (Verweis auf Microsoft Scripting Runtime für early binding) elegant durchschleifen und öffnen. Bei lediglich drei Dateien und festen Pfaden ist allerdings die Frage, ob es den Aufwand wert ist. Ist auf jeden Fall eleganter, da objektorientiert. :-)
    AW: Dateien aktualisieren per Button (Makro)
    10.07.2018 17:49:41
    CL
    Hi Rob,
    danke für die Hinweise, ich werde mich daran mal versuchen.
    Nur nochmal explizit bzgl. deinem Verbesserungsvorschlag, es sind um die 15 Dateien, 3 war nur beispielhaft.
    Die Pfade sind an sich fix und auch total verteilt, also nicht alle in einem Ordner.
    Könntest du oder jemand mir eine Hilfestellung für eine bessere Lösung geben, ich weiß nicht wie du das genau meinst.
    Danke!
    Gruß,
    Chris
    Anzeige
    AW: Dateien aktualisieren per Button (Makro)
    10.07.2018 21:09:48
    Rob
    Du kannst es auch so lösen (beispielhaft für einen Pfad):
    
    Sub DateienÖffnen()
    Dim Mappe1 As String
    Dim DateiName As String
    Mappe1= "Pfad"
    DateiName = Dir(Mappe1 & "*.xlsx") ' ""
    Workbooks.Open Mappe1 & DateiName, _ '

    AW: Dateien aktualisieren per Button (Makro)
    10.07.2018 23:14:36
    Rob
    Die besagte objektorientierte Methode funktioniert wie folgt (als Anmerkung immer nochmal die early binding-Methode mit dem Verweis auf Microsoft Scripting Runtime). Den Code musst Du allerdings für Dich noch anpassen (Quellpfad, Datei-Endungen für die If-Schleife, etc).
    Welche Methode Du verwendest, prozess- oder objektorientiert, bleibt Dir überlassen. Letztere gilt aber die "schickere".
    
    Sub LoopThroughFilesWithFSO()
    'Dim fso As Scripting.FileSystemObject
    Dim fso As Object
    'Dim Ordner As Scripting.Folder
    Dim Ordner As Object
    'Dim Datei As Scripting.File
    Dim Datei As Object
    Dim Quellpfad As String
    Quellpfad = "Pfad"
    'Set fso = New Scripting.FileSystemObject
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Ordner = fso.GetFolder(Quellpfad)
    For Each Datei In Ordner.Files
    If Datei.Name Like "*.xlsm" Then
    Workbooks.Open Datei
    ActiveWorkbook.Close
    End If
    Next Datei
    End Sub
    

    Anzeige
    AW: Dateien aktualisieren per Button (Makro)
    11.07.2018 08:39:45
    CL
    Hi Rob,
    Danke Dir für deine Hilfe!
    Ich habe soeben die prozessorientierte Methode getestet und das ist tatsächlich deutlich eleganter :-).
    Die Andere werde ich auch noch probieren und mich dann festlegen.
    Auf jeden Fall nochmals vielen Dank für deine Mühe!
    Gruß,
    Chris
    AW: Dateien aktualisieren per Button (Makro)
    11.07.2018 09:18:13
    CL
    Hi Rob,
    einen Frage habe ich doch noch, hoffe du bemerkst diese noch:
    Ist es bei der prozessorientierten Methode möglich zusätzlich den PFAD und gleichzeitig bspw. den ersten oder die ersten beiden Buchstabe des Dateinamens mit einzubinden?
    Also, dass es unter dem Pfad alle Dateien mit "A" als Anfangsbuchstaben - und natürlich der entsprechenden .xl*-Endung - gesucht werden.
    Gruß,
    Chris
    Anzeige
    AW: Dateien aktualisieren per Button (Makro)
    11.07.2018 09:31:25
    CL
    Sorry, hat sich erledigt, hab's doch hinbekommen.
    Danke Dir nochmals!
    Gruß,
    Chris

    6 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige