Thema Datum  Von Nutzer Rating
Antwort
09.06.2021 21:12:57 Anne
NotSolved
09.06.2021 22:21:48 Ulrich
NotSolved
10.06.2021 07:49:26 Gast31117
NotSolved
11.06.2021 08:32:27 Ulrich
NotSolved
11.06.2021 13:37:57 Anne
NotSolved
Blau Spalten vergleichen
11.06.2021 16:21:59 Ulrich
NotSolved
16.06.2021 23:43:20 Anne
Solved
17.06.2021 15:45:14 Ulrich
Solved

Ansicht des Beitrags:
Von:
Ulrich
Datum:
11.06.2021 16:21:59
Views:
474
Rating: Antwort:
  Ja
Thema:
Spalten vergleichen

Hallo Anne,

[quote]Das Problem ist, dass die Tabelle dynamisch ist, sprich Zeile 3 in der Tabelle alt, wird nie Zeile 3 in Tabelle neu sein[/quote] genau das kann ja diese Formel in Verbindung mit der bedingten Formatierung. Ich komme mit den Formeln

=ZÄHLENWENN(Report_Alt!A:A;A1)=0
=ZÄHLENWENN(Report_Alt!D:D;D1)=0

in der bedingten Formatierung auf das selbe Ergebnis wie mit VBA. Nur ist das halt IMHO viel praktischer, vorallem wenn man mit andern Menschen zusammenarbeitet (weil die Menschen das eher/besser kennen als VBA und weil die bedingte Formatierung auch nicht standardmäßig deaktiviert ist, und weil bedingte Formatierung keine Sicherheitsprobleme/Ängste auslöst ...)

 

=================
zu VBA:

sorry: Missverständnis. Wenn du die 1 im Code durch die 4 ersetzt, dann war nur die eine Zeile falsch. Hier mal der Code mit einer Variablen für die Spalte. Jetzt siehst du genau, wo ich die Variable benutzt habe.
Du kannst natürlich alles andere machen, als die Spalte über eine Inputbox einzugeben. Jetzt wird jedenfalls immer die gleiche Spalte auf den beiden Tabellenblättern verglichen.

Wenn du die Spalten A vergleichen möchtest, dann gibst du 1 an, für Spalte D eben 4.

Im Code siehst du jetzt genau wo überall "Spalte" steht. Da werden die Spaltennummern definiert.

 

Was anderes:

vntIn = wks1.UsedRange.Value

funktioniert immer. Wenn man allerdings keine Einträge in Spalte A hat, hat der "UsedRange" die Spalte A auch nicht mit dabei (leider stimmt das auch wieder nur meistens). Greifst du dann auf Elemente der Variablen vntIn mit Zeilen- und Spaltenummer so zu vntIn(Zeile, Spalte), dann stimmt die Spaltennummer nicht. Das gibt Probleme im Zusammenspiel mit dem restlichen Code.
Das selbe Problem besteht mit der Zeilennummer, wenn in Zeile 1 nichts steht. Damit da nichts schief läuft, habe ich das in deinem Code so abgeändert, dass du da in keinen Fehler rein läufst.

 

Option Explicit

Sub UnterschiedeIn2Färben()
Dim vntIn As Variant
Dim objDic As Object
Dim i&, Spalte As Long
Dim wks1 As Worksheet
Dim wks2 As Worksheet

Set wks1 = ThisWorkbook.Worksheets("Report_Alt")
Set wks2 = ThisWorkbook.Worksheets("Report_Neu")
Set objDic = CreateObject("Scripting.Dictionary")

'Das ist quasi das gleiche, aber du bekommst keine Probleme, wenn in Spalte A kein Eintrag sein sollte:
With wks1.UsedRange
    vntIn = Range(wks1.Cells(1, 1), wks1.Cells(.Row + .Rows.Count - 1, .Column + .Columns.Count - 1)).Value
End With

Spalte = InputBox("git die Spaltennummer an", , 4)

For i = LBound(vntIn, 1) To UBound(vntIn, 1)
    If Not objDic.Exists(vntIn(i, Spalte)) Then
        objDic.Add vntIn(i, Spalte), ""
    End If
Next

For i = 1 To wks2.Cells(Rows.Count, Spalte).End(xlUp).Row
    If Not objDic.Exists(wks2.Cells(i, Spalte).Value) Then
        wks2.Cells(i, Spalte).Interior.ColorIndex = 3
    End If
Next

End Sub

klappt's?

Grüße, Ulrich


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
09.06.2021 21:12:57 Anne
NotSolved
09.06.2021 22:21:48 Ulrich
NotSolved
10.06.2021 07:49:26 Gast31117
NotSolved
11.06.2021 08:32:27 Ulrich
NotSolved
11.06.2021 13:37:57 Anne
NotSolved
Blau Spalten vergleichen
11.06.2021 16:21:59 Ulrich
NotSolved
16.06.2021 23:43:20 Anne
Solved
17.06.2021 15:45:14 Ulrich
Solved