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: 64404 Skopiuj do schowka oznaczanie zmienionych danych
Autor Wiadomość
maciekwu
Exceloholic


Posty: 113
  Wysłany: 12-03-2019, 15:39   oznaczanie zmienionych danych

chodzi mi o porównanie danych w komórkach En i Kn i w przypadku gdy się różnią oznaczenie danej w komórce K kolorem czerwonym.
Także o porównanie sekwencji zapisanej w komórkach Fn-Gn-Hn-In z sekwencją w komórkach LN-Mn-Nn-On w obszarze wierszy objętych scaloną komórką An. Jeżeli w sekwencji L-M-N zestaw wartości nie występujący w sekwencji F-G-H to na czerwono oznaczone zostają wartości w komórkach L-M-N-O. Jeżeli różni się tyko wartość w komórce I od wartości O (pozostałe w są zgodne) to na czerwono oznaczona zostaje wartość w komórce O.
Bardzo będę wdzięczny za pomoc. Próbuję uczyć się pisania makr ale to zadanie absolutnie mnie przerasta.
podpinam plik z oznaczeniem na czerwono jak ma to finalnie wyglądać

przykład.xlsm
Pobierz Plik ściągnięto 9 raz(y) 12.29 KB

ID posta: 364045 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Pomógł: 252 razy
Posty: 1372
Wysłany: 12-03-2019, 15:49   

Te scalone komórki w kol. A mogą obejmować > 2 wiersze (czy np. 4768 - wiersze: 5, 6, 7 to błąd)?
_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
I dbajmy - proszę - o poprawną polszczyznę.
ID posta: 364047 Skopiuj do schowka
 
 
maciekwu
Exceloholic


Posty: 113
Wysłany: 12-03-2019, 16:02   

mogą zawierać więcej niż dwa wiersze
ID posta: 364049 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Pomógł: 252 razy
Posty: 1372
Wysłany: 12-03-2019, 16:07   

1-szy punkt prosty:
Kod:
Option Explicit

Private Sub CommandButton1_Click()
Dim i&, d&
Dim e, k

d = Cells(Rows.Count, "E").End(xlUp).Row

For i = 1 To d
    If Cells(i, 5).Value <> Cells(i, 11).Value Then
        Cells(i, 11).Font.Color = vbRed
    Else
        Cells(i, 11).Font.Color = vbBlack
    End If
Next i

End Sub


PS. Nie oznaczyłeś K13 :-P . I co np. z kom. L5 ?
_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
I dbajmy - proszę - o poprawną polszczyznę.
  
ID posta: 364050 Skopiuj do schowka
 
 
maciekwu
Exceloholic


Posty: 113
Wysłany: 12-03-2019, 16:47   

z K13 mój błąd powinna oczywiście byś oznaczona.
L5 też
ID posta: 364053 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Pomógł: 252 razy
Posty: 1372
Wysłany: 12-03-2019, 17:04   

Cytat:
Jeżeli różni się tyko wartość w komórce I od wartości O (pozostałe w są zgodne)
A może być sytuacja odwrotna? Jeżeli tak - co wtedy?
_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
I dbajmy - proszę - o poprawną polszczyznę.
ID posta: 364054 Skopiuj do schowka
 
 
maciekwu
Exceloholic


Posty: 113
Wysłany: 12-03-2019, 17:29   

To wtedy kolor czerwony otrzymują dane w komórkach L, M i N.
w przykładzie nie ma takiego przypadku. Podobny jest w wierszu 20 ale tam cały wiersz jest nie zgodny ( nie ma odpowiednika w komórkach F, G,H I)
  
ID posta: 364055 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Pomógł: 252 razy
Posty: 1372
Wysłany: 13-03-2019, 01:44   

Sprawdź:
Kod:
Option Explicit

Private Sub CommandButton1_Click()
Dim i&, j&, d&, flag As Boolean, flag1 As Boolean
Dim pocz&, kon&, str1 As String, str2 As String

On Error GoTo laEnd

d = Cells(Rows.Count, "E").End(xlUp).Row

For i = 1 To d
    If Cells(i, 5).Value <> Cells(i, 11).Value Then
        Cells(i, 11).Font.Color = vbRed
    Else
        Cells(i, 11).Font.Color = vbBlack
    End If
Next i

pocz = 0
kon = 0

Do Until pocz > d

    With Columns("A")
        If pocz = 0 Then
            pocz = 1
        Else
            pocz = .Find(what:="*", after:=.Cells(pocz, 1), LookIn:=xlValues).Row
        End If
    End With

    With Columns("E")
        kon = .Find(what:="*", after:=.Cells(pocz, 1), LookIn:=xlValues).Row
    End With
   
    For i = pocz To kon   '<<---------------------------------------------------kol. O
        flag = True
        flag1 = True
        str2 = Cells(i, 12).Value & Cells(i, 13).Value & Cells(i, 14).Value
        For j = pocz To kon     '<<---------------------------------------------kol. I
            str1 = Cells(j, 6).Value & Cells(j, 7).Value & Cells(j, 8).Value
            If str1 = str2 And flag = True Then
                Range(Cells(i, 12), Cells(i, 14)).Font.Color = vbBlack
                flag = False
            ElseIf flag = True Then
                Range(Cells(i, 12), Cells(i, 14)).Font.Color = vbRed
            End If
           
            If Cells(i, 15).Value = Cells(j, 9).Value And flag1 = True Then
                Cells(i, 15).Font.Color = vbBlack
                flag1 = False
            ElseIf flag1 = True Then
                Cells(i, 15).Font.Color = vbRed
            End If
        Next j
    Next i
   
    pocz = i - 1
   
Loop
Exit Sub

laEnd:
MsgBox "Błąd: " & Err.Number & vbCrLf & vbCrLf & Err.Description, vbCritical, "UWAGA!"

End Sub


PS. Pokręciłeś ten arkusz przez scalanie komórek... :evil: .
.

Kopia przykład111.xlsm
Pobierz Plik ściągnięto 3 raz(y) 30.49 KB

_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
I dbajmy - proszę - o poprawną polszczyznę.
  
ID posta: 364067 Skopiuj do schowka
 
 
maciekwu
Exceloholic


Posty: 113
Wysłany: 13-03-2019, 07:03   

Bardzo Ci dziękuję będę dzisiaj testował.
Niestety to scalania komórek jest konsekwencją aplikacji, która tworzy raport w takiej formie nie mam na to wpływu.
ID posta: 364070 Skopiuj do schowka
 
 
maciekwu
Exceloholic


Posty: 113
Wysłany: 13-03-2019, 08:36   

rozumiem, że po ostatnim wierszu w komórce An muszę wpisać ilość wierszy danych. W przeciwnym wypadku program się wiesza. Po pierwszym testowaniu działa super. Sprawdzę na większej ilości danych.
Jeszcze raz bardzo dziękuję.
ID posta: 364072 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Pomógł: 252 razy
Posty: 1372
Wysłany: 13-03-2019, 08:40   

Nie - to było pole informacyjne, ale jak widać kod je wykorzystuje.
Zaraz poprawię.


---
edit: popraw linię:
Kod:
Do Until pocz >= d
_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
I dbajmy - proszę - o poprawną polszczyznę.
  
ID posta: 364074 Skopiuj do schowka
 
 
maciekwu
Exceloholic


Posty: 113
Wysłany: 13-03-2019, 10:08   

poprawiłem jest OK
ID posta: 364085 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