AW: Mehrfacheinträge ermitteln, markieren und Userform
19.01.2015 17:10:42
Peter
Hallo Werner,
das würde ich so machen
Option Explicit
' Ich möchte in einem Blatt Mehrfacheinträge ermitteln, markieren und
' diese dann in einem Userform(ular) darstellen lassen.
' Die Bearbeitung ist wie folgt vorgesehen:
' Man klickt eine Zelle in (z. B.) Spalte A an.
' Dann soll das Makro nachschauen, ob es diesen Wert im Blatt noch öfter gibt.
' Wenn ja, sollen alle Fundstellen gekennzeichnet und in einem Userform dargestellt werden.
Public Sub Doppelte_ausweisen()
Dim rZelle As Range
Dim sFundst As String
Dim sText As String
Dim rDoppelt As Range
With ThisWorkbook.Worksheets("Tabelle1").Columns(ActiveCell.Column)
Set rZelle = .Find(ActiveCell.Value, LookAt:=xlWhole, LookIn:=xlValues, After:=.Cells(. _
Cells.Count))
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
Do
If rDoppelt Is Nothing Then
Set rDoppelt = .Range("A" & rZelle.Row) ' betrifft nur die Zelle
sText = rZelle.Row
Else
'Set rDoppelt = Union(rDoppelt, Rows(rZelle.Row)) ' betrifft die ganze _
Zeile
Set rDoppelt = Union(rDoppelt, .Range("A" & rZelle.Row)) ' betrifft nur die _
Zelle
sText = sText & vbLf & rZelle.Row
End If
Set rZelle = .Cells.FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address sFundst
End If
End With
If InStr(sText, vbLf) > 0 Then
rDoppelt.Select ' den Inhalt der Zeile (Zelle) färben
MsgBox "Der Begriff """ & ActiveCell.Value & """ steht in den Zeilen" & vbLf & vbLf & _
sText, _
64, " Information für " & Application.UserName
Else
MsgBox "Der Begriff """ & ActiveCell.Value & """ wurde nur einmal gefunden.", _
64, " Hinweis für " & Application.UserName
End If
Set rDoppelt = Nothing
Set rZelle = Nothing
End Sub
Gruß Peter