Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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

Vergleich zweier Listen per VBA

Vergleich zweier Listen per VBA
28.02.2016 16:45:50
roderh

Hallo,
könnte mir bitte jemand helfen?
Ein Makro soll eine Namensliste (hier in der F-Spalte) vergleichen mit einer anderen Liste (hier in der H-Spalte). Wenn der Name in der H-Spalten-Liste auftaucht, dann soll das Makro zwei Spalten vor der Namensliste (F-Spalte) ein "v" schreiben, ansonsten nicht. Das Ergebnis soll dann so aussehen, wie in der Beispieldatei gezeigt (die blauen "v" in der C-Spalte).
Anmerkungen:
Es sollte ein Makro sein, also nur 'auf Aufforderung' in die C-Spalte schreiben.
Eines meiner Probleme ist übrigens, dass meine Makros nicht die vollständige Zelle erfassen, so dass z.B. auch vor "Müllerschmidt" ein "v" gesetzt wird, bloß weil in der Kontrollliste "Müller" vorkommt.
Vielen Dank im Voraus!
Vielen Dank im Voraus!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergleich zweier Listen per VBA
28.02.2016 17:58:08
Michael Weber
Hallo,
Da ich kein .xlsm Dateien öffne, hier der Versuch einer "blinden" Antwort:
Sub sFind()
Dim rng as range
With columns("F")
Lr = .cells(.rows.count).end(xlup).row
End with
With columns("H")
For i =1 to lr
If not isempty(cells(i, "F")) then
Set rng = .find(cells(i, "F"), lookat:=xlwhole)
If not rng = nothing then cells(i, "C") = "v"
End if
End with
Set rng = nothing
End Sub

AW: Vergleich zweier Listen per VBA
28.02.2016 18:32:45
roderh
Vielen Dank für die Hilfe!
Leider kommt es bei der Ausführung zu einer Fehlermeldung
hier nochmal in xlsx:
https://www.herber.de/bbs/user/103954.xlsx

Anzeige
wundert mich nicht,
28.02.2016 18:45:09
Michael
Hi zusammen,
denn Michael deklariert seine Variablen auch nicht sauber: einmal schreibt er "Lr", einmal "lr".
Anbei anderer Ansatz mit "Dictionary", derweil das echt fix ist:
Option Explicit
Public Sub Vergleichen()
Dim o  As Object, namen As Variant
Dim Hvon&, Hbis&, Fvon&, Fbis& ' & heißt so viel wie As Long
Dim z&
Dim nametrim As String
Hvon = 2: Fvon = 2
Fbis = Range("F" & Rows.Count).End(xlUp).Row
Hbis = Range("H" & Rows.Count).End(xlUp).Row
Set o = CreateObject("Scripting.Dictionary")
namen = Range("H1:H" & Hbis)
For z = Hvon To Hbis:   o(Trim(namen(z, 1))) = 1: Next
If o.Count = 0 Or Fbis <= Fvon Then MsgBox "keine Werte gefunden": Exit Sub
namen = Range("F1:F" & Fbis)
For z = Fvon To Fbis
nametrim = Trim(namen(z, 1))
If nametrim <> "" Then
If o(nametrim) = 1 Then Range("C" & z) = "v"
End If
Next
Set o = Nothing
End Sub
Die Datei: https://www.herber.de/bbs/user/103956.xlsm
Schöne Grüße,
Michael

Anzeige
AW: Vergleich zweier Listen per VBA
28.02.2016 18:51:14
Michael Weber
Hallo,
Da ich auch ohne java eingebe, war eine Korrektur nicht möglich:
If not rng is nothing...
ansonsten bitte immer die Stelle des Fehlers angeben.
Mfg

AW: Vergleich zweier Listen per VBA
28.02.2016 18:54:18
roderh
Scheint so zu funktionieren!
Vielen Dank an Euch und viele Grüße!

116 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige