konto usunięte

Temat: Pobieranie danych z kilku innych arkuszy (o nazwach...

Witam,

chcialbym pobrac dane z kilku innych exceli znajdujacych sie w jednym folderze, jednak z losowymi nazwami: (data_godzina exportu_jakas zmienna)
Problemu nie ma gdy znamy nazwę, ale co w wypadku, gdy nazw brak?

Czy ma ktos jakis pomysl?

Moze jakis skrypt ktory zmieniałby te nazwy na jakieś kolejne?

Za wszelka pomoc bedę bardzo wdzieczny.
Tomasz Zarzyka

Tomasz Zarzyka X-mart, właściciel

Temat: Pobieranie danych z kilku innych arkuszy (o nazwach...

Opisz dokładnie co chcesz zrobić.
Po pierwsze co to znaczy losowo?
czy komputer ma sam losowo wybrać plik i z niego pobrać dane?
Jeśli ma pobrać dane - to dokładnie jakie?
Czy masz w plikach zewnętrznych tabele, do których można się odwoływać?
Jak może nie być nazwy? Jeśli jest plik, to ma przecież nazwę.

konto usunięte

Temat: Pobieranie danych z kilku innych arkuszy (o nazwach...

Pliki maja nazwe: "Statystyka_20150811_xxxx" gdzie xxxx to "losowe liczby"
Losowe tzn, godzina exportu takiej statystyki - a losowe dlaego poneiwaz nei potrafimy wskazac tej godziny - jak bedzie sie to klarowac w przyszlosci.

Ma skopiowac zakres A1:E20 z kazdego takiego pliku do mojego arkusza.

Tabel niestety brak - to sa zwykle dane.
Andy L.

Andy L. ITM, VUB

Temat: Pobieranie danych z kilku innych arkuszy (o nazwach...

1. uzykać listę plików (*.xlsx) w folderze (vba)
2. pobrać dane z zakresów (vba)

lub na piechotę (ad.1) : [ Bez VBA i zajmuje 10 sekund ]
otworzyć folder z plikami w przeglądarce
skopiować listę plików do excela
usunąć to co nie jest potrzebne
a powstałą w ten sposób listę wykorzystać do tego co
Szymon M.:
Problemu nie ma gdy znamy nazwę,Ten post został edytowany przez Autora dnia 11.08.15 o godzinie 17:11
Tomasz Zarzyka

Tomasz Zarzyka X-mart, właściciel

Temat: Pobieranie danych z kilku innych arkuszy (o nazwach...

Temat wymaga pochylenia się.
Domniemywam, że w określonym katalogu masz zrzuty z jakiś raportów (np. z maszyn). I domyślam się, że chcesz utworzyć coś jak bazę danych z pomiarów zawartych w tych plikach.
Bez VBA będzie ciężko.
Zaczynasz od tego, że pierwsza procedura zwraca ci listę plików z danego katalogu. Następnie z każdego wskazanego pliku odczytujesz dane. Ale uwaga - najlepiej jest po odczytaniu danego pliku przenieść go do katalogu archiwum, żeby nie było możliwości wielokrotnego odczytania tych samych danych. Za każdym razem procedura wprowadza nowe dane i przerzuca plik do archiwum.
Druga sprawa to odpowiednie oznaczenia danych (jeśli to jest konieczne, np. z jakiego pliku pochodzą, lub np. data i godzina).
Najlepiej jest zrobić tak, że procedura "odczytująca" tworzy bazę w oddzielnym pliku (np. binarnym) i potem wszystkie raporty tworzysz z bazy zewnętrznej.
W twoim przypadku nie ma tak naprawdę losowości - zawsze są jakieś pliki, z których chcesz pobrać dane.

konto usunięte

Temat: Pobieranie danych z kilku innych arkuszy (o nazwach...

Szanowni Panowie,

nie zakładam w ogole mozliwosci wykonania tego bez VBA. Robilem takie rzeczy, gdy nazwy plików byly w wiekszym stopniu ustrykturyzowane i łatwiejsze do przewidzenia.

Oczywiscie, mozna byloby to zrobic na piechotę - zmienic nazwy plików i z pomoca vba wskazywac sciezki by otwierac pliki i kopiowac dane, ale chcialbym by to odbywalo sie bardziej automatycznie.

Panie Tomaszu, dokladnie o to chodzi. Raporty sa z maszyn i chcialbym utworzyc jedna bazę.
To o czym Pan pisze, czyli o odczycie, zapisie do pliku .bin oraz archiwizowaniu danych to juz chyba znacznie powyzej mozliwosci VBA Excela?

Bede szalenie wdzieczny za wskazanie jakichs zrodel ktorymi moglbym sie posilkowac wykonujac takie zadanie.
Tomasz Zarzyka

Tomasz Zarzyka X-mart, właściciel

Temat: Pobieranie danych z kilku innych arkuszy (o nazwach...

ok, zacznij od pobrania listy plików z katalogu

[code]
Public Sub ListaPliki()

Dim Katalog As String
Dim NazwaPliku As String
Dim Arkusz As Worksheet
Dim wr As Long

' w komórce A1 wstaw nazwę katalogu
' zaczyna listę od wiersza nr 3
wr = 3

Set Arkusz = ThisWorkbook.ActiveSheet
Katalog = Range("A1").Value & "\"

' tutaj mozesz ograniczyc rodzaj plikow
NazwaPliku = Dir(Katalog & "*.xls")

Do While NazwaPliku <> ""
Arkusz.Cells(wr, 1).Value = NazwaPliku
wr = wr + 1
NazwaPliku = Dir
Loop

Set Arkusz = Nothing

End Sub
[code]

Następnie możesz utworzyć pętlę For next i po kolei pościągać dane z poszczególnych plików
Bardzo wazne jest, aby po ściągnięciu danych przerzucać pliki do katalogu archiwalnego - wówczas w dowolnym momencie możesz ładować nowe dane i nigdy ich nie zdublujesz.

konto usunięte

Temat: Pobieranie danych z kilku innych arkuszy (o nazwach...

Super!

Jestesmy w domu! :)

Pieknie Panu dziekuje za ten kod - reszta jest do ogarniecia.

Pozdrawiam serdecznie!

Następna dyskusja:

sumowanie danych z kilku ar...




Wyślij zaproszenie do