Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Solved] Excel-Automatyczne zapisywanie arkusza o danej godzinie jako nowy plik

Post.user.project 09 Dec 2020 09:12 663 21
  • #1
    Post.user.project
    Level 5  
    Witajcie potrzebuje pomocy przy stworzeniu mini systemu do zbierania statystyk. Mianowicie chciałbym aby excel automatycznie zapisywał mi dany arkusz do nowego pliku w który miałby mieć nazwę zawierająca aktualna datę. Potrzebuje tego do tworzenia raportów o danej godzinie bez fizycznego kontaktu z programem gdyż jest to nie możliwe.
    Czyli excel codziennie o godz załóżmy 23 tworzyłby plik np. „09-12-2020.xlsm”, „10-12-2020.xlsm”, „11-12-2020.xlsm”
    I tak każdego dnia.
    Ma ktoś pomysł jak to zrobić bo nie mogę nigdzie znaleźć podpowiedzi a na excelu tak średnio się znam.
    [28-30.06.2022, targi] PowerUP EXPO 2022 - zasilanie w elektronice. Zarejestruj się za darmo
  • #2
    PRL
    Level 40  
    Trzeba napisać kod. Oczywiście Excel musi być cały czas uruchomiony, żeby kod się wykonał.
  • #3
    Post.user.project
    Level 5  
    Tak to wiem ale nie mam zielonego pojęcia od czego zacząć z pisaniem takiego kodu. Excel będzie uruchomiony ciagle bo będzie używany jako przekazywanie statystyk na monitor tylko chciałbym żeby w między czasie tam przykładowo o godz 23 robił sobie taki jakby dobowy zapis.
  • #5
    Post.user.project
    Level 5  
    Będzie to działało na takiej zasadzie że automatycznie codziennie będzie robiło zapis? Czy codziennie trzeba to uruchomić?
  • #6
    PRL
    Level 40  
    Będzie działać tak długo, dopóki jest otwarty skoroszyt i w arkuszu Makro, w A1 jest 1. Ale dlaczego chcesz zapisywać o 23, a nie o 24, to nie wiem.

    P.S. Do testów zmień godzinę i minutę i patrz, jak działa.
  • #7
    Post.user.project
    Level 5  
    Godzinę podałem przykładową gdyż dane będą zbierane tylko i wyłącznie do godziny około 22 zwykle wychodzi maksymalnie 21:45. I zostałem poproszony do stworzenia takiego projektu który właśnie miałbym się opierać na excelu gdzie z excela jestem czarna masa. Pozostaje mi jeszcze jeden problem a w zasadzie dwa:
    1. Stworzenie makra które chwile po automatycznym zapisie będzie czyściło wybrane dane w wybranych arkuszach,
    2. Niektóre dane będą pobierane z pliku *.csv gdzie będzie potrzeba odświeżania ich w excelu a jak na tą chwile z tego co widzę to dane te mogą być odświeżane co minutę minimalnie, potrzebowałbym ten czas skrócić do 1 sekundy maksymalnie 10 sekund. (O ile nie zabiłoby to excela)
  • #8
    PRL
    Level 40  
    Quote:
    Pozostaje mi jeszcze jeden problem a w zasadzie dwa:

    I co do tej pory napisałeś?
    Bo chyba nie liczysz na gotowy kod po napisaniu tego opisu...
  • #9
    Post.user.project
    Level 5  
    Jeśli o to chodzi to nie myślałem jeszcze o tym bo do tej pory wykonywałem graficzna stronę która będzie wyświetlana i dopiero będę przechodził do tych tematów. Jeśli chodzi o kasowanie danych myśle ze nie będzie to aż tak skomplikowane aczkolwiek muszę troszkę poczytać gorzej z tym odświeżaniem gdyż gdzie nie szukałem to znalazłem odesłanie do wbudowanego odświeżania.
    Nie, nie liczę na gotowy kod a bardziej o pokierowanie i dziękuje bardzo za ten pierwszy kod gdyż on jest w sumie najważniejszy.
  • #10
    PRL
    Level 40  
    Kasowanie:

    Code: vbscript
    Log in, to see the code


    Jak widzisz czytanie z csv co sekundę?

    P.S. Tak sobie myślę, czy dobrze, że wybrałeś do tego zadania Excela...
  • #11
    Post.user.project
    Level 5  
    Powiem ci ze ja czuje się troszkę jakbym porwał się z motyka na księżyc nie mam w nim doświadczenia a gdy szukałem jakichś poradników większość jest albo płatna albo nie dawała mi tyle informacji ile bym chciał. Chciałbym się nauczyć troszkę bardziej tego wszystkiego gdyż w przyszłości może mi się to przydać.

    Dodano po 2 [minuty]:

    PRL wrote:

    P.S. Tak sobie myślę, czy dobrze, że wybrałeś do tego zadania Excela...


    Widziałem w inny sposób bo to wszystko ma głównie za zadanie wyświetlanie tych statystyk przy połączeniu z plc ale uparli się ze musi być to excel bo gdy proponowałem coś bardziej profesjonalnego do tego typu scada to było zbyt wiele „ale”. I pomyślałem trudno spróbuje jakoś zrobić jak im się widzi ale tuta właśnie trafiłem na opór stad te pytania na forum.
  • #12
    PRL
    Level 40  
    Nie odpowiedziałeś na pytanie.
    A dodatkowo zapytam, czy dane w csv są przyrostowe i jak chciałbyś te linijki importować? Co 10 sekund i czy w csv będzie zawsze 1 linia?
  • #13
    Post.user.project
    Level 5  
    Dane z csv będą wyglądały jakoś tak:
    1; 12.12.2020; 10:23:23; 10:25:28; 2928476
    2; 12.12.2020; 10:25:50; 10:27:30; 2377784
    3; 12.12.2020; 10:27:52; 10:30:00; 2599903

    Mniej więcej taki będzie format danych przynajmniej taki jest wstępnie ustalony.
    Gdzie pierwsze to lp. Drugie to data, godzina wejścia, godzina wyjścia, kod kreskowy.

    Dodano po 9 [minuty]:

    I odpowiadając na pytanie byłyby w jednym pliku dodawane nowe linijki z tymi informacjami. A dlatego chce żeby było tak często żeby na ekranie były aktualne dane.
  • #14
    PRL
    Level 40  
    Jeżeli dane w csv są przyrostowe, to nie ma sensu importować ich co 10s, a tym bardziej co 1s. Poza tym kiedy zawartość csv jest czyszczona, raz na dobę?
    Chyba nie ma sensu wyciągać od Ciebie pytań, bo nic nie opisujesz, a 1 pytanie na post, to męczące jest.
  • #15
    Post.user.project
    Level 5  
    Przepraszam cię ze tak chaotycznie odpisuje ale staram się to robić między innymi zajęciami.

    Dodano po 1 [minuty]:

    Zawartość pliku csv również byłaby czyszczona raz na dobę. W podobnym czasie do kopii zapasowej danych z excela.
  • #16
    PRL
    Level 40  
    Skoro dane narastają w przedziale doby, to chyba najprościej byłoby przypisać jeden arkusz na te dane i importować całość do niego. Ten import co 1s, czy nawet co 10s, to trochę za często, myślę. Wystarczyłoby co minutę może...
    Co po imporcie robisz z danymi?
  • #17
    Post.user.project
    Level 5  
    Te dane są później przekazywane do robienia raportów zmianowych. Wiec ja je muszę tylko jakby archiwizować i przez jakiś czas magazynować. Dodatkowo z tego co mi wiadomo sterownik plc tez będzie robił sobie jakiś backup danych a ten plik csv który będzie wysyłał na PC będzie potrzebny właśnie do wyświetlenia ich pracownikom i żeby posłużyły jako dane pomocnicze do raportu (z tego co się dowiedziałem chcą wyciągać z nich informacje o przepływie, wydajności i ilości danych modeli gdzie już średnie czasy maja i one będą porównywane z obecnymi z csv).
    Jeśli zbyt częste odświeżanie danych będzie bardzo obciążało jednostkę to już będę musiał pozostać przy tym ustawieniu standardowym tj. 1min które działa bez zarzutów.
  • #18
    PRL
    Level 40  
    Quote:
    które działa bez zarzutów

    Czyli import już Ci działa.:)
  • #19
    Post.user.project
    Level 5  
    Tak jest jeśli chodzi o import to działa właśnie przy tych ustawieniach co 1 minuta automatycznie mi odczytuje uaktualnione pliki i właśnie się zastanawiałem czy jest szansa zwiększyć częstotliwość tego odświeżania. Ale właśnie boje się ze to wszystko się wysypie gdy będzie tak często odświeżane.

    Dodano po 5 [minuty]:

    Tak na dobra sprawę to najważniejszy był ten zapis o wyznaczonej godzinie i kasowanie o wyznaczonej godzinie a odświeżanie działa teraz w formie takiej jak napisałem czyli co jedna minuta tylko ja zastanawiałem się czy nie dałoby się tej częstotliwości zwiększyć.
  • Helpful post
    #20
    PRL
    Level 40  
    W takim razie temat do zamknięcia.
  • #21
    Post.user.project
    Level 5  
    Myśle ze tak i dziękuje za pomoc
  • #22
    Post.user.project
    Level 5  
    do zamknięcia