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

Wenn Daten identisch, dann Zeile farblich markieren

Wenn Daten identisch, dann Zeile farblich markieren
22.11.2019 08:52:02
Soeren
Guten Morgen,
ich kopiere eine Tabelle mit folgendem Code, den ich per Recorder aufgezeichnet habe:

Sub Tabellenblatt_kopieren()
Tabellenblatt_kopieren Makro
Sheets("Tabelle1").Select
ActiveSheet.Buttons.Add(1.5, 17.25, 136.5, 43.5).Select
ActiveSheet.Buttons.Add(1.5, 63, 129, 43.5).Select
Sheets("Tabelle1").Copy Before:=Sheets(1)
End Sub

Ich befinde mich danach also im aktuellen Tabellenblatt "Tabelle1 (2)". Danach aktualisiere ich _ es mit folgendem Code:

Sub Aktualisieren()
Aktualisieren Makro
Workbooks(1).RefreshAll
Application.DisplayAlerts = False
Workbooks.Open Filename:="C:\Hs_Daten\Export\Belegdaten.csv", local:=True
ActiveWorkbook.SaveAs Filename:="C:\Hs_Daten\Export\Belegdaten.csv", local:=True, _
FileFormat:=xlCSVUTF8, CreateBackup:=False
ActiveWindow.Close
Workbooks(1).RefreshAll
End Sub

Das funktioniert soweit sehr gut und muss auch in UTF8 gespeichert und erneut aktualisiert werden. Jetzt habe ich folgendes "Problemchen". In Spalte A stehen Auftragsnummern. Wenn diese Auftragsnummern nun mit denen in der Ursprungstabelle "Tabelle1", Spalte A, ab Zeile 2 übereinstimmen, möchte ich die ganze Zeile von Spalte A bis Spalte J farblich markieren (z.B. Indexfarbe 45).
Danach würde ich die Ursprungstabelle "Tabelle1" löschen und die aktuelle Tabelle "Tabelle1 (2)" in "Tabelle1" umbenennen.
Könnt Ihr mir mit der Zeilenmarkierung helfen?
Mit freundlichen Grüßen
Sören

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

Betreff
Datum
Anwender
Anzeige
AW: Wenn Daten identisch, dann Zeile farblich markieren
22.11.2019 10:35:16
Soeren
Ich habe eine Lösung gefunden.
AW: Wenn Daten identisch, dann Zeile farblich markieren
22.11.2019 10:44:04
SF
Hola,
magst du die auch zeigen? Das könnte evtl anderen helfen die ein ähnliches Problem haben.
Gruß,
steve1da
AW: Wenn Daten identisch, dann Zeile farblich markieren
22.11.2019 15:18:47
Soeren
Ja, natürlich. Es hat sich auch durch "try and error" etwas im bisherigen Code verändert. Ausserdem hat sich gezeigt, dass eine Markierung nur der iedentischen Werte in Spalte A sinnvoller ist, als die ganze Zeile zu markieren.
Ich habe 5 Teil-Makros erstellt und lasse diese in einem zusammen ablaufen:
Sub Alles_Aktualisieren()
' Alles_Aktualisieren Makro
Application.ScreenUpdating = False
Call Tabelle_kopieren
Call Belegmarkierung_loeschen1
Call Aktualisieren
Call Gleiche_Belegnummer
Call Tabelle_loeschen
Application.ScreenUpdating = True
End Sub
Die einzelnen Makros sind wiefolgt aufgebaut:
1. Ich kopiere die aktuelle Tabelle:
Sub Tabelle_kopieren()
' Tabelle_kopieren Makro
Sheets("Tabelle1").Select
Sheets("Tabelle1").Copy Before:=Sheets(1)
Sheets("Tabelle1").Select
End Sub
2. Die bisherige Markierung der Belegnummern wird gelöscht:
Sub Belegmarkierung_loeschen1()
' Belegmarkierung_loeschen1 Makro
Columns("A:A").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
3. Die offene Tabelle "Tabelle1" wird aktualisiert:
Sub Aktualisieren()
' Aktualisieren Makro
Range("E5").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Application.DisplayAlerts = False
Workbooks.Open Filename:="C:\Hs_Daten\Export\Belegdaten.csv", local:=True
ActiveWorkbook.SaveAs Filename:="C:\Hs_Daten\Export\Belegdaten.csv", local:=True, _
FileFormat:=xlCSVUTF8, CreateBackup:=False
ActiveWindow.Close
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub
4. Doppelte Belegnummern werden mit der kopierten Tabelle verglichen und markiert:
Sub Gleiche_Belegnummer()
' Gleiche_Belegnummer Makro
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Dim rngQ As Range
Dim rngZ As Range
Dim zellQ As Range
Dim zellZ As Range
Set wksQ = Worksheets("Tabelle1")
Set wksZ = Worksheets("Tabelle1 (2)")
Set rngQ = wksQ.Range("A2:A" & wksQ.Cells(wksQ.Rows.Count, 1).End(xlUp).Row)
Set rngZ = wksZ.Range("A2:A" & wksZ.Cells(wksZ.Rows.Count, 1).End(xlUp).Row)
For Each zellQ In rngQ
For Each zellZ In rngZ
If zellQ = zellZ Then
zellQ.Interior.ColorIndex = 43 'Blau
End If
Next
Next
End Sub
5. Anschließend wird die kopierte Tabelle wieder gelöscht:
Sub Tabelle_loeschen()
' Tabelle_loeschen Makro
Sheets("Tabelle1 (2)").Select
ActiveWindow.SelectedSheets.Delete
End Sub
Bei Verbesserungsvorschlägen bin ich natürlich sehr dankbar. Wichtig ist mir in erster Linie, dass es läuft und das tut es bisher. Generell bin ich sehr dankbar für die Hilfe, die ich hier erhalte und wünsche ein schönes Wochenende!
Beste Grüße
Anzeige
AW: Wenn Daten identisch, dann Zeile farblich markieren
22.11.2019 15:41:03
Werner
Hallo Soeren,
hier mit nur einer Schleife über die Daten der Quelltabelle.
Sub Gleiche_Belegnummer()
' Gleiche_Belegnummer Makro
Dim wksQ As Worksheet, wksZ As Worksheet
Dim rngQ As Range, rngZ As Range
Dim zellQ As Range, zellZ As Range
Set wksQ = Worksheets("Tabelle1")
Set wksZ = Worksheets("Tabelle1 (2)")
Set rngQ = wksQ.Range("A2:A" & wksQ.Cells(wksQ.Rows.Count, 1).End(xlUp).Row)
Set rngZ = wksZ.Range("A2:A" & wksZ.Cells(wksZ.Rows.Count, 1).End(xlUp).Row)
For Each zellQ In rngQ
If WorksheetFunction.CountIf(rngZ, zellQ.Value) > 0 Then
zellQ.Interior.ColorIndex = 43 'Blau
End If
Next
Set wksQ = Nothing: Set wksZ = Nothing: Set rngQ = Nothing: Set rngZ = Nothing
End Sub
Und die mit Set gesetzten Variablen sollte man besser am Ende auch wieder leeren.
Gruß Werner
Anzeige
AW: Wenn Daten identisch, dann Zeile farblich markieren
22.11.2019 17:49:54
Soeren
Danke
Gerne u. Danke für die Rückmeldung. o.w.T.
22.11.2019 20:25:27
Werner

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige