vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest poniedziałek, 29 kwietnia 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Makro tworzące zestawienie. Prośba :)


otwartyotwarty rozpoczął: marta_wawa_1991 postów: 2



napisał: Trebor
postów: 1209


umieszczony:
22 października 2012
19:42

  
Poniżej wersja minimum, zgodnie z ostatnią Twoją sugestią. Kod w miarę prosty otwierający pliki csv. Istnieją inne sposoby pobierające dane, ale ten jest w miarę niezawodny.
Sub marta()
Dim Dukt As String, plik As String, i As Long, wiersz As Long
Dim skoro As Object
i = 1
Dukt = "C:\Documents and Settings\Admin\Moje dokumenty\Pobieranie\"
plik = Dir(Dukt & "*.csv")
Do
If plik = "" Then Exit Do
Set skoro = GetObject(Dukt & plik)
With skoro.Worksheets(1)
wiersz = .Cells.Find(What:="*", After:=Cells(1, 1), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
If i = 1 Then .Range(.Cells(1, 1), .Cells(1, 23)).Copy ThisWorkbook.Sheets("Zestawienie").Cells(i, 1): i = i + 1

.Range(.Cells(2, 1), .Cells(wiersz, 23)).Copy ThisWorkbook.Sheets("Zestawienie").Cells(i, 1)
i = i + wiersz - 1
 skoro.Close False

plik = Dir
End With
Loop
Set skoro = Nothing
End Sub

napisał: marta_wawa_1991
postów: 1


umieszczony:
22 października 2012
14:33

edytowany:
22 października 2012
14:47

  
nazwa pliku rozmiar
zestawienie.xls 40.00 kB

Cześć,

Mam problem z napisaniem makra.
Po krótce wyjaśnię co ma ono wykonywać:

na dysku mam foldery w którym są pliki z rozszerzeniem .csv (odmiana excela)
Wszystkie pliki wyglądają identycznie i w każdym z nich dane są zawarte w identyczny sposob:

- kazdy plik .csv ma w sobie zawarty tylko jeden arkusz z danymi,
- dane są zawarte z takiej samej ilości kolumn
- w komórkach od A1 do W1 są zawarte nagłowki kolumn
- pod nagłowkami znajdują się jakieś dane (rózna ilość wierszy z danymi w róznych plikach .csv)

Chcę napisać makro tworzące na prędce zestawienie:

- w pliku zestawienie.xls po nacisnięciu przycisku makra (utwórz zestawienie) na arkuszu "uruchom makro" powinno się pojawić okienko z możliwością wyboru dowolnego folderu znajdującego się na komputerze (folderu z zawrtymi w nim plikami .csv)
- wybieramy folder i klikamy na niego
- po wybraniu folderu makro automatycznie otwiera pierwszy plik z rozszerzenim .csv
- kopiuje znajdujące się w nim dane i wkleja do pliku zestawienie.xls na arkusz "zestawienie"
- zamyka plik z rozszerzeniem .csv
- otwiera następny plik z rozszerzeniem .csv
- kopiuje znajdujące się w nim dane i wkleja do pliku zestawienie.xls na arkusz "zestawienie" (pod danymi wklejonymi z poprzedniego pliku csv)
- zamyka plik z rozszerzeniem .csv
- nastęnie makro wykonuje tę czynność z resztą plików csv znajdujących w wybranym przez nas na początku folderze aż do skutku.
- po skonczonej operacji pojawia się okienku z możliwością zapisania pliku zestawienie.xls w dowolnym miejscu na komputerze.

poniżej plik który miałby wykonywać całą tę operację oraz zawierający przykład jak wyglądają dane zawarte w plikach .csv (na żółto zaznaczone nagłówki, x - oznaczają jakieś tam dane
Chętnych bardzo proszę o pomoc.
i parę linijek kodu.

Komendę do wywoływania okienka wyboru folderu juz mam.
chodzi mi głównie o to jak napisać komendę która zliczyła by ile plików .csv znajduje się w wybranym folderze
oraz taką która po kolei otwierałaby te pliki, zaznaczała dane i wklejałaby na arkusz zestawienie w pliku zestawienie.xls
Czekam na wasze odpowiedzi :)


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z