logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

VBA Excel - Automatyczne wstawianie danych z portu COM do komórek Excel

alvarofun 28 Sty 2014 23:43 4032 7
REKLAMA
  • #1 13233413
    alvarofun
    Poziom 17  
    Posty: 380
    Pomógł: 1
    Ocena: 36
    Witam

    Mam mikrokontroler, który co pewien czas wysyła mi na port COM temperaturę z czujnika. np "21,4"

    Nie mam żadnego problemu z połączeniem COM ponieważ jeśli odpalam HYPER TERMINAL wszystko wyświetla mi świetnie, problem w tym że musiał bym za każdym razem kopiować cały tekst z terminala i w excelu obrabiać żeby sobie utworzyć wykres temperatury.

    Wolałbym żeby to sie działo automatycznie a każdy kolejny pomiar temperatury wstawiany był w kolejnym wierszu.
    pobrałem i wstawiłem sobie formant Stroke reader activex

    i wybierając w właściwościach w trybie projektowania na tym formantcie:
    DataMode -> 0 - binary (co określony czas wywala mi błąd)
    jeśli zmienię
    DataMode -> 1 - text
    nic się nie dzieje

    już nie wiem co robię źle.

    Jak mam te dane wstawiać do komórek???

    Załączam plik z obsługą makr w zipie
    Załączniki:
    • dupa_blada.zip (16.07 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 13233911
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    1. Funkcja musi być w module standardowym.

    2. Jaką wartość posiada zmienna 'buf' przy uruchomieniu funkcji? Przechodziłeś krokowo?

    3. Skąd wiesz, że separatorem jest Chr(10)? Spróbuj z Enter'em Chr(13) lub VbNewLine.

    Podstawiłem sobie stringi, wyłączyłem referencje i... działa.
  • REKLAMA
  • #3 13233935
    Tommy82
    Poziom 41  
    Posty: 12139
    Pomógł: 455
    Ocena: 1071
    Możesz tez zapisywać do pliku CSV byle czym i dopiero zapisany plik obrabiać w excelu
    http://pl.wikipedia.org/wiki/CSV_%28format_pliku%29
    Excel łyka csv.
    Odbiór danych z poziomu Excela mnie się osobiście jakoś nie podoba, to jest parę linii kodu nie ma się co z Excelem szarpać.
  • REKLAMA
  • #4 13234322
    alvarofun
    Poziom 17  
    Posty: 380
    Pomógł: 1
    Ocena: 36
    adamas_nt wstawiłem całą funkcję w moduł standardowy i dalej to samo,

    nie wiem jak się przechodzi krokowo, zmienna buf powinna przyjąć wartość tego co wysyła do excela mikrokontroler czyli "T1 20.5"

    wstawiłem w pętli do zamiast chr(10) vbNewLine i dalej błąd

    Run-time error '13':
    Type Mismatch

    wstaw swój plik, może przez analogię dojdę co robię źle.


    Tommy82 ale mi zależy na tym żeby to się działo automatycznie, przychodzi wartość temperatury z uC i pojawia się nowa kreska na wykresie, a nie chce się bawić w jakieś copy pastle itp
  • #5 13234371
    Tommy82
    Poziom 41  
    Posty: 12139
    Pomógł: 455
    Ocena: 1071
    To już w ogóle bym się nie bawił z Excelem tylko zrobił to w wersji przeglądarkowej z serwerem uruchomionym na jakimś ruterze.
  • #6 13234379
    alvarofun
    Poziom 17  
    Posty: 380
    Pomógł: 1
    Ocena: 36
    tylko musiał bym mieć przejściówkę z rs na ethernet żeby do routera się podpiąć
  • #7 13234751
    Tommy82
    Poziom 41  
    Posty: 12139
    Pomógł: 455
    Ocena: 1071
    Starczy ruter z USB. Do tego taki wspierający alternatywne oprogramowanie. Wtedy przelotka USB com jakich wiele.
    Może jakiś cienki klient albo rasbery pi.
    Celujesz do muchy z armaty.

    Różnych cudów do wykresów w przeglądarkach jest wiele.
    Miał bym opory przed zostawieniem kompa w odpalonym excelem tylko o to żeby robił wykres.
    Wydaje mi się ze to może mieć tendencje do wyczerpywania dostępnych zasobów sprzętowych. Ale koszty samego prądu mogą być istotne.
  • REKLAMA
  • #8 13237181
    alvarofun
    Poziom 17  
    Posty: 380
    Pomógł: 1
    Ocena: 36
    Tommy82 masz rację, ale ja to zczytywanie potrzebuję na miesiąc góra dwa. Nie chcę inwestować kolejnej kasy na router itd.

    Ogarnia ktoś co w tym moim pliku jest nietak, że nie pobiera do arkusza tych danych z com???

    albo ma może ktoś jakiś przykład który pobiera dane z COM i wstawia w arkusz????

Podsumowanie tematu

✨ Użytkownik ma problem z automatycznym wstawianiem danych z portu COM do arkusza Excel, gdzie mikrokontroler wysyła temperaturę. Pomimo poprawnego połączenia z portem COM, użytkownik napotyka błędy przy próbie przetwarzania danych w Excelu. Wskazówki dotyczące rozwiązania obejmują umieszczenie funkcji w module standardowym, sprawdzenie wartości zmiennej 'buf', oraz użycie różnych separatorów (Chr(10), Chr(13), vbNewLine). Alternatywnie, sugerowane jest zapisanie danych do pliku CSV, co może być prostszym rozwiązaniem. Inni użytkownicy proponują użycie routera z USB do przetwarzania danych w przeglądarkach, co eliminuje potrzebę ciągłego uruchamiania Excela.
Wygenerowane przez model językowy.
REKLAMA