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: 64056 Skopiuj do schowka Formatowanie warunkowe dla wybranej kolumny
Autor Wiadomość
SpiNNer
forumowicz


Posty: 19
Wysłany: 06-02-2019, 15:14   Formatowanie warunkowe dla wybranej kolumny

Cześć,

Mam problem ze stworzeniem makra, które będzie działało w następujący sposób.

- po wklejeniu danych do arkusza (dane z nagłowkami np. Imię, Nazwisko, Adres Email, Nazwa firmy), użytkownik chce wybierając np. kolumnę Adres Email, które adresy się powtarzają i chce widzieć, że zaznaczą się one formatowaniem warunkowych (?) na jakiś kolor. W przypadku gdy użutkownik chce sprawdzić po Nazwiskach, chciałby żeby zaznaczyły mu się kolorem puste komórki za pomocą formatowania warunkowego (?) kolorem.

Kolejność kolumn może być różna np. w jednym zestawie danych Imię będzie w pierwszej kolumnie, ale już w innym zestawie danych Imię może być w kolumnie drugiej itp. Chodzi o to, żeby użytkownik mógl wybrać kolumnę i zastosować na niej odpowiednie formatowania komórek dla danego typu kolumny.

Wiecie może jak to zrobić?

Pozdrawiam
ID posta: 362075 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Pomógł: 242 razy
Posty: 1325
Wysłany: 06-02-2019, 15:25   

Załącz przykładowy plik.
_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
I dbajmy - proszę - o poprawną polszczyznę.
ID posta: 362076 Skopiuj do schowka
 
 
SpiNNer
forumowicz


Posty: 19
Wysłany: 06-02-2019, 22:27   

Przykładowy plik w załączeniu.

Czy jest możliwość żeby nie robić tego dla każdej kolumny osobno?

Tylko np. użytkownik chce wrzucić kolor tam gdzie są puste komórki w kolumnie C - klika makro i mu się zaznacza. Jeśli jednak chce znaleźć puste komórki w kolumnie A, to klika makro i w wybranej przez niego kolumnie zaznaczają mu się puste wartości.

Podobnie dla powtarzających się nazw.

probny.xlsm
Pobierz Plik ściągnięto 10 raz(y) 21.59 KB

ID posta: 362095 Skopiuj do schowka
 
 
Tadek
Excel Expert


Pomógł: 1465 razy
Posty: 4725
Wysłany: 07-02-2019, 07:53   

Dla pustych np. tak:
Kod:
Sub puste1()
Dim kol As String
Dim ost As Long
ost = Cells(Rows.Count, "A").End(xlUp).Row
 kol = InputBox("Podaj kolumnę, np. B, C", "Symbol kolumny", "B")
 If kol = vbNullString Then
 Exit Sub
 End If
 If IsNumeric(kol) Then
 MsgBox "Podałeś numer, a nie symbol kolumny!", vbInformation, "BŁĄD"
 Exit Sub
 End If
If ost < 5 Then Exit Sub
Range("A5:E" & ost).Interior.Color = xlNone
    Range(Cells(5, kol), Cells(ost, kol)).SpecialCells(xlCellTypeBlanks).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub
Dla duplikatów podobnie.
ID posta: 362110 Skopiuj do schowka
 
 
SpiNNer
forumowicz


Posty: 19
Wysłany: 07-02-2019, 22:29   

Super! Dziękuję. A mógłbyś mi jeszcze pokazać jak to samo zrobić z tymi duplikatami?
ID posta: 362177 Skopiuj do schowka
 
 
Tadek
Excel Expert


Pomógł: 1465 razy
Posty: 4725
Wysłany: 08-02-2019, 07:40   

Np. tak:
Kod:
Sub duplikat1()
Dim kol As String
Dim ost As Long
ost = Cells(Rows.Count, "A").End(xlUp).Row
 kol = InputBox("Podaj kolumnę, np. B, C", "Symbol kolumny", "B")
 If kol = vbNullString Then
 Exit Sub
 End If
 If IsNumeric(kol) Then
 MsgBox "Podałeś numer, a nie symbol kolumny!", vbInformation, "BŁĄD"
 Exit Sub
 End If
If ost < 5 Then Exit Sub
Range("A5:E" & ost).FormatConditions.Delete
    With Range(Cells(5, kol), Cells(ost, kol))
        .FormatConditions.AddUniqueValues
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(1).DupeUnique = xlDuplicate
            With .FormatConditions(1).Font
                .Color = -16383844
                 .TintAndShade = 0
             End With
            With .FormatConditions(1).Interior
                 .PatternColorIndex = xlAutomatic
                 .Color = 13551615
                 .TintAndShade = 0
             End With
        .FormatConditions(1).StopIfTrue = False
    End With
    Range("D1").Select
End Sub
ID posta: 362187 Skopiuj do schowka
 
 
SpiNNer
forumowicz


Posty: 19
Wysłany: 11-02-2019, 14:42   

Super, wielkie dzięki!

A jest możliwość wybrania kilku kolumn np. po przecinku A,C,E zamiast jednej?
ID posta: 362361 Skopiuj do schowka
 
 
SpiNNer
forumowicz


Posty: 19
Wysłany: 11-02-2019, 15:58   

...albo żeby poprzednie wyniki zostawały? np. zaznaczam puste komórki w kolumnie B, chcę teraz wybrać puste komórki w kolumnie C i chcę aby formatowanie w kolumnie B zostało.
ID posta: 362363 Skopiuj do schowka
 
 
Tadek
Excel Expert


Pomógł: 1465 razy
Posty: 4725
Wysłany: 12-02-2019, 08:03   

W makrze puste1 usuń ten fragment kodu:
Kod:
 Range("A5:E" & ost).Interior.Color = xlNone

a w makrze duplikat1 usuń to:
Kod:
Range("A5:E" & ost).FormatConditions.Delete
ID posta: 362413 Skopiuj do schowka
 
 
SpiNNer
forumowicz


Posty: 19
Wysłany: 12-02-2019, 09:09   

Dzięki, problem jednak pojawia się w sytuacji gdy przy zaznaczeniu pustych komórek stworzonym makrem, zdecyduję się coś w tą komórkę wpisać, wtedy ponawiając makro zaznaczające puste komórki, pozostawi nadal zaznaczone na kolorowo komórki, które przed chwilą uzupełniłem. Przy formatowaniu warunkowym tego problemu nie ma.
ID posta: 362416 Skopiuj do schowka
 
 
Tadek
Excel Expert


Pomógł: 1465 razy
Posty: 4725
Wysłany: 12-02-2019, 09:21   

Przecież tak chciałeś :niee
Ostatnio zmieniony przez Tadek 12-02-2019, 09:30, w całości zmieniany 2 razy  
ID posta: 362419 Skopiuj do schowka
 
 
SpiNNer
forumowicz


Posty: 19
Wysłany: 12-02-2019, 09:27   

Częściowo tak, bo rezultaty makra zostają i to jest ok. Chodzi mi tylko o to, że jak chcę zastosować makro na puste komórki ponownie, a w międzyczasie dokonam zmiany w komórkach to nie "nadpisuje" poprzedniego rozultatu.

Tzn. jeśli np w kolumnie B komórki B8, B9 będą puste i włącze makro to zostaną one zaznaczone kolorem. Jeśli po tym uzupełnię np komórkę B9, to po puszczeniu makra na puste komórki nadal zaznaczona zostanie komórka B8 i B9, a zależałoby mi na tym, żeby po tej zmianie zaznaczona została tylko komórka B8 jako pusta.
ID posta: 362420 Skopiuj do schowka
 
 
Tadek
Excel Expert


Pomógł: 1465 razy
Posty: 4725
Wysłany: 12-02-2019, 09:32   

W makrze puste1 to:
Kod:
    Range("A5:E" & ost).Interior.Color = xlNone

zamień na to:
Kod:
      Range(Cells(5, kol), Cells(ost, kol)).Interior.Color = xlNone
Zobacz w załączniku.

probny (2).xlsm
Pobierz Plik ściągnięto 1 raz(y) 19.05 KB

  
ID posta: 362421 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.marketingNET.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