Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Makro,kopiowanie i filtrowanie danych miedzy arkuszami

Ewamal 04 Lip 2011 00:00 3574 11
  • #1 04 Lip 2011 00:00
    Ewamal
    Poziom 8  

    Witam. Trochę już szukałem i nie znalazłem odpowiedzi... Otóż mam pewien problem. Zajmuję sie w firmie raportami dziennymi z kilku obiektów łącznie. Zapisuję oczywiście wszystkie dane w execlu z każdego dnia. Do wpisania mam 25 dostawców na każdy obietk osobno z podziałem na towary handlowe i eksploatacyjne. Żądany efekt; Wpisując jednego z dostawców chciałbym otrzymać kwotę z każdego dnia z całego okresu rozliczeniowego, w tym przypadku bedzie to do końca maja. np na dzien 01.05 dostawca "x" kwota 250zł i 300zł, 03.05 Kwota 1230zł itd. Dodatkowy problem, dostawcy i kwoty zapisywane są w wierszach,a chciałbym,żeby po przeniesienu do arkusza2 były w kolumnie... Bardzo proszę o pomoc... Jutro zdaję raport pół roczny:PPP Załączam plik,żeby było czytelniej.

    0 11
  • #2 04 Lip 2011 00:06
    Ewamal
    Poziom 8  

    Jeżeli to jest niemożliwe to chociaż potrzebowałbym taką funkcję: Mamy raporty dzienne z każdego miesiąca zapisane w ten sposó; 5.MAJ-2011/R.D 5-1 do 5-31 i tak w każdym misiącu. Wpisuję kwote 1000 i wyszukuje mi we wszystkich plikach każdej takiej kwoty... :)

    0
  • #3 04 Lip 2011 07:46
    adamas_nt
    Moderator Programowanie

    Jeśli

    Cytat:
    Mamy raporty dzienne z każdego miesiąca zapisane w ten sposó; 5.MAJ-2011/R.D 5-1 do 5-31 i tak w każdym misiącu
    w folderze "5.MAJ-2011" są tylko pliki raportów, to bez wnikania w nazwy pobieramy kwoty z kolumny "C" (lub tych kolejnych) na podstawie tekstu z kolumny "A" z wszystkich znajdujących się tam plików.

    Jeśli standard zapisu nazwy jest stały, datę (dzień i miesiąc) można wyciągnąć z nazwy pliku. Ideałem byłaby jedna spacja rozdzielająca, Np: "R.D[ ]5-31.xls" (jak w cytowanym fragmencie)

    Gdyby powyższe założenia były słuszne (prawdziwe), to sprawę rozwiązuje makro zawierające:
    -pobranie ścieżki do lokalizacji folderu z komórki lub z InputBox'a
    -pętla otwierająca/zamykająca kolejne pliki, wewnątrz której kolejna pętla przeszukuje kolumnę "A" porównując ciąg do wzorca (pobranego jak wyżej).
    -wpisanie daty i kwoty (kwot) do arkusza wynikowego jeśli znajdzie.
    -jeśli kwoty mają być rozbite (pobierane z kolumn E,F,H,I,K,L,itd) to jeszcze jedna zagnieżdżona pętla i zapominamy o kolumnie "C".

    0
  • #4 04 Lip 2011 12:50
    Ewamal
    Poziom 8  

    eee... wszystko jest dla mnie zrozumiałe to co piszesz, Jednak nie potrafię zapisać tego kodem VBA. Jak można by było zapisać makro w moim pliku, byłbym bardzo Ci wdzięczny:P

    Dodano po 2 [minuty]:

    Bardziej chodzi mi o rozbijanie każdej kwoty u dostawcy, łatwiej bedzie później to edytować np. na zapłacone bądź nie...:)

    Dodano po 3 [godziny] 6 [minuty]:

    Pomocy...:D:P Życia mi braknie jak będę musiał przeglądać każdy z plików i rozpisywał kwoty każdego dostawcy:P Dla Excela to 5sek :DD

    0
  • #5 04 Lip 2011 17:44
    adamas_nt
    Moderator Programowanie

    Zerknij do załącznika. Plik z raportem wrzuciłem na dysk, określiłem ścieżkę w G16 i działa. Przetestuj, dostosuj do własnych potrzeb.

    0
  • #6 04 Lip 2011 19:37
    Ewamal
    Poziom 8  

    Nie wiem czemu ale wynajduje mi tylko do 3 plików i dalej jest "coś nie tak":P Chciałbym,żeby przeszukał mi pliki od 01.01 do 31.12 Czyli 365 plików i z tego zrobił każdy wpis:P

    0
  • #7 04 Lip 2011 20:24
    adamas_nt
    Moderator Programowanie

    To znaczy, że coś nie zgadza się z założeniami. Prawdopodobnie nazwy plików. Zapuść takie makro (aktywny arkusz z przyciskiem)

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    Jeśli co najmniej raz pojawi się komunikat, to daty pobierać trzeba będzie z wewnątrz plików (wielka, scalona komórka A5 z "datą", która jest tekstem).

    0
  • #8 04 Lip 2011 20:27
    Ewamal
    Poziom 8  

    Wlaśnie łatwiej chyba byłoby w ten sposó z tej komórki A5 :P:D

    0
  • #9 04 Lip 2011 20:31
    adamas_nt
    Moderator Programowanie

    Wystarczy przerobić zapis tekstowy na datę (Split), jeśli we wszystkich plikach jest identycznie. Jeszcze prościej byłoby, gdyby zapisywać datę jako datę :)

    0
  • #10 04 Lip 2011 20:37
    Ewamal
    Poziom 8  

    Trzeba pobierać z A5...;P w żaden sposób nie chce zadziałać ;/

    0
  • #12 04 Lip 2011 21:07
    Ewamal
    Poziom 8  

    Jesteś wielki :D Bardzo mi pomogłeś i bardzo Ci dziękuje:D:P

    0