Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1192to1196
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
Inhaltsverzeichnis

Doppelte Einträge in Zeile/Range finden

Doppelte Einträge in Zeile/Range finden
Holger,
Hallo liebes Forum,
die Forumssuche hat mir leider nicht geholfen.
Ich habe einen Range definiert und in diesem möchte ich nach doppelten
Einträgen finden. Zum Beispiel geht der Range von B19 bis Q19.
Der Code, den ich mir aus dem Forum rausgezogen habe, funktioniert nicht.
Anscheinend funktioniert er nur für Spalten, nicht für nur eine Zeile.
Aber ich verstehe ihn ja auch nicht wirklich.
Kann mir jemand helfen?
Gruß+Dank
Holger
Set rngCheckQuarter = wsDataWeek.Range(wsDataWeek.Cells(lng1stCell - 1, int1stCol), wsDataWeek.Cells(lng1stCell - 1, intLastCol))

entspricht B19:Q19
Dann die Function:
Call CheckQuarters(rngCheckQuarter)
Und diese sieht so aus:
Function CheckQuarters(ByVal RNG As Range) As Boolean
Dim arrDouble As Variant
Dim lngT As Long
arrDouble = RNG
With Application.WorksheetFunction
For lngT = 1 To UBound(arrDouble)
If .CountIf(RNG, arrDouble(lngT, 1)) > 1 Then
MsgBox "Hallo"
End If
Next lngT
End With
End Function

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

Betreff
Benutzer
Anzeige
AW: Doppelte Einträge in Zeile/Range finden
11.01.2011 14:06:23
Rudi
Hallo,
Function CheckQuarters(ByVal RNG As Range) As Boolean
Dim arrDouble As Variant
Dim lngT As Long
arrDouble = RNG
With Application.WorksheetFunction
For lngT = 1 To UBound(arrDouble, 2)
If .CountIf(RNG, arrDouble(1, lngT)) > 1 Then
MsgBox "Hallo"
End If
Next lngT
End With
End Function

AW: Doppelte Einträge in Zeile/Range finden
11.01.2011 14:19:08
Holger,
Hi Rudi,
Hab Dank, edler Ritter ;).
Die Änderungen sind mir aufgefallen, nur was hat das eigentlich zu bedeuten?
AW: Doppelte Einträge in Zeile/Range finden
11.01.2011 14:30:45
Rudi
Hallo,
wenn der Bereich nur eine Zeile hat, hat das daraus resultierende Array (arrDouble) die Dimension (1, AnzahlSpalten). Bei einem einspaltigen Bereich hingegen (AnzahlZeilen, 1). Du musst also ein mal durch die erste Dimension und beim anderen Fall durch die zweite Dimension.
Ich würde das so machen, da ist es egal:
Function CheckDouble(ByVal RNG As Range) As Boolean
'TRUE= doppelte Werte im Bereich
Dim oDouble As Object, rngC As Range
Set oDouble = CreateObject("scripting.dictionary")
For Each rngC In RNG
oDouble(rngC.Value) = 0
Next
CheckDouble = RNG.Count  oDouble.Count
End Function

Gruß
Rudi
Anzeige
AW: Doppelte Einträge in Zeile/Range finden
11.01.2011 14:41:11
Holger,
Hi Rudi,
die Funktion kapiere ich zwar noch weniger als die Erste (wobei das mit den Dimensionen habe ich verstanden), aber sie ist wesentlich eleganter.
Also werde ich diese mal ausprobieren, nochmal Danke Dir!
Gruß
Holger

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige