Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Tabellen vergleichen
#1
Hallo Leute.

Ich habe ein komplexes Problem und bekomme es einfach nicht auf die Kette.
Ich habe zwei Tabellen "LV_MASTER" und "LV_KUNDE" und ich möchte jetzt meinen Master an den Kunden anpassen, indem ich einfach die Positionen, die der Kunde nicht beinhaltet, in meinem Master ausblende.
Ich habe dazu auch schon etwas geschrieben, aber das Ergebnis ist leider nicht so astrein

Code:
Sub LV(control As IRibbonControl)


Dim rng As Range, rngF As Range, rngFind As Range, rngDel As Range
Dim objSh1 As Worksheet, objSh2 As Worksheet


Set objSh1 = Sheets("LV_MASTER") 'Tabelle in der gesucht und ausgeblendet wird
Set objSh2 = Sheets("LV_KUNDE") 'Tabelle mit Vergleichsdaten


With objSh1
 Set rngFind = .Range("A6:C" & .Cells(.Rows.Count, 1).End(xlUp).Row)
End With

For Each rng In rngFind
 Set rngF = objSh2.Range("A:C").Find(What:=rng, LookAt:=xlWhole)
 If rngF Is Nothing Then
   If rngDel Is Nothing Then
     Set rngDel = rng.EntireRow
   Else
     Set rngDel = Union(rngDel, rng.EntireRow)
   End If
 End If
Next

If Not rngDel Is Nothing Then rngDel.EntireRow.Hidden = True

Set objSh1 = Nothing
Set objSh2 = Nothing
Set rngFind = Nothing
Set rngF = Nothing
Set rngDel = Nothing

End Sub

Ich möchte eigentlich den Zellbereich ab A6 bis C vergleichen.
[code][/  Set rngFind = .Range("A6:C" & .Cells(.Rows.Count, 1).End(xlUp).Row)
code]
Hier setzte ich aber nur auf Spalte 1 also A.

Geht das überhaupt? Kann mir jemand sagen, was ich wie anpassen müsste?
Vielen Dank für Eure Unterstützung.

Gruß
Wolf
Antworten Top
#2
Hallo,

anstelle deines Quelltextes, der nach deiner Aussage ohnehin nicht das macht, was er soll, wäre ein Blick auf deine Listen, gerne mit Wunschergebnis, besser gewesen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallöchen,

Zitat:Set rngFind = .Range("A6:C" & .Cells(.Rows.Count, 1).End(xlUp).Row)
Hier setzte ich aber nur auf Spalte 1 also A.

Stimmt nicht. Du hast schon A bis C, schaust aber nur in Spalte A, wo die letzte belegte Zeile ist.

Falls Du jedoch in den 3 Spalten nach der letzen schauen willst, könntest Du es z.B. so tun:

… WorkSheetFunction.Max(.Cells(.Rows.Count, 1).End(xlUp).Row, .Cells(.Rows.Count, 2).End(xlUp).Row, .Cells(.Rows.Count, 3).End(xlUp).Row)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • WeisserWolf611
Antworten Top
#4
(25.01.2019, 12:30)Klaus-Dieter schrieb: Hallo,

anstelle deines Quelltextes, der nach deiner Aussage ohnehin nicht das macht, was er soll, wäre ein Blick auf deine Listen, gerne mit Wunschergebnis, besser gewesen.

Total guter Lösungsvorschlag... Läd man eine Datei hoch, kommen Antworten wie "Denk doch mal nach vorher, wo ist denn dein Quelltext", zeigt man seinen Code auch wieder nicht richtig...

(25.01.2019, 21:56)schauan schrieb: Stimmt nicht. Du hast schon A bis C, schaust aber nur in Spalte A, wo die letzte belegte Zeile ist.
genau das meinte ich, die ",1" legt ja die Spalte auf A fest, hab mich etwas unglücklich ausgedrückt :)
Dein Code funktioniert einwandfrei, vielen Dank dafür.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste