03.05.2018, 21:40
(Ten post był ostatnio modyfikowany: 04.05.2018, 08:19 przez broda99.)
VBA Pobieranie wybranych plików z danymi
Pilnie potrzebuję pomocy.
Mam folder ("osoby") z kilkonastoma plikami. Każdy z plików jest nazwany imieniem i nazwiskiem danej osoby; w plikach są informacje o tych osobach (wiek, zamieszkanie, itp.) Plik "lista osób" to dwie kolumny: imienazwisko.xls; imięnazwisko.
I potrzebuję ograniczyć pobieranie danych do wybranych osób, czyli żeby makro mi nie pobierało danych do wybranych osób: jest 100 nazwisk a ja chcę wykluczyć wszytskich janówkowalskich.
Z góry dziękuję!
Kod bierz z znaczniki "code"
Wyjątkowo poprawiłem.
broda99
.
Mam folder ("osoby") z kilkonastoma plikami. Każdy z plików jest nazwany imieniem i nazwiskiem danej osoby; w plikach są informacje o tych osobach (wiek, zamieszkanie, itp.) Plik "lista osób" to dwie kolumny: imienazwisko.xls; imięnazwisko.
I potrzebuję ograniczyć pobieranie danych do wybranych osób, czyli żeby makro mi nie pobierało danych do wybranych osób: jest 100 nazwisk a ja chcę wykluczyć wszytskich janówkowalskich.
Z góry dziękuję!
Kod bierz z znaczniki "code"
Wyjątkowo poprawiłem.
broda99
.
Kod:
Sub MakroOsoby()
Dim tab_pliki(1 To 100, 1 To 2) As String
Dim ilosc_pliki As Integer
Dim stan As Boolean
Dim nr_wiersza As Integer
stan = False
Application.ScreenUpdating = False
Windows("lista_osób.xlsm").Activate
Range("A1").Select
While ActiveCell.Value <> ""
ilosc_pliki = ilosc_pliki + 1
tab_pliki(ilosc_pliki, 1) = ActiveCell.Value
tab_pliki(ilosc_pliki, 2) = ActiveCell.Offset(0, 1).Value
ActiveCell.Offset(1, 0).Range("A1").Select
Wend
ChDir "X:\moje\osoby\makro"
Workbooks.Open Filename:= _
"X:\moje\osoby\makro\dane.xlsx"
Windows("dane.xlsx").Activate
For i = 1 To ilosc_pliki
Range("A2").Select
stan = False
While ActiveCell.Value <> "" And stan = False
If ActiveCell.Value = tab_pliki(i, 2) Then
'kopiowanie
ActiveCell.Offset(0, 1).Range("A1:C1").Copy
Workbooks.Open Filename:="X:\moje\osoby\osoby\" & tab_pliki(i, 1), _
Origin:=xlWindows
Worksheets(1).Activate
Range("B1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
nr_wiersza = ActiveCell.Row
Range("A1").Select
Worksheets(2).Activate
Range("C1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Sheets(3).Select
ActiveChart.SetSourceData Source:=Sheets(1).Range("A1:D" & nr_wiersza)
Sheets(2).Select
Range("A1").Select
ActiveWorkbook.Close savechanges:=True
stan = True
ActiveCell.Offset(1, 0).Range("A1").Select
Else
ActiveCell.Offset(1, 0).Range("A1").Select
End If
Wend
Next i
' Workbooks.Open Filename:="X:\moje\osoby\osoby.xlsx", _
' Origin:=xlWindows
Range("C1").Select
End Sub