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 Makro kolorujace tlo komorek

Markus Maximus 11 Sie 2010 11:09 4795 11
  • #1 11 Sie 2010 11:09
    Markus Maximus
    Poziom 8  

    Witam
    Mam problem - chcialebym aby moje makro zmenialo tlo komorki w kolumnie C jesli znajdzie tam napis "Nazwisko", albo jeszcze lepiej kolorowal caly wiersz jesli w tejze komorce najdzie taki napis
    Mam cos takiego ale nie dziala

    Code:
    For Each kom In Range("c9:c1000")
    
       If kom.Value = "Nazwisko" Then
      kom.Select
       With Selection.Interior
            .ColorIndex = 41
            .Pattern = xlSolid
        End With
    End If
    Next kom


    bede wdzieczny za wskazowki

    Proszę pamiętać o używaniu znaczników code. - arnoldziq

    0 11
  • #2 11 Sie 2010 11:13
    marcinj12
    Poziom 40  

    Do kolorowania całego wiersza użyj kolekcji Rows. A co Ci w tym kodzie nie działa, bo u mnie koloruje??

    Code:
    Private Sub CommandButton1_Click()
    
    For Each kom In Range("c9:c1000")
        If kom.Value = "Nazwisko" Then
            With Rows(kom.Row).Interior
                .ColorIndex = 41
                .Pattern = xlSolid
            End With
        End If
    Next kom
    End Sub

    PS. Zawsze zamiast makra możesz użyć formatowania warunkowego - ale to raczej do zmiany koloru komórki niż do całego wiersza.

    0
  • #3 11 Sie 2010 11:18
    Markus Maximus
    Poziom 8  

    no wlasnie nie wiem. To co mi wyslales tez u mnie nie dziala - czy problemem moze byc to ze kolumna C skalada sie z nazw stalych?? Wydaje mi sie ze nie.

    0
  • #4 11 Sie 2010 11:22
    marcinj12
    Poziom 40  

    A zmień indeks koloru z 41 np. na 5

    0
  • #5 11 Sie 2010 11:31
    Markus Maximus
    Poziom 8  

    Dalej nic.

    0
  • Pomocny post
    #7 11 Sie 2010 11:38
    marcinj12
    Poziom 40  

    To sprawdź w debuggerze czy wchodzi do pętli IF. Może w excelu masz jakąś spację przed lub pod ?? Jak nie to wrzuć ten plik.

    0
  • #8 11 Sie 2010 11:57
    Markus Maximus
    Poziom 8  

    juz doszedlem :)
    Dzieki wielkie

    0
  • #9 11 Sie 2010 13:16
    walek33
    Poziom 28  

    marcinj12 napisał:
    ...formatowania warunkowego - ale to raczej do zmiany koloru komórki niż do całego wiersza...

    Czemu uważasz, że tym sposobem nie powinno się formatować wiersza?
    Jedynym ograniczeniem w stosunku do makrosa jest ilość kolorów w formatowaniu warunkowym wynosząca 4 tj. trzy kolory i brak zabarwienia. :D Jeżeli więc to ograniczenie nie przeszkadza osobiście wolałbym formatowanie warunkowe. Nie trzeba pamiętać o klikaniu. :D

    -1
  • #10 11 Sie 2010 13:27
    marcinj12
    Poziom 40  

    walek33 napisał:

    Czemu uważasz, że tym sposobem nie powinno się formatować wiersza?

    Ze względów wydajnościowych... Idąc za przykładem autora, musiałbyś skopiować sprawdzanie warunku (=$C7="Nazwisko") etc formatowania warunkowego do ok. 1000 wierszy x 255 kolumn (zakładając że nie jest to office 2007), co daje 255000 dodatkowych warunków dla Excela do przechowywania i sprawdzenia po każdej zmianie w arkuszu... Plus istnieje ryzyko wklejenia na tak sformatowane komórki przez CTRC+C, CTRL+V komórki niesformatowanej, przez co formatowanie warunkowe w tej komórce zniknie...
    Autor nie wspominał o klikaniu - może chce to podpiąć do jakiegoś zdarzenia, a może to część większej procedury?
    Przekonany?? :)

    0
  • #11 11 Sie 2010 14:24
    walek33
    Poziom 28  

    marcinj12 napisał:
    Przekonany??

    Prawie... :D
    - Wzgląd wydajnościowy (po formatowaniu warunkowym całego arkusza) prawie nieodczuwalny.
    - Przeklejenie formatowania - przekonany.
    - Podpięcie do innego kodu - przekonany.
    Biorąc pod uwagę stosunek tak do nie wynik jest na Twoją korzyść.
    Przekonany! :D

    0
  • #12 17 Sie 2010 07:37
    ekomont
    Poziom 16  

    A nie prościej zrobić formatowanie warunkowe. Wówczas mamy sprawdzanie przez excela wartości i makro nie obciąża go dodatkowo...Piszę już jakiś czas makra i np jak robi się kopię dużych arkuszy, to makro jest zbyt wolne - lepiej zamiast przenoszenia Rows(A) użyć zaznaczenia i polecenia kopiuj excela wpisując formuły poprzez makro niż kopiować fizyczną zawartość

    0