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.

Excel VBA makro Sprawdzanie w kolumnie wartosci

k-m-r1 11 Sty 2012 17:10 5066 4
  • #1 11 Sty 2012 17:10
    k-m-r1
    Poziom 11  

    Witam
    Mam kolumnę gdzie są 2 wartości tak nie .
    I teraz jeśli komórce jest słowo Nie to chce by migała.
    Migotanie tła realizuję przez VB :

    Code:
    Private zmiana As Boolean
    

     Sub migajaca()

     Dim zakres As Range

     Set zakres = Range("A1")

     If zmiana Then
     zakres.Interior.ColorIndex = xlNone
     zakres.Font.Color = vbBlack
     Else
     zakres.Interior.Color = vbRed
     zakres.Font.Color = vbWhite
     End If

     zmiana = Not zmiana

     NextTick = Now + TimeValue("00:00:01")
     Application.OnTime NextTick, "migajaca"

     End Sub


    Teraz jak zrobić by z pośród 1000 komórek w kolumnie migotały te ze słowem Nie?
    próbowałem z pętlą ale Exel wieszał się.

    Myślałem też nad funkcją w komórce uruchamiające macro migotania ale nie wiem jak zrobić by macro wiedziało w której komórce ma migać tło czy też z jakiej komórki było wywołane

    0 4
  • #2 11 Sty 2012 18:34
    adamas_nt
    Moderator Programowanie

    A dlaczego nie działa w pętli? Powinno...

    Code:
    Set zakres = Range("A1:A1000") 
    
    For Each kom in zakres
    i wewnątrz odwołujesz się do "kom", nie do "zakres"

    Brakuje instrukcji warunkowej, sprawdzającej wartość w komórce.
    Code:
    if kom.value = "tak" then

    Oczywiście im więcej komórek w zakresie, tym wolniej będzie "mrygać". Można skrócić czas, ale częstotliwość to chyba drugorzędna sprawa...

    0
  • #3 11 Sty 2012 21:31
    k-m-r1
    Poziom 11  

    Ja nie jestem ekspertem z VB poznałem go troszkę przy okazji i tak staram sie korzystając poszerzyć wiedzę.
    Jeszcze zastanawiam sie jak by zrobić by macro najpierw sprawdziło gdzie jest odpowiednia wartość, zapisało w tablice i potem mrygało tło z danymi z tablicy tylko podczas filtrowania komórek wg innego kryterium znów trzeba by odczytać wartoscie Tak Nie w kolumnie... wiem że to będzie zabawa.
    tylko do tak zaawansowanych opcji nie doszedłem nie wiem jak korzystać

    0
  • #4 11 Sty 2012 23:08
    marcinj12
    Poziom 40  

    Kolego k-m-r1 - osobiście odradzam takie zabawy z Excelem. Migające pola może i fajnie wyglądają (chociaż to kwestia gustu - mnie np. by wkurzały), ale Excel się do tego nie nadaje - został stworzony przede wszystkim do obliczeń. Taki średnio potrzebny gadżet jak migające komórki nie dość że rozprasza, to przede wszystkim - jest to dodatkowy proces do wykonywania nieustannie w otwartym arkuszu, w dodatku co sekundę, przy 1000 komórek i rozbudowanym warunku sprawdzającym. Spowalnia to niepotrzebnie Excela i wszystkie w nim przeliczenia, o tym że utrudnia z nim pracę nie wspominając. Zwykłe zaznaczenie komórek na czerwono nie wystarczy?? 1000 komórek i tak na ekranie nie widać.
    Jeżeli chcesz robić programy mające jakieś graficzne bajery, to nie Excel i VBA, a np. Visual Basic z platformy Visual Studio.
    Pozdrawiam

    0
  • #5 25 Lip 2012 19:27
    k-m-r1
    Poziom 11  

    nie znam sie na tym progranie który opisałeś do zabawy

    miganie komórki miało na celu informować osobę oglądającą że coś jest nie tak
    w chwili obecnej tło jest tylko na czerwono podświetlone i to wszystko

    0