Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

nebenliegende Zellen vergleichen

nebenliegende Zellen vergleichen
09.11.2006 11:59:27
Stefan
Hallo,
irgendwie stehe ich grade bissel aufm Schlauch.
Ich habe vor mit VBA in Spalte A:A nach den Werten zu suchen und dann die nebenliegenden Zellen (B:B) zu merken und mit den weiteren Fundstellen zuvergleichen, so dass ich halt keine Dubletten bekomme. Autofilter ist leider nicht möglich, da die Suchergebnisse teilweise zu mehreren Suchbegriffen zugeordnet werden.
Im folgenden Beispielbild wäre das eine Suche nach "a" und als Ergebnis würde ich "aaa" "fff" und "zzz" erhalten. Das Doppelte Suchergebnis "aaa" würde nicht mehr auftauchen. (Das Ausgabefeld würde ich gerne mehrzeilig formatieren. Das kann ich dann aber später selber bewerkstelligen.)
Nur zur Info: In der richtigen Tabelle sind die Suchbegriffe teilweise 100fach vorhanden und es werden so max. 20 Suchergebnisse rauskommen.
Mir fehlt der Ansatz, wie ich die Dubletten bei den Suchergebnissen vermeide UND die bereinigten Suchergebnisse für eine finale Ausgabe in die Zielzellen in einen beliebig grossen Zwischenspeicher schreibe. Nachdem alle Fundstellen vorhanden sind, müssten die Suchergebnisse im Zwischenspeicher einmal durchgezählt und in die Zielzelle(n) geschrieben werden.
Falls überhaupt jemand verstanden hat, was ich meine, hoffe ich auf eine leichte verständliche Antwort. Danke!
Userbild

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nebenliegende Zellen vergleichen
09.11.2006 13:42:14
ANdreas
Hallo Stefan,
anbei die VBA Lösung:

Private Function SuchenVerketten(strSuchwert As String, _
rngSuchBereich As Range, intOffset As Integer)
Dim strAusgabe As String, c As Range
Dim firstAddress As String
With rngSuchBereich
Set c = .Find(strSuchwert, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
strAusgabe = strAusgabe & c.Offset(0, intOffset).Text & vbLf
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
SuchenVerketten = strAusgabe
End Function


Private Sub Suche()
Range("D1").Value = SuchenVerketten("a", Range("A1:A16"), 1)
End Sub

Gruß
Andreas
Anzeige
AW: nebenliegende Zellen vergleichen
09.11.2006 13:59:44
fcs
Hallo Stefan,
hier mein Vorschlag
Gruß
Franz

Sub Suchen()
Dim I As Long, J As Long, wks As Worksheet, Finden, Ergebnis(), Text
Dim doppelt As Boolean, Zeile As Integer
Set wks = Worksheets("Tabelle1") 'Tabellenblatt in dem gesucht werden soll
Finden = wks.Range("D21").Value 'in Spalte A gesuchter Wert
Zeile = 0
Text = "nichts gefunden"
With wks
For I = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row
If .Cells(I, "A") = Finden Then
If Zeile = 0 Then
Zeile = Zeile + 1
ReDim Ergebnis(1 To Zeile)
Ergebnis(Zeile) = .Cells(I, "B")
Text = Ergebnis(Zeile)
Else
doppelt = False
For J = 1 To UBound(Ergebnis)
If .Cells(I, "B") = Ergebnis(J) Then
doppelt = True
Exit For
End If
Next J
If doppelt = False Then
Zeile = Zeile + 1
ReDim Preserve Ergebnis(1 To Zeile)
Ergebnis(Zeile) = .Cells(I, "B")
End If
End If
End If
Next I
End With
'Ergebnisse in einer Variablen zusammenfassen
If Text <> "nichts gefunden" Then
If UBound(Ergebnis) > 1 Then
For I = 2 To UBound(Ergebnis)
Text = Text & Chr$(10) & Ergebnis(I)
Next I
End If
End If
wks.Range("E21").Value = Text
End Sub

Anzeige
ERLEDIGT
10.11.2006 12:13:22
Stefan
Super,
danke für die prompten Antworten!
Es funktionieren beide Makros super. Jetzt muss ich mir die nur noch ummodeln für die grosse Tabelle.
Danke!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige