846 Aufrufe
Gefragt in Tabellenkalkulation von kapa Mitglied (121 Punkte)
Hallo an Alle,

da ich noch ziemlich unbeholfen im Schreiben von Makros bin, benötige ich mal wieder eure fachmännische Hilfe.
Folgende Problemstellung:

In einer von mir geführten Tabelle soll die erste Spalte nach doppelten Einträgen durchsucht werden.

Bei doppelten Einträgen soll ein Fenster mit der Meldung "Art.-Nr....existiert bereits" erscheinen.

Hier habe ich bereits einen Quelltext der im Prinzip bereits genau dies macht.
Was mir aber noch nicht gefällt ist, dass die Meldung über den doppelten Zelleintrag mehrmals erscheint.
Genau da benötige ich eine augenöffnende Hilfestellung.
Wie soll der Quelltext umgeschrieben werden, dass nur einmal je doppelten Eintrag die Meldung erscheint?

Public Sub Vergleichen()
Dim lngZeile As Long
Dim lngZeilenSprung As Long
Dim strSuchwert As String

lngZeile = Cells(Rows.Count, 1).End(xlUp).Row

For lngZeilenSprung = lngZeile To 1 Step -1
strSuchwert = Cells(lngZeilenSprung, 1).Value
If strSuchwert <> "" Then
If Application.WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(lngZeile, 1)), strSuchwert) <> 1 Then
MsgBox Cells(lngZeilenSprung, 1).Value & " ist schon " & _
Application.WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(lngZeile, 1)), strSuchwert) & _
" - mal vorhanden"


End If
End If

Next lngZeilenSprung

End Sub

Für jede Hilfestellung möchte ich mich bereit jetzt bei euch bedanken.

Viele Grüße,

Kapa

2 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Kapa,

dafür ein Mako verwenden wäre mir zu umständlich, ich würde einfach die Bedingte Formatierung dazu einsetzen.

Damit hast Du die Doppler gleich markiert und brauchst Dir nicht die Meldungen der MsgBox zu merken oder aufzuschreiben.

Gruß
Rainer
0 Punkte
Beantwortet von kapa Mitglied (121 Punkte)
Hallo Rainer,

habe soeben Deinen Vorschlag umgesetzt.
Hat natürlich Vörzüge es so zu vereinfachen, gerade wenn mehrere Nutzer mit dieser Tabelle arbeiten.
Danke für diesen "Augenöffner" ;-)

Viele Grüße,

Kapa
...