Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
452to456
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
452to456
452to456
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelte Werte finden.........

Doppelte Werte finden.........
11.07.2004 00:11:50
maine-coon
...........mit diesem Makro aus dem Archiv geht bei mir nicht.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Range("Orte")
If Target.Cells.count > 1 Then exit sub
If Intersect(Target, rng) Is Nothing Then exit sub
If WorksheetFunction.CountIf(rng, Target.Value) > 1 Then
Target.Interior.ColorIndex = 6
meldung = MsgBox("Der Wert ist bereits in der Liste!")
Else
Target.Interior.ColorIndex = xlColorIndexNone
End If
End Sub

Es funktioniert nur so lange wie im Blatt bleibe. Verlasse ich das Blatt, durchläuft es scheinbar als Schleife den ganzen Bereich und bleibt in der nachfolgenden Zeile stehen
If WorksheetFunction.CountIf(rng, Target.Value) > 1 Then
mit der Meldung "Typen unverträglich"
Weiß jemand warum?
Danke, Gruß Achim

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Werte finden.........
K.Rola
Hallo,
versuchs mal so, die zu überwachende Spalte anpassen(hier: Spalte A)
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
If Target.Count > 1 Then Exit Sub
Set rng = Columns(1)
rng.Interior.ColorIndex = xlNone
If Intersect(Target, rng) Is Nothing Then Exit Sub
If WorksheetFunction.CountIf(rng, Target) > 1 Then
MsgBox "Der Wert ist bereits in der Liste!"
Target.Interior.ColorIndex = 3
Exit Sub
End If
End Sub

Gruß K.Rola
AW: Doppelte Werte finden.........
11.07.2004 09:37:59
maine-coon
Dein Code bringt eine Fehlermeldung.
Mein Code geht doch. War schon spät gestern. Ich hatte das Exit Sub hier zwar eingetragen, aber nicht in meinem original Code.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Range("Orte")
If Target.Cells.count > 1 Then
Exit Sub
End If
If Intersect(Target, rng) Is Nothing Then
Exit Sub
End If
If WorksheetFunction.CountIf(rng, Target.Value) > 1 Then
Target.Interior.ColorIndex = 6
MsgBox ("Der Wert ist bereits in der Liste!")
Else
Target.Interior.ColorIndex = xlColorIndexNone
End If
End Sub

Aber eines verstehe ich nicht. Wenn ich auf meine Schaltfläche zum Verlassen des Blattes klicke, dann geht das ganz schnell, aber man sieht, dass da eine Schleife durchlaufen wird. Vermutlich 200 mal, weil der Rangebereich aus 200 Zellen besteht.
Das muss man doch verhindern können,oder?
Anzeige
AW: Doppelte Werte finden.........
K.Rola
Hallo,
welche Fehlermeldung, welche Zeile wird markiert?
Gruß K.Rola
AW: Doppelte Werte finden.........
11.07.2004 11:54:53
maine-coon
Hallo erstmal.
Keine Fehler mehr, aber ein anderes Problem.
Ich hatte es nochmal gepostet. Schau mal weiter oben unter "Schleifendurchlauf verhindern".
Gruß Achim

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige