25.08.2020, 20:14 (Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2020, 20:14 von cysu11.)
Hallo zusammen,
ich benötige wieder mal Hilfe in Sachen VBA :)
In der angehängten Datei sind in den Spalten A und B Daten. In spalten E und F ebenfalls. Nun möchte ich per Knopfdruck, dass die Werte in Spalte E sortiert werden, so dass die Werte aus Spalte B mit denen aus Spalte E in der gleichen Zeile stehen, natürlich sollen die Werte in F mitsortiert werden. Am Ende wird in mein Beispiel ein Werte in Spalte B ohne dazugehörigen Wert in Spalte E bleiben, die Zeile soll dann rot markiert werden! Natürlich wenn es mehrere Werte gibt in B die nicht in E gefunden werden, sollen diese zeile auch rot markiert werden!
Ich hoffe ich habe mich einigermassen verständlich ausgedrückt! :)
With Range("E1:F21") .Sort Key1:=.Cells(1), Order1:=xlAscending, Header:=xlNo For Each rngZ In .Columns(1).Cells If rngZ.Value <> rngZ.Offset(, -3).Value Then rngZ.Resize(1, 2).Insert xlDown rngZ.Offset(-1, -4).Resize(1, 6).Interior.Color = vbRed 'RGB(255, 0, 0) End If Next rngZ End With End Sub
vielen Dank für deine Antwort, das funktioniert in meine Beispieldatei super! Das Problem ist, wenn die Werte in Spalte B nicht nummerisch sortiert sind, was ja vorkommt und darf auch nicht verändert werden, dann funktioniert das Ganze nicht! :( Wie kann ich den Code änder, damit das auch berücksichtigt wird?
Sub Makro1() Dim i As Long, j As Long Dim rngZ As Range Dim varQ As Variant Dim varZ As Variant
With Range("B1", Cells(Rows.Count, 2).End(xlUp)) varQ = .Offset(, 3).Resize(, 2).Value ReDim varZ(1 To UBound(varQ), 1 To 2) For i = 1 To UBound(varQ) If Len(varQ(i, 1)) Then j = Application.Match(varQ(i, 1), Columns(2), 0) If j Then varZ(j, 1) = varQ(i, 1) varZ(j, 2) = varQ(i, 2) End If End If Next i .Offset(, 3).Resize(UBound(varZ, 1), UBound(varZ, 2)).Value = varZ .Offset(, 3).EntireColumn.SpecialCells(xlCellTypeBlanks).EntireRow.Interior.Color = vbRed End With End Sub
und zweite Frage. es werden je nachdem wie viele rot markiert werden auch entsprechend viele Zeilen unter der Tabelle rot markiert, das sollte nicht sein!?
also ich kann mir das nicht erklären, aber wenn ich z.B. in A23 bis A30 irgendwas eintrage und dann wieder rauslösche und dann den Code starte dann werden diese Zeilen mit rot gefärbt!? Auch wenn ich z.B. diese Zellen nur farblich markiere und dann die Farbe wieder entferne dann das Selbe!?
Kannst du das auch mal testen ob es bei Dir dann auch so ist?