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

[Rozwiązano] [VBA Excel] liczenie długości cyklu maszyny

14 Kwi 2019 15:10 375 5
  • Poziom 3  
    Witam.

    Poprosiłem kumpla o wyciągnięcie danych dotyczących cyklu maszyny z ostatnich kilku tygodni. Jako, że robił to na "piechotę", perspektywą na jego kolejne dni było szukanie i przepisywanie dostępnych danych. W związku z tym, aby przyśpieszyć ten proces popełniłem dla kumpla kod, który wyciąga do komórek obok datę/czas rozpoczęcia oraz zakończenia cyklu i oblicza różnicę, co daje nam czas trwania procesu (hh:mm). Warunkiem do zaciągania danych jest wartość w kolumnie C.

    Nie mogę sobie poradzić tylko z jednym problemem. Podczas importu tylko z jednego pliku nie trzeba sortować danych, bo już w pliku źródłowym jest ok. Przy imporcie z kilku plików dane do liczenia są zaciągane losowo. Radzę sobie z tym w taki sposób, że najpierw dane z kolumny A (tekst) za pomocą funkcji "tekst jako kolumny" (bez rozdzielania) przerabiam na datę, później sortuję od najstarszych do najnowszych. Jak robię to ręcznie wszystko jest ok. Jak próbuje dołożyć nagrany kod do swojego programu .... nic się nie dzieje. Proszę o pomoc w temacie.

    Myślałem jeszcze o sortowaniu plików przed importem, ale nie potrafię tego ogarnąć więc postawiłem na sortowanie już zaciągniętego kompletu. W nazwie pliku cyfry to zakres danych, dd/mm rozpoczęcia i dd/mm zakończenia.

    Kod jest dosyć "niechlujnie" napisany, ale funkcjonuje ;-)

    Będę wdzięczny za każdą pomoc.

    Pliki w załączniku. Być może ktoś szuka podobnego rozwiązania .... można korzystać ;-)
  • Pomocny post
    Poziom 29  
    tango12x napisał:
    Podczas importu tylko z jednego pliku

    Tu nie ma plików do importu, tu są już pliki z zawartością po imporcie i to źle wykonanym, ponieważ wszystko jest w formacie tekstowym.
    Po co kombinować, jak przetworzyć to, co zostało "niewłaściwie" przetworzone, skoro można by to zrobić (przetworzenie) u źródła, czyli w pliku źródłowym ?
    Ale takiego tu nie ma, czym one są w środku rozdzielane, jaki jest znak dziesiętny, jaki jest typ pliku (csv, txt, prn), itd. ?
  • Poziom 3  
    lanzul napisał:
    Tu nie ma plików do importu, tu są już pliki z zawartością po imporcie i to źle wykonanym, ponieważ wszystko jest w formacie tekstowym.

    Z maszyny jest możliwość wyrzucenia tylko takich plików, które importuję do stworzonego arkusza. Popytam czy jest inne źródło pochodzenia tych xlsx'ów. Masz rację wartości są w formie tekstowej. Dodatkowo kolumna A pomiędzy datą i godziną zawiera dwie spacje dlatego potrzebuję to przerabiać i sortować.
  • Pomocny post
    Poziom 29  
    Jeśli chodzi o pobieranie danych i ich sortowanie, to można by to tak zrobić jak w pliku poniżej (jeden z wielu wariantów):
    Pobierz ..e.zip Download (31.71 kB)
    W kodzie praktycznie brak obsługi błędów, więc bierzesz odpowiedzialność za rzetelność swoich danych, będą chińskie albo złe formaty daty, makro się wywróci, będziesz sabotować własne działania w obróbce danych, makro się wywróci, będziesz robić wszystko, żeby obróbka się nie powiodła, makro się wywróci, itd., itp.
    Plik z makrem, jeśli ma działać, powinien znajdować się w oddzielnym katalogu, w którym utworzony zostanie także katalog na pliki danych "xlsx", wtedy makro "samoczynnie" rozpozna umiejscowienie plików "xlsx" z danymi (po wpisach poczynionych na karcie "Ustawienia", muszą być odpowiednie). Masz tam pewną swobodę w określeniu co i gdzie, ale nie testowane za bardzo.
  • Poziom 3  
    Witam
    lanzul napisał:
    bierzesz odpowiedzialność za rzetelność swoich danych

    Nie są to dane, od których zależy być albo nie być ;-)
    Wypada mi tylko podziękować za naprowadzenie na odpowiedni tor. Poprzerabiałem co nie co i wszystko śmiga jak chciałem :-)

    Wyniki w załączniku.
  • Poziom 3  
    Post powyżej