Szukaj
Close this search box.
Odtwórz wideo

Ruchome wykresy

Udostępnij ten film:

Ocena tego filmu:

5/5 - (5 ocen)

Wyobraźmy sobie, że chcemy pokazać na wykresie zmienność pewnych wartości w czasie np. zaobserwować obciążenie wielu serwerów lub opóźnienia na stanowiskach pracy lub dowolną funkcję której rozkład zmienia się w czasie. W niniejszym odcinku chciałbym Wam pokazać jak łatwo osiągnąć efekt zmiany czasu zarówno ręcznie jak i w pełni automatycznie dzięki makrom.

Na początek wybierzmy sobie przykładowe dane pogrupowane w 20 kolumn i 50 wierszy jak na poniższym zdjęciu

……………………..

W kolumnie A mamy numerację kolejnych wierszy zaś w wierszu 1 miejsce na wybrane przez nas w danej chwili dane. W komórce B1 wpiszmy formułę =PRZESUNIĘCIE(B1;$A1;0) i rozciągnijmy do kolumny U. Teraz gdy w komórkę A1 wpiszemy numer interesującego nas wiersza jego dane zostaną przeniesione do wiersza pierwszego. Następnie wykonajmy wykres danych przeniesionych do wiersza 1 poprzez zaznaczenie obszaru B1:U1 oraz  Wstawianie -> Wykres Liniowy. Uzyskamy następujący efekt

.

Teraz dodajmy sobie do paska narzędzi dwie kontrolki które umożliwią nam proste sterowanie wykresem poprzez Dostosuj pasek narzędzi Szybki dostęp -> Więcej poleceń  wybór Wszystkie polecenia oraz dodanie Pasek przewijania (formant formularza) i Przycisk (formant formularza)

Następnie dodajmy sobie pasek przewijania obok naszego wykresu i skonfigurujmy go wciskając prawy klawisz myszy oraz Formatuj formant

Wpiszemy Wartość minimalna=1 (pierwszy wiersz z danymi ), Wartość maksymalna=50 (ostatni wiersz z danymi) i Łącze komórki do $A$1. Teraz przesuwając suwakiem możemy obserwować jak zmienia się nasz wykres w zależności od położenia suwaka.

Gdy już umiemy zmieniać wykres ręcznie zróbmy to samo automatycznie. Utwórzmy nowe makro wybierając Menu -> Widok -> Makra -> Wyświetl makra  wpisanie nazwy np. Automat1 oraz wciśnięcie Utwórz

A następnie skopiujmy poniższe makro które dzięki pętli For będzie zmieniać wartości w komórce A1 od 1 do 50

Public Declare PtrSafe Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As LongPtr)

‘dodanie biblioteki zawierającej funkcję Sleep

Sub Automat1()

‘ Automat1 Makro

    Application.Calculation = xlManual             

    For i = 1 To 50        

        Sheets(“Odcinek014_1”).Cells(1, 1) = i      

                          Calculate                                  

ActiveSheet.ChartObjects(1).Activate

       Sleep (100)       

        Next    

       Application.Calculation = xlAutomatic  

End Sub        

‘ Wyłączenie automatyczego przeliczania

‘ Dla i od 1 do 50

‘ Wpisz w A1 wartość i

‘ Przelicz teraz

‘ Aktywuj ponownie wykres

‘ zaczekaj 100ms

‘ następne i

‘ Włącz automatyczne przeliczanie

Kolejno dodajmy przycisk do arkusza z wykresem i przypiszmy do niego nasze makro


Możemy zobaczyć jak po wciśnięciu przycisku wykres nam się automatycznie zmienia. Szybkość zmian zależy od mocy obliczeniowej naszego komputera oraz parametru wpisanego w funkcji Sleep(?)

Jeżeli chcecie zobaczyć bardziej spektakularny efekt proponuję użyć np. funkcji sin(a(x+t))*sin(ay) gdzie t jest naszym zmiennym w czasie parametrem, wartość a zaś określa gęstość fal na wykresie. Funkcja ta przy wykorzystaniu wykresu powierzchniowego może wyglądać następująco

A po dodaniu przycisku analogicznie jak w poprzednim przykładzie oraz poniższego makra daje ciekawe efekty wizualne.

Sub Automat2()

‘ Automat1 Makro

                                                                             

                                    

    Application.Calculation = xlManual  

           For i = 1 To 100         

          Sheets(“Odcinek014_2”).Cells(2, 1) = i   

Calculate        

ActiveSheet.ChartObjects(1).Activate  

     Sleep (100)      

                Next          

    Application.Calculation = xlAutomatic   

End Sub     

  

‘ Wyłączenie automatycznego przeliczania

‘ Dla i od 1 do 100

‘ Wpisz w A2 wartość i

‘ Przelicz teraz

‘ Aktywuj ponownie wykres

‘ zaczekaj 100ms

‘ następne i

‘ Włącz automatyczne przeliczanie

   

Zachęcam Was do własnych eksperymentów z ruchomymi danymi lub funkcjami. Gdybyście potrzebowali pomocy lub mieli jakieś ciekawe pomysły w tym zakresie zapraszam do kontaktu na adres konrad.pogodz@itch.pl

Jak pokazać zmienność wartości w czasie na ruchomym wykresie
Film otagowano jako:
Poznaj autora wideo
Konrad Pogódź
Konrad Pogódź
Wiceprezes Zarządu
Pobierz darmowy materiał szkoleniowy

Dzięki darmowym materiałom szkoleniowym będziesz mógł przećwiczyć nabytą wiedzę i sprawdzić ją w praktyce. Pobierz i ćwicz natychmiast.

Odkryj podobne filmy

Zgłoszenie serwisowe

Dane firmy

Masz pytanie? Napisz do nas