Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Suchen Spalte A klappt nicht

Suchen Spalte A klappt nicht
17.10.2006 20:03:37
Wolfgang
Hallo*
der untenstehende Code sollte eigentlich dazu dienen, innerhalb einer Arbeitsmappe in der Spalte A nach doppelten Daten zu suchen und diese dann untereinander in Spalte C zu schreiben. Momentan schreibt mir der Code alle in Spalte A befindlichen Daten in Spalte C.- Was habe ich da verkehrt gemacht? - Danke schon jetzt wieder für die Rückmeldungen.
Gruß - Wolfgang

Sub VergleichA_Doppelte()
'Nur in A vorkommende Doppeleinträge werden in Spalte C gelistet
Dim ALetzte As Long, iCounter As Long, xCounter As Long
Dim xZelle As Range, wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
With wks
If Not (.Name = "Temp" Or wks.Name = "Start") Then
'vorhandene Daten in Spalte C löschen
.Columns(3).ClearContents
ALetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(-4162).Row, .Rows.Count)
For iCounter = 1 To ALetzte
Set xZelle = .Columns(1).Find(what:=.Cells(iCounter, 1), Lookat:=xlWhole)
If Not xZelle Is Nothing Then
xCounter = xCounter + 1
.Cells(xCounter, 3) = .Cells(iCounter, 1)
End If
Next iCounter
End If
End With
xCounter = 0
Next wks
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen Spalte A klappt nicht
17.10.2006 23:27:11
fcs
Hallo Wlfgang,
in der Zeile Set xZelle = ...
suchst du immer in der gesamten Spalte A, dadurch wird natürlich immer der gesuchte Wert gefunden und in Spalte C ausgegeben.
Mit folgende r Anpassung wird zusätzlich geprüft, ob die Zeile der gefundenen Zelle mit der Zeile des gesuchten Wertes übereinstimmt.
Gruss
Franz

Sub VergleichA_Doppelte2()
'Nur in A vorkommende Doppeleinträge werden in Spalte C gelistet
Dim ALetzte As Long, iCounter As Long, xCounter As Long
Dim xZelle As Range, wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
With wks
If Not (.Name = "Temp" Or wks.Name = "Start") Then
'vorhandene Daten in Spalte C löschen
.Columns(3).ClearContents
ALetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(-4162).Row, .Rows.Count)
For iCounter = 1 To ALetzte
Set xZelle = .Columns(1).Find(what:=.Cells(iCounter, 1), Lookat:=xlWhole)
If Not xZelle Is Nothing Then
If xZelle.Row <> iCounter Then
xCounter = xCounter + 1
.Cells(xCounter, 3) = .Cells(iCounter, 1)
End If
End If
Next iCounter
End If
End With
xCounter = 0
Next wks
End Sub

Anzeige
erneut Danke, Franz!!
18.10.2006 06:06:06
Wolfgang
Hallo Franz,
erneut herzlichen Dank für Deine Rückmeldung; ich habe den von Dir umgestellten Code getestet. Er läuft einwandfrei und super. Werde nachher in ruhiger Minute vergleichen, um für mich festzustellen, wo meine Fehler lagen.- Einen schönen Tag noch und weiterhin alles Gute.
Herzliche Grüße
Wolfgang
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige