ja podobny problem rozwiązałem w taki sposób:
Do
' arkusz ze ściażką do plików
Sheets("Ścieżka").Select
' komórka w której jest ścieżka
Range("E7:L7").Select
Selection.Copy
' lista plików
Sheets("Dane do tabel").Select
' sprawdza czy są jeszcze pliki do otwarcia
If Range("H4") = "" Then Exit Do
' tworzy ścieżke do pliku w arkuszu w którym są nazwy plików
Range("G3").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("G3").Select
Selection.Font.ColorIndex = 2
sciezka = Range("G3")
tabelka = Range("H4")
' otwiera pliki i kopiuje zawartość badając ilosć paliw przy dostawie
Workbooks.Open Filename:=sciezka & tabelka, UpdateLinks:=0
' wykonuje kopiowanie dla plików w których jest więcej wierszy niż jedno
If Range("A3") > 0 Then
' zakres danych musisz zmienić na własne potrzeby
Range("A2:M2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Dane-tabele.xls").Activate
Sheets("Dane z tabel").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Workbooks.Open Filename:=sciezka & tabelka, UpdateLinks:=0
ActiveWindow.Close
' usówa plik skopiowany
Kill sciezka & tabelka
End If
' wykonuje kopiowanie dla plików w którym jest dokłanie jednen wiersz
If Range("A3") = "" Then
' zakres danych musisz zmienić na własne potrzeby
Range("A2:M2").Select
Selection.Copy
Windows("Dane-tabele.xls").Activate
Sheets("Dane z tabel").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Workbooks.Open Filename:=sciezka & tabelka, UpdateLinks:=0
ActiveWindow.Close
' usówa plik skopiowany
Kill sciezka & tabelka
End If
Loop
pozdrawiam serdecznie |