można bez VBA:
kolumnę obok robisz:
=wiersz()-przesunięcie
gdzie przesunięcie to nr wiersza od którego zaczynasz ciąg.
W następnej kolumnie dajesz =A1=B1
w zależności w których kolumnach umieściłeś najpierw (A porównywane wartości, B kolumna obok)
dajesz autofiltra i ustawiasz na fałsz i gotowe.
Efektywne ale nie efektowne
Efektowny np może być kod
Option Explicit
Sub Przycisk1_Kliknięcie()
Dim A, Pom, Wiersz As Long
Dim Kolumna As Integer
On Error Resume Next
Kolumna = ActiveCell.Column
If Err <> 0 Then
MsgBox "Nie wybrałeś celi", vbCritical, "Wybierz cele"
Exit Sub
End If
On Error GoTo 0
If Not IsNumeric(ActiveCell.Value) Then
MsgBox "Stań na pierwszej komórce rozpoczynającej ciąg. Wartośc musi być numeryczna", vbCritical, "Wartość nienumeryczna"
Exit Sub
End If
Pom = ActiveCell.Value
Wiersz = ActiveCell.Row
A = 0
Do Until Cells(A + Wiersz, Kolumna) = ""
If Cells(Wiersz + A, Kolumna).Value <> Pom + A Then
If MsgBox("W wierszu" & Wiersz + A & " znaleziono wartość: " & Cells(Wiersz + A, Kolumna).Value _
& vbNewLine & "powinno być: " & Pom + A & vbNewLine & _
"Zamieniamy?", vbYesNo, "Nieprawidłowa wartość") = vbYes Then
Cells(Wiersz + A, Kolumna).Value = Pom + A
End If
End If
A = A + 1
Loop
MsgBox "Sprawdzanie zakończone", vbInformation, "Zakończono sprawdzanie"
End Sub
Pozdrawiam |