Clever-Excel-Forum

Normale Version: per Makro Schaltfläche multiple Dateien öffnen aus Zelleninhalt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey Leute,

habe ein Projekt am laufen, bei dem ich aus mehreren Geschäftsstellen Daten in einem Controlling zusammenfasse. 

Da läuft unserer Poolordner immer unter gleichartigen Strukturen

Poolordner\ Geschäftsstelle\ 1. Kunden; 2. Mitarbeiter; 3. Bewerber\ etc.

Nun möchte ich in dem Controlling mithilfe von Summewenns etc diese Daten ziehen. 
Am Ende des Tages läuft es natürlich darauf hinaus, dass ich alle Dateien, die dafür relevant sind (in etwa 10 Dateien) gleichzeitig öffne. Das möchte ich automatisieren.

Im Grunde muss ich es mithilfe von variablen Dateipfaden automatisieren, da es je nachdem welcher Monat oder Jahr ist, eine andere Datei beansprucht.

Ich habe wie in der Beispieldatei in A1 das Jahr, in A2 den Monat und im Rest der Zeile 2 die einzelnen Geschäftsstellen.

Nun bin ich auf der Suche nach einem VBA Code, der mir automatisch im Dateipfad, der im Prinzip so aufgebaut ist:
Code:
F:\1. Poolordner XYXYYYXXY\"&SVERWEIS(LINKS(B2;FINDEN(" ";B2)-1);'Notwendige Daten'!$A$16:$C$21;3;FALSCH)&" "&LINKS(B2;FINDEN(" ";B2)-1)&"\2. Bewerber und Mitarbeiter\2. Mitarbeiter\2. Mitarbeiter-Controlling\1. Produktivitätsstatistik\"&$A$1&"\

diese Excel Datei

Code:
="PS_"&LINKS(B2;FINDEN(" ";B2)-1)&"_"&SVERWEIS($A$2;'Notwendige Daten'!$A$2:$D$13;4;FALSCH)&"_"&$A$1&".xlsx"


Was ich bereits probiert habe ist der einfache VBA Code

Code:
Sub Datei öffnen()



 Workbooks.Open Filename:="F:\1. Poolordner Aurea\"&SVERWEIS(LINKS(B2;FINDEN(" ";B2)-1);'Notwendige Daten'!$A$16:$C$21;3;FALSCH)&" "&LINKS(B2;FINDEN(" ";B2)-1)&"\2. Bewerber und Mitarbeiter\2. Mitarbeiter\2. Mitarbeiter-Controlling\1. Produktivitätsstatistik\"&$A$1&"\[PS_"&LINKS(B2;FINDEN(" ";B2)-1)&"_"&SVERWEIS($A$2;'Notwendige Daten'!$A$2:$D$13;4;FALSCH)&"_"&$A$1&".xlsx]
 
 
 
 
End Sub


Kann man in einen VBA Code keine einfachen Formeln aus Excel einsetzen?

Bzw. wie kann ich den Code so umschreiben, dass ich damit diese Datei öffnen kann. 


Ich freue mich auf eure Antworten
Hallo,

Du kannst in VBA keine Formel in der Art berechnen, wie Du es im Code hast. Am einfachsten ist es, die Formel in
einer Zelle zu haben und dann den Inhalt dieser Zelle auszulesen. Beispielhaft in Zelle B32: 


Code:
B32 ="F:\1. Poolordner XYXYYYXXY\"&SVERWEIS(LINKS(B2;FINDEN(" ";B2)-1);'Notwendige Daten'!$A$16:$C$21;3;FALSCH)&" "& 
      LINKS(B2;FINDEN(" ";B2)-1)&"\2. Bewerber und Mitarbeiter\2. Mitarbeiter\2. Mitarbeiter-Controlling\1. Produktivitätsstatistik\"&$A$1&"\"&B29

Und dann in VBA ...


Code:
Sub DateiOeffnen()
  
  Application.Workbooks.Open Filename:= _
  ThisWorkbook.Worksheets("Monatscontrolling").Range("B32").Value

End Sub

Gruß
Hey,

hat gut geklappt. Ich habe mir schon fast gedacht, das wir das so machen müssen.

zweite Frage.

Ich muss multiple Dateien öffnen z.B. B32, B33, B34, B35
Wie füge ich das in den Code ein?

dritte Frage:
Ich würde diese Pfade gerne in dem Tabellenblatt "notwendige Dateien" speicher
Wie füge ich das in den Code ein?
Hallo,

Du kannst zum Beispiel eine Schleife verwenden, die die Zellen iteriert ..


Code:
Sub DateiOeffnen()
  
  Dim n As Long
  
  For n = 32 To 34
  
    Application.Workbooks.Open Filename:= _
    ThisWorkbook.Worksheets("Monatscontrolling").Cells(n, 2).Value
    
  Next
  
End Sub

Wenn ich das richtig verstehe, dass Du die Dateinamen (+Pfade) in dem ersten Tabellenblatt haben möchtest,
würde ich Dir empfehlen, erstmal die Zellen B32 bis B35 ... in der zweiten Tabelle zu erstellen und dann den
Bereich ausschneiden (!) und in das erste Blatt einfügen. Angenommen, es käme dann der Bereich F2:F5 raus,
änderst Du den Code in ...


Code:
Sub DateiOeffnen_2()
  
  Dim n As Long
  
  For n = 2 To 5
    
    Application.Workbooks.Open Filename:= _
    ThisWorkbook.Worksheets("Notwendige Daten").Cells(n, 6).Value
    
  Next
  
End Sub

Gruß