Komme mal wieder mit einem Problem auf Euch zu. Bisher waren Eure Lösungen Gold wert. Vielen Dank noch einmal.
Könnt Ihr mir auch hierbei helfen?
Ausgangslage:
Jeder Mitarbeiter führt ein Excel-File mit seinen Verkaufszahlen.
Diese Zahlen werden per Makro in einem Teamleiter-File mit folgendem Makro zusammengezogen:
Sub Hole_Externe_Daten()
Dim Pfad As String, Datei As String
Dim i As Integer
For i = 5 To 25
With Sheets(i)
If .Range("B1") = "OK" Then
Pfad = .Range("A2").Text
Datei = .Range("A1").Text
With .Range("N20:AA293")
.FormulaArray = "='" & Pfad & "[" & Datei _
& ".xlsm]Template_Individual'!$P$12:$AA$285"
.Calculate
.Value = .Value
End With
End If
End With
Next i
End Sub
Pro Teamleiter werden also 20 Mitarbeiter-Files konsolidiert.Problem:
Nun ist es so, dass beim Abteilungsleiter wiederum je 4 Teamleiter-Files zusammengezogen werden sollen. - Die zusammengefassten Team-Zahlen werden also aus den Teamleiter-Files im Abteilungsleiter-File zusammengetragen.
Dies würde ebenfalls mit dem oben aufgeführten Makro funktionieren. Jedoch stellt sich hier die zusätzliche Problematik, dass in Abwesenheit eines Teamleiters dessen File nicht aktuell sein würde.
Anders ausgedrückt: Wenn von 4 Teamleiter 2 abwesend sind, so wären die Zahlen im Abteilungsleiter-File nicht korrekt, da die abwesenden Teamleiter ihre Files ja nicht regelmässig aktualisieren könnten.
Frage:
Wie könnte das Makro angepasst werden, sodass es prüft, ob das Ziel-File bereits offen ist und anschliessend:
- Falls bereits geöffnet: Das Makro ausgeführt wird, wie oben aufgeführt (Konsolidierung der Teamleiter-Zahlen).
- Falls noch geschlossen: Im Teamleiter-File das oben aufgeführte Makro ausgeführt wird (Konsolidierung der Mitarbeiter-Files) und erst anschliessend die Zahlen ins Abteilungsleiter-File gezogen werden.
Ich hoffe, ich konnte mein Problem nachvollziehbar schildern.
Bin sehr gespannt auf Eure Antwort.
Vielen Dank im Voraus und frohe Festtage!
Beste Grüsse,
Toni