Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 75227 Skopiuj do schowka Makro formatujące warunkowo każdy wiersz
Autor Wiadomość
Karolo
Forumowicz


Wersja: Win Office 2007
Posty: 11
Wysłany: 11-11-2023, 23:42   Makro formatujące warunkowo każdy wiersz

Witam, jak zmienić poniższy kod, aby makro formatowało warunkowo (od najniższej do najwyższej) wiersz zawierający 10 komórek i przechodziło do następnego czekając na wywołanie lub po prostu wykonało tą operację dla kilku tys. wierszy? Proszę o pomoc w VBA jestem zielony, jedyne co mi się udało to nagrać poniższy coś zmienić, a i tak wywala błąd.

Kod:


Sub Makro1()

    Range("b:k" & ActiveCell.Row + 1).Select
    Selection.FormatConditions.AddColorScale ColorScaleType:=3
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _
        xlConditionValueLowestValue
    With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor
        .Color = 8109667
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _
        xlConditionValuePercentile
    Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50
    With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor
        .Color = 8711167
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _
        xlConditionValueHighestValue
    With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor
        .Color = 7039480
        .TintAndShade = 0
   
   
    End With
   
   
End Sub
ID posta: 431296 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 365
Pomógł: 3397 razy
Posty: 10038
Wysłany: 12-11-2023, 00:51   

Załącz przykładowy plik (ok. 10 wierszy).
Wyjaśnij jak to ma działać.
Czy skala kolorów ma być w każdym wierszu jednakowa?
Czy wartości maksymalna i minimalna mają być ustalane osobno dla każdego wiersza?
W jaki sposób dane będą modyfikowane? Czy będą się zmieniać wartości w poszczególnych wierszach? Czy będą dodawane nowe wiersze? Czy będą usuwane wiersze?

Jeśli formatowanie warunkowe dla danego wiersza jest zdefiniowane, to można zmieniać wartości, a formatowanie będzie działać automatycznie. Natomiast jeśli wiersze będą dodawane, to można albo uzupełniać formatowanie dla każdego dodanego wiersza albo sformatować sobie wiersze "na zapas", a potem wklejać tylko same dane. To zależy też w jaki sposób te dane będą modyfikowane.
ID posta: 431298 Skopiuj do schowka
 
 
Karolo
Forumowicz


Wersja: Win Office 2007
Posty: 11
Wysłany: 12-11-2023, 21:44   

Załączam. Dzięki za zainteresowanie tematem. Skala kolorów jak w załączniku osobna dla każdego wiersza,ale bez sztywnych przedziałów (wartości bliskie sobie - mają mieć zbliżone kolory). Chciałbym, żeby to była taka formatka na przyszłość gdzie dodam lub zamienię wartości tych wierszy na bardziej aktualne. Wolałbym żeby formatowało to makro wiersze po kliknięciu/wywołaniu ale jeśli więcej z tym roboty to może być całość zestawienia po ewentualnej podmiance.

Proszę o info na ile to o co pytam to prozaiczna rzecz. I czy dałbym radę sobie z tego typu zadaniami po jakimś kursie online/youtube lub jakieś książce - jeśli tak to czy mógłbyś coś polecić

Formatka.xlsx
Pobierz Plik ściągnięto 12 raz(y) 12.73 KB

ID posta: 431303 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 365
Pomógł: 3397 razy
Posty: 10038
Wysłany: 12-11-2023, 22:40   

Zakładam, że pierwszy wiersz masz sformatowany tak jak chcesz. Możesz to zrobić ręcznie lub makrem, które sobie zarejestrowałeś.
To makro, które Ci teraz proponuję ma za zadanie skopiować formatowanie z komórek B2:K2, które traktujemy jako wzorcowe do następnych wierszy.
Żeby to zrobić należy zaznaczyć (Selection) te wiersze, które chcesz sformatować (zaznaczenie może być w dowolnej kolumnie, wystarczy jedna, ale może być więcej) i nacisnąć przycisk "Kopiuj formatowanie". Można też sobie zdefiniować skrót klawiaturowy zamiast przycisku. W tej chwili zdefiniowany jest skrót Ctrl+q (można go zmienić w opcjach makr).
Kod makra w module uniwersalnym:
Kod:
Sub Kopiuj_format()
   Dim rw As Range
   Range("B2:K2").Copy  ' wzór formatowania B2:K2
   For Each rw In Intersect(Selection.EntireRow, Range("B:K")).Rows
      rw.PasteSpecial xlPasteFormats    ' wklej tylko formatowanie
   Next rw
   Application.CutCopyMode = False
End Sub
Makro jest dość proste, ale zarejestrować się nie da, bo zawiera pętlę.

Do nauki VBA jest mnóstwo materiałów zarówno drukowanych, jak i dostępnych w sieci. Niektórzy autorzy publikują bardzo dużo materiałów. Są też dostępne kompletne kursy. Nie polecę czegoś konkretnego, bo to zależy od potrzeb i preferencji odbiorcy.
Trzeba się przyjrzeć jakimś kursom i ocenić, czy nam to odpowiada. I dużo samemu ćwiczyć.

Formatka.xlsm
Pobierz Plik ściągnięto 13 raz(y) 22.62 KB

ID posta: 431304 Skopiuj do schowka
 
 
Karolo
Forumowicz


Wersja: Win Office 2007
Posty: 11
Wysłany: 21-11-2023, 22:28   

Dzięki. Sorry, że dopiero teraz odp. ale skorzystałem wcześniej dziś dopiero się zalogowałem żeby podziękować. Wszystko śmiga
ID posta: 431420 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.wip.pl

Archiwum

Strona uĹźywa plikĂłw cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przegl�darce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
SprawdĹş, w jaki sposĂłb przetwarzamy dane osobowe