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

Einträge unter Bedingung hervorheben

Einträge unter Bedingung hervorheben
24.07.2015 12:56:08
Adrian
Hallo nochmal,
ich habe mir mittlerweile wenigstens teilweise selbst helfen könnten und stehe nun vor diesem problem:

Option Explicit
Private Sub abgleich()
Dim DupliArr As Variant, MasterArr As Variant, LZ1 As Long, LZ2 As Long, ZeileD As Long, ZeileU  _
_
As Long, ZeileE As Long, ZeileV As Long, sh1 As Worksheet, sh2 As Worksheet, intLetzteZeile As  _
Integer
Set sh1 = Sheets(2)
Set sh2 = Sheets(1)
LZ1 = IIf(IsEmpty(sh1.Cells(sh1.Rows.Count, 1)), sh1.Cells(sh1.Rows.Count, 1).End(xlUp).Row,  _
sh1.Rows.Count) 'Quellbereich
LZ2 = IIf(IsEmpty(sh2.Cells(sh2.Rows.Count, 1)), sh2.Cells(sh2.Rows.Count, 1).End(xlUp).Row,  _
sh2.Rows.Count) 'Zielbereich
DupliArr = sh1.Range("A1:A" & LZ1)
MasterArr = sh2.Range("A1:A" & LZ2)
sh2.Range("A2:A" & LZ2).Interior.ColorIndex = 0 'sauber machen
sh2.Range("S2:S" & LZ2).Interior.ColorIndex = 0
sh2.Range("W2:W" & LZ2).Interior.ColorIndex = 0
For ZeileD = 2 To LZ2
For ZeileU = 2 To LZ1
If sh2.Cells(ZeileD, 1).Value = sh1.Cells(ZeileU, 1).Value Then        'abgleich
sh2.Cells(ZeileD, 1).Interior.ColorIndex = 6
End If
Next ZeileU
Next ZeileD
End Sub
Hier markiere ich erfolgreich alle Einträge aus Spalte A aus Sheets(1), die in Sheets (1) und (2) vorhanden sind.
Ich bekomme es aber par tout nicht gebacken, nun genau die anderen (nicht in sheets(2) vorhandenen Einträge in sheets(1)) hervorzuheben, obwohl es doch eigentlich nur noch ein Katzensprung sein kann... oder?
Lieben Gruß

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einträge unter Bedingung hervorheben
24.07.2015 13:14:46
Rudi
Hallo,
dann heb doch erst alle Zellen so hervor als ob sie nicht in Sheet2 vorhanden wären.
Gruß
Rudi

AW: Einträge unter Bedingung hervorheben
24.07.2015 13:21:14
Adrian
Hi Rudi und danke für den Tip!
Sowas hatte ich mir auch schon überlegt, aber hatte gehofft, dass man diese Schleife einfach irgendwie umbauen könnte? Würde mir auch für die Zukunft eher weiter helfen...

AW: Einträge unter Bedingung hervorheben
24.07.2015 13:37:58
Rudi
Hallo,
anstatt Doppelschleife besser per Zählenwenn() vergleichen.
  For ZeileD = 2 To LZ2
If WorksheetFunction.CountIf(sh1.Columns(1), sh2.Cells(ZeileD, 1).Value) > 0 Then     ' _
abgleich
sh2.Cells(ZeileD, 1).Interior.ColorIndex = 6  'vorhanden
Else
sh2.Cells(ZeileD, 1).Interior.ColorIndex = 10 'nicht vorhanden
End If
Next ZeileD

Gruß
Rudi

Anzeige
AW: Einträge unter Bedingung hervorheben
27.07.2015 09:19:54
Adrian
Moin Rudi und vielen Dank! Genau so hatte ich mir das vorgestellt :-P Funktioniert super!
Jetzt noch eine challenge, und zwar hatte ich mich selbst an deinem Code versucht um sie so umzustellen, dass er mir nicht verhandene Einträge aus der Quelldatei sucht und mit neuer Zeile in die Zieldatei schreibt. Das sah bei mir dann so aus:

For ZeileU = 2 To LZ1
If WorksheetFunction.CountIf(sh2.Columns(1), sh1.Cells(ZeileU, 1).Value) > 0 Then     '  _
abgleich
sh2.Range("A2").End(xlDown).Offset(1, 0).EntireRow.Insert
'sh1.Cells(ZeileU, 1).EntireRow.Copy Destination:=sh2.Range("A2" & LZ2).End(xlDown),  _
Paste:=xlValues
sh1.Cells(ZeileU, 1).EntireRow.Copy
sh2.Range("A2:A" & LZ2).End(xlDown).PasteSpecial Paste:=xlPasteValues
End If
Next ZeileU
Er scheint zwar die entsprechenden Einträge zu finden, fügt aber nur leere Zeilen (Entsprechend der Anzahl der neuen Einträge in der Quelle) im Ziel ein... Hast du noch einen Rat?
Gruß
Adrian

Anzeige
AW: Einträge unter Bedingung hervorheben
27.07.2015 10:50:17
Rudi
Hallo,
ich würde sagen:
sh2.Range("A2").End(xlDown).OffSet(1).PasteSpecial Paste:=xlPasteValues
Gruß
Rudi

AW: Einträge unter Bedingung hervorheben
27.07.2015 11:20:30
Adrian
Ein Traum!!! Herzlichsten Dank :)

AW: Einträge unter Bedingung hervorheben
27.07.2015 12:11:29
Adrian
Ohoh Rudi,
ich habe grade gemerkt, dass der Code (zumindest bei meinem Fall) gar nicht kontrolliert, ob die Nummer in Spalte A bereits vorhanden ist. Er schnappt sich eienfach alle vorhandenen Quelleinträge und kopiert sie zum Ziel (und verursacht dadurch dopplungen)...

Set sh1 = "Quelle"
Set sh2 = "Ziel"
LZ1 = IIf(IsEmpty(sh1.Cells(sh1.Rows.Count, 1)), sh1.Cells(sh1.Rows.Count, 1).End(xlUp).Row,  _
sh1.Rows.Count) 'Quellbereich
LZ2 = IIf(IsEmpty(sh2.Cells(sh2.Rows.Count, 1)), sh2.Cells(sh2.Rows.Count, 1).End(xlUp).Row,  _
sh2.Rows.Count) 'Zielbereich
For ZeileU = 2 To LZ1
If WorksheetFunction.CountIf(sh2.Columns(1), sh1.Cells(ZeileU, 1).Value) > 0 Then     '  _
abgleich
sh2.Range("A2").End(xlDown).Offset(1, 0).EntireRow.Insert 'zeile einfügen
sh1.Cells(ZeileU, 1).EntireRow.Copy                     'neue zeilen kopieren
sh2.Range("A2").End(xlDown).Offset(1).PasteSpecial Paste:=xlPasteAll 'neue Zeilen einfügen
sh2.Cells(ZeileD, 1).Interior.ColorIndex = 53           'farbig hervorheben
End If
Next ZeileU
Muss die If-Bedingung evtl noch angepasst werden?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige