Office: Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter

Helfe beim Thema Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich arbeite auf Grundlagenniveau und mein Makro soll Folgendes: Tabellenblatt 1: In Spalte B sind 5-stellige Werte Tabellenblatt 2: In... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von aysxdcfv, 27. Juli 2017.

  1. Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter


    Hallo zusammen,

    ich arbeite auf Grundlagenniveau und mein Makro soll Folgendes:
    Tabellenblatt 1: In Spalte B sind 5-stellige Werte
    Tabellenblatt 2: In Spalte C sind die gleichen 5-stelligen Werte. Jedoch sind weitere 5-stellige Werte hinzugekommen. Vierstellige Werte sind auch vorhanden (aber unrelevant)

    Mein bisheriges Vorgehen:
    Tabellenblatt 3: Hier soll das Makro die Werte aus Tabellenblatt 1 schreiben und mit VLookup die Werte aus Tabellenblatt 2 gegenüberstellen um übersichtlich zu zeigen, welche Werte hinzugekommen sind (Das klappt auch soweit). Später sollen die neu hinzugekommenen Werte ro markiert werden.

    Jetzt habe ich nur folgendes Problem:
    Ich möchte einen Wert aus TB1 mit einem Wert aus TB2 vergleichen, da bekomme ich ständig eine Fehlermeldung - Typen unverträglich!
    Wenn man den Code verkürzen kann, bin ich für jeden Tip dankbar.

    Anbei mein Code:

    Teil 1: Dieser Teil überprüft in Tabellenblatt 2, ob der Wert 5-stellig ist, da auch 4-stellige Werte vorkommen.

    If Worksheets("X").Cells(Z, 4).NumberFormatLocal = "00000" Then
    Worksheets("Tabelle3").Cells(K, 2).Value = Worksheets("X").Cells(Z, 4).Value
    Worksheets("Tabelle3").Cells(K, 2).NumberFormatLocal = "00000"

    Worksheets("Tabelle3").Cells(K, 3).Value = Application.VLookup(Worksheets("X").Cells(Z, 4).Value, Worksheets("Y").Range("D*biggrin.gif*"), 1, 0)
    Worksheets("Tabelle3").Cells(K, 3).NumberFormatLocal = "00000"

    Teil 2: Hier wird überprüft, ob kein Werte ein #NV-Fehler ist. Leider nur für eine Zeile. Wäre schön, wenn man das mit einer Schleife lösen kann...

    If Worksheets("Tabelle3").Range("B2") = Worksheets("Tabelle3").Range("C2") And Worksheets("Tabelle3").Range("B2") > 0 Then
    Range("B2").Interior.Color = vbGreen
    Range("C2").Interior.Color = vbGreen
    ElseIf Worksheets("Tabelle3").Range("B2") Worksheets("Tabelle3").Range("C2") And Worksheets("Tabelle3").Range("B2") > 0 Then
    Range("C2").Interior.Color = vbRed
    MsgBox "ACHTUNG" & vbCrLf & "Text 1 "
    ElseIf Worksheets("Tabelle3").Range("c2") Worksheets("Tabelle3").Range("b2") And Worksheets("Tabelle3").Range("c2") > 0 Then
    Range("b2").Interior.Color = vbYellow
    MsgBox "ACHTUNG" & vbCrLf & "Text2 "
    End If

    Z = Z + 1
    K = K + 1
    End If
    Next Z
    End Sub

    :)
     
    aysxdcfv, 27. Juli 2017
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    nur wenige schauen auf Deinen Rechner und sehen die Datei.
    Ich möchte gerne den Fehler im Original sehen.

    Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

    Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.

    Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
    Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter logo_hajo3.gif
     
    Hajo_Zi, 28. Juli 2017
    #2
  3. Anfängerfehler *Smilie

    Danke für den Hinweis. Die Datei ist angehangen.
     
    aysxdcfv, 29. Juli 2017
    #3
  4. Hajo_Zi
    Hajo_Zi Erfahrener User

    Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter

    ich bin dann raus, da meine Beiträge nicht komplett gelesen werden.
    Das wird schon seinen Grund haben.
     
    Hajo_Zi, 29. Juli 2017
    #4
  5. Hallo aysxdcfv (wie spricht man das aus ?),

    der Anhang enthält meinen Lösungsvorschlag.

    Anmerkungen:
    - Daten in Tabelle 2 starteten in Zeile 4 statt 5
    - Da die verschiedenen Ergebniszustände farblich markiert werden, ist m. E. keine MsfBox-Anweisungen mehr
    - in Tabelle 3 nutze ich X und Y als Hilfsspalten, die aber anschließend wieder gelöscht werden.

    Gruß
    Aloys
     
    aloys78, 29. Juli 2017
    #5
  6. Moin
    Einen hab ich auch noch.
    Es werden in Tabelle3 SpalteB alle Nummern aufgelistet und entsprechend gefaerbt. Wobei die Zahlen, die in beiden Blaettern vorhanden sind, nur einmal aufgefuehrt werden.
    Code:
    gruss hary
     
  7. Also erstmal besten Danke für die Unterstützung.

    @ aloys78: Dein Code ist super. Ich verstehe ihn zwar noch nicht ganz, aber er funktioniert perfekt. Was ich noch versuchen möchte ist, die Hilfstabelle irgendwie herauszubekommen.

    @ hary: Mit deinem Code werde ich noch beschäftigen und ein Rückmeldung geben.

    Danke nochmal
     
    aysxdcfv, 30. Juli 2017
    #7
  8. Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter

    Hallo,
    Wenn Du dazu noch Hilfe benötigst, dann melde Dich einfach !

    Gruß
    Aloys
     
    aloys78, 1. August 2017
    #8
  9. OK, ich bin ehrlich. Ich habe Probleme beim Basteln des Codes.

    Aloys78 ich muss deine Hilfe nochmal in Anspruch nehmen. Ich habe angefangen, deinen Code anzupassen, weil er gut zu lesen ist.

    Was ich jedoch versucht habe ist folgendes:

    Schritt 1: Die 5 stelligen Werte aus Tab1 und Tab 2 sollen unabhängig voneinander erstmal gefunden und in Tabelle 3 als Hilfstabelle übertragen werden. Zu den 5-telligen Werten stehen im Tab1 und Tab2 jeweils in der gleichen Spalte noch zwei andere Werte (WertB und WertC). Im Tabellenblatt 3 sollen diese Werte mit übertragen werden. (Das habe ich hinbekommen).

    Schritt 2: Jetzt erst (nachdem alle Werte in Tab3 gefiltert sind) sollen die Werte im Tab3 verglichen werden:

    Wenn der 5-stellige Wert in Tab1 und Tab2, dann soll mit diesem Wert in Tab1 und in Tab2 nichts passieren.

    Wenn 5-stelliger Wert in Tab1 und NICHT in Tab2, dann soll die Zelle dieses Wertes in Tab1 rot werden.

    Wenn 5-stelliger Wert NICHT in Tab1, ABER in Tab2, dann soll die Zelle dieses Wertes in Tab2 rot werden.

    Schritt 3: Es wäre schön, wenn am Ende ein Fenster erscheint, indem die rot markierten Werte in Tab1 und Tab2 angezeigt werden.

    Das wars auch erstmal schon *boah *biggrin.gif*
     
    aysxdcfv, 3. August 2017
    #9
  10. Hallo,

    die Beschreibung zur Markierung der Werte in Tab 1 und 2 ist klar. Dazu braucht man die Hilfstabelle Tab 3 nicht.

    Es wäre aber hilfreich, wenn Du eine aktuelle Beispieldatei mit Tab 1 und 2 zur Verfügung stellen würdest.

    Schritt 3 habe ich noch nicht verstanden:
    Wie soll das konkret aussehen ?

    Außerdem: um wieviel Zeilen geht es in den Tab 1 und 2 (Größenordnung) ?

    Gruß
    Aloys
     
    aloys78, 3. August 2017
    #10
  11. Ich habe meine Testdatei angehangen.

    Es geht insgesamt in Tab1 um ca. 4000 und in Tab2 um ca. 8000 Zeilen.

    Mit Schritt 3 meinte ich eine Msg Box. Aber vergiss das mal, das kann entfallen habe ich gerade beschlossen. Denn wenn in Tab1 und Tab2 die Änderungen rot markiert sind, ist das völlig ausreichend.
     
    aysxdcfv, 4. August 2017
    #11
  12. Hallo,

    irgendwie passt deine aktuelle Datei nicht zur Beschreibung in deinem vorletzten Beitrag.
    Da ging es um den Suchbegriff in Sp A, der sowohl von Tab1 als auch von Tab2 aus auf Paarigkeit zu prüfen wäre.

    Aber - in Deiner Datei sind die Werte in Sp A nur 2-stellig und außerdem nicht eindeutig, d.h. die gleiche Nummer würde x-mal rot markiert werden.
    Außerdem sind die Werte in Sp A nicht mehr aufsteigend sortiert.

    Kannst Du das mal aufklären ?

    Gruß
    Aloys
     
    aloys78, 4. August 2017
    #12
  13. Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter

    Stimmt.
    Also sorry, es war für mich eine Testdatei zum Rumbrobieren. Weil die Nummern anfangs oft gelöscht wurden durch falschen Code und es einfacher war, die Nummern zweistellig einzutragen zum Testen.
    Die Nummern waren in der ersten Datei nur zufällig der Größe nach sortiert, das wird real nicht zutreffen. Daher würde ich gerne anfangs eine Prüfung vornehmen, ob die Zahlen x-stellig (sind) und die Zahl mit den zwei Zahlen in den zwei Spalten danach (das trifft auf jeder x-stelligen Zahl zu) nebeneinander rüberkopieren in Tab3 (Aufgrund der Sensibilität der Daten in Tab1 und Tab2)

    Im Prinzip ist es fast egal, ob der Code 2- oder fünfstellige Nummern sucht. Im Prinzip ist es auch egal, ob der Code ab Zeile 1 oder eine anderen oder ab Spalte A oder eine andere anfängt zu suchen. Ich müsste anschließend die Anpassung vornehmen, weil die ganaue Suchmatrix noch ungewiss ist. Die Bezeichnung Tab1 und Tab2 war nur ein Synonym für die Tabellenblätter, die beschriftet sind wie anfangs erwähnt.

    Im nächsten Schritt (x-stellige Zahlen wurden in Tab3 nebeneinander kopiert) soll überprüft werden, ob diese x-stellig Zahl (Bspw. Zahlen aus Tab1 in Spalte A, B und C und Zahlen aus Tab2 in Spalte D, E und F) in Tab3 Spalte A in Tab2 vorkommt. Ist dies der Fall, soll diese Zahl und die zwei Zahlen daneben nur aus Tab3 gelöscht weren. Ist diese nicht vorhanden, soll diese Zahl in Tab2 rot markiert werden und kann aus Tab 3 mit den anderen zwei Zahlen gelöscht werden.

    Ich hoffe, dir damit geholfen zu haben.
     
    aysxdcfv, 6. August 2017
    #13
  14. Hallo,
    Auf meine Fragen bist Du m.E. nicht richtig eingegangen.

    Natürlich ist es egal, ob der Schlüsselbegriff 2 - oder 5-stellig ist, nicht aber, ob dieser Wert ein- oder mehrdeutig ist.

    Außerdem ist für mich immer noch unklar, wozu Du Tabelle3 brauchst, die nach Deinem voletzten Beitrag eine Hilfstabelle sein soll.

    Nach meinem jetzigen Vesrtändnis sollen unpaarige Nummern in Tabelle 1 und 2 rot markiert werden; dazu brauche ich diese Hilfstabelle nicht.

    Wird diese Tabelle 3 aber als eigenes Ergebnis benötigt, dann solltest Du Deine Beispiel-Datei um eine Tabelle 3 mit entsprechenden Daten ergänzen und daran die verschiedenen Möglichkeiten erläutern.

    Gruß
    Aloys
     
    aloys78, 6. August 2017
    #14
Thema:

Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter

Die Seite wird geladen...
  1. Mit VBA zwei Werte vergleichen aus verschiedenen Tabellenblätter - Similar Threads - VBA Werte vergleichen

  2. Werte per VBA automatisch übertragen und fortlaufend speichern

    in Microsoft Excel Hilfe
    Werte per VBA automatisch übertragen und fortlaufend speichern: Moin, ich habe da mal eine bitte: wie kann ich diesen Code dazu bringen von einer bestimmten Datei automatische Werte in eine andere Datei kopiert? Ich kann zwar die Werte in derselben Tabelle...
  3. Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.)

    in Microsoft Excel Hilfe
    Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.): Hallo, ich benötige Hilfe für ein Problem, welches ich leider selbst schwerlich als Anfänger nicht lösen kann: Ich möchte von dem Tabellenblatt "Tabelle1" aus den Zellen B8:B14, K8:K14, B18:B25,...
  4. Pluszeichen bei pos. Werten mit benutzerdef. Formaten in markiertem Bereich voranstellen

    in Microsoft Excel Hilfe
    Pluszeichen bei pos. Werten mit benutzerdef. Formaten in markiertem Bereich voranstellen: Hallo zusammen, ich habe folgendes Problem: Ich möchte in hunderten Tabellen bzw. tausenden Zellen positiven Werten ein "+"-Zeichen voranstellen (also z.B. "+0,4" statt "0,4") und würde das...
  5. Zeilen mit bestimmten Wert in andere Tabelle (VBA Makro)

    in Microsoft Excel Hilfe
    Zeilen mit bestimmten Wert in andere Tabelle (VBA Makro): Hallöchen, ich stehe aktuell vor folgendem Problem: Wir haben ein Excel Makro, das über die Zeiterfassung alle Mitarbeiter und ihre Stunden in verschiedenen Positionen auflistet. Eine abgespeckte...
  6. Sperren von Zellen basierend auf Werten in einer anderen Zelle

    in Microsoft Excel Hilfe
    Sperren von Zellen basierend auf Werten in einer anderen Zelle: Hallo zusammen, ich brauche ein wenig "VBA-Hilfe" von den Fachleuten. Folgenden Code habe ich mit meinem Halbwissen zusammen gebastelt. Private Sub Worksheet_Change(ByVal Target As Range) If...
  7. VBA Problem = Werte in 2 Dateien vergleichen und Zeilen kopieren

    in Microsoft Excel Hilfe
    VBA Problem = Werte in 2 Dateien vergleichen und Zeilen kopieren: Hallo Community, ich habe folgendes Problem. ich habe eine Liste in dieser sind Artikel aufgezählt. In Spalte A sind spezielle Nummern zu jedem Artikel (wie z.B. in A2 = 1348237 , A3 =...
  8. VBA - Zwei Spalten Vergleichen, Bestimmter Wert - Bestimmte Ausgabe

    in Microsoft Excel Hilfe
    VBA - Zwei Spalten Vergleichen, Bestimmter Wert - Bestimmte Ausgabe: Guten Tag Zusammen Ich bin leider im Thema VBA sehr unerfahren und kriege folgende Hürde nicht gelöst. Ich habe zwei Excel Dateien: Export.xlsx und Darstellung.xlsm In der Datei Export habe ich...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden