Hallo zusammen,
ich habe noch einen (vermutlich) kleinen Fehler in meinem Code und würde mich freuen, wenn ihr mir helfen könntet.
Ich habe in einer Datei eine Tabelle die sieht wie folgt aus:
[URL=http://www.directupload.net/file/d/4415/beidro2y_jpg.htm][IMG]http://fs5.directupload.net/images/160713/temp/beidro2y.jpg[/IMG][/URL]
Ich habe nun in einem Extra Ordner die Stundenzettel für die einzelnen KW mit dem Namen z.B. "2016_KW28_Mustermann". Aus denen Dateien, die vorhanden sind wird der Wert der Zelle G37 in das passende Feld in meiner Tabelle kopiert. Für ein Jahr (hier z.B. 2016) funktioniert das auch mit dem folgenden Code (sieht Bild KW28 und KW29):
For KWCount = 1 To 53
strPfad = Sheets(MAName).Range("G10").Value & "\" 'Pfad zur anderen Datei (mit Backslash am Ende)
strDatei = Sheets(MAName).Range("U9").Value & "_KW" & KWCount & "_" & MAName & ".xlsx" 'Andere Datei
strBlatt = "KW" & KWCount 'Tabellenblatt
Zettelpfad = Sheets(MAName).Range("G10").Value & "\" & Sheets(MAName).Range("U9").Value & "_KW" & KWCount & "_" & MAName & ".xlsx"
If Dir(Zettelpfad) <> "" Then
strVerweis = "'" & strPfad & "[" & strDatei & "]" & strBlatt & "'!" & strZelle
With Sheets(MAName).Cells(KWCount + 9, 21)
.Formula = "=IF(" & strVerweis & "="""",""""," & strVerweis & ")" 'Formel eintragen
.Value = .Value 'Formel in Wert umwandeln
End With
End If
Next KWCount
Nun würde ich aber auch gerne gleich die anderen Jahre überprüfen und habe folgendes versucht:
For RowCount = 21 To 28 'Spalten U bis AB
For KWCount = 1 To 53
strPfad = Sheets(MAName).Range("G10").Value & "\" 'Pfad zur anderen Datei der jeweiligen KW
strDatei = Sheets(MAName).Cells(9, RowCount).Value & "_KW" & KWCount & "_" & MAName & ".xlsx" 'Name der Datei der jeweiligen KW
strBlatt = "KW" & KWCount 'Tabellenblatt in der Datei
Zettelpfad = Sheets(MAName).Range("G10").Value & "\" & Sheets(MAName).Range("U9").Value & "_KW" & KWCount & "_" & MAName & ".xlsx"
If Dir(Zettelpfad) <> "" Then
strVerweis = "'" & strPfad & "[" & strDatei & "]" & strBlatt & "'!" & strZelle
With Sheets(MAName).Cells(KWCount + 9, 21)
.Formula = "=IF(" & strVerweis & "="""",""""," & strVerweis & ")" 'Formel eintragen
.Value = .Value 'Formel in Wert umwandeln
End With
End If
Next KWCount
Next RowCount
Das funktioniert aber nicht, da er dann ein Fenster aufruft: "Werte aktualisieren 2017_KW28_Mustermann.xlsx" und das gleiche für
"Werte aktualisieren 2017_KW29_Mustermann.xlsx" und für die Jahre 2018-2023 immer nur für KW28 und KW29. Leider konnte ich den Fehler noch nicht finden.
Vielen Dank im voraus!
vbabrummer
|