Office: Tabellenvergleich mittels VBA programmiert...

Helfe beim Thema Tabellenvergleich mittels VBA programmiert... in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe im beiliegender Datei ein Makro geschrieben, welches mir 2 Tabellen (Tabelle1 mit Tabelle2) miteinander vergleicht. Die Tabelle3... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von maxseidel, 5. August 2008.

  1. maxseidel Erfahrener User

    Tabellenvergleich mittels VBA programmiert...


    Hallo,

    ich habe im beiliegender Datei ein Makro geschrieben, welches mir 2 Tabellen (Tabelle1 mit Tabelle2) miteinander vergleicht.

    Die Tabelle3 gibt alle die Datensätze wieder, die in beiden Tabellen vorkommen.
    Die Tabelle4 gibt die Datensätze wieder, die in Tabelle1 aber nicht in Tabelle2 stehen.
    Die Tabelle5 gibt die Datensätze wieder, die in Tabelle2 aber nicht in Tabelle1 stehen.

    Zum Vergleich dient jeweils die Spalte "Primärschlüssel".

    Jetzt komme ich an einer Stelle nicht weiter beim Programmieren.
    Wenn ein Datensatz mehr als 1x in einer Tabelle vorkommt und in der anderen nicht, dann gibt mir mein Code den Datensatz nur 1x aus. Ich möchte aber, dass er mir alle Zeilen ausgibt, die in der einen vorkommen und in der anderen nicht.
    Hat jemand eine Idee, wie der Code abgeändert werden muss, damit das funktioniert? Ich komme da im Moment nicht weiter. Wenn ein Datensatz z. B 1x in der einen Tabelle steht und mehr als 1x in der anderen, dann muss ich das auch irgend wie merken. Wer hat eine hilfreiche Idee?
    Normalerweise sollte das ja nicht vorkommen, es handelt sich ja um einen Primärschlüssel, aber es können ja Fehler passieren und dann möchte ich das merken.

    Liebe Grüße
     
    maxseidel, 5. August 2008
    #1
  2. maninweb
    maninweb MVP für Microsoft Excel
    Hi maxseidel...

    wie Dunauch schon in Deinem Code verwendest, kannst Du das Error Objekt auswerten, wenn Du Elemente Deiner Collection hinzufügst.
    Da eine Collection nur eindeutige Einträge haben kann, könnte Dir dieser Beispielcode vielleicht weiterhelfen...

    Code:
    Public Sub test()
      
      Dim n As Long
      Dim s As String
      Dim c As Collection
      
      On Error Resume Next
      
      Set c = New Collection
      
      For n = 1 To 10
        
        c.Add CStr(n), "X" & CStr(n)
        
      Next n
      
      s = ""
      s = c("X12")
      
      If Err.Number <> 0 Then
      
        MsgBox "X1 war nicht drin"
        
      Else
        
        MsgBox "X1 bereits vorhanden = " & s
        
      End If
      
    End Sub
    
    PS: Code einrücken macht diesen deutlich lesbarer.

    Gruß
     
    maninweb, 5. August 2008
    #2
  3. maxseidel Erfahrener User
    Erst einmal ganz vielen Dank.

    Ich komme nicht so richtig mit diesem Code zu Recht, sorry.
    Kannst du mir den mal in meinen angepasst einfügen...? Das wäre echt lieb.

    [Die Ausgabe in einer MsgBox ist nicht so günstig, da es ja mehrere Datensätze sein könnten und ich diese ausdrucken möchte. Zum Teil muss ich sie, wenn sie in der einen Tabelle und nicht in der anderen stehen trotzdem erstmal dann in die andere einfügen (dazu kopiere ich die Zeilen). Der Primärschlüssel wird dann später etwas umgewandelt und wirklich zu einem Primärschlüssel. Dann muss ich später nur noch den Primärschlüssel ändern.]

    LG
    max
     
    maxseidel, 5. August 2008
    #3
  4. maninweb
    maninweb MVP für Microsoft Excel

    Tabellenvergleich mittels VBA programmiert...

    Hi maxseidel...

    gerne helfe ich Dir weiter, bin allerdings im Moment etwas unter Zeitdruck. Wenn's also ein paar Tage warten kann, wär's ok.
    Was natürlich nicht heißt, dass sich vielleicht auch jemand anderes findet, der weiterhilft.

    Gruß
     
    maninweb, 5. August 2008
    #4
  5. maxseidel Erfahrener User
    ich danke dir. ich habe da noch ein bisschen Zeit. Wäre echt toll, wenn du mir da helfen könntest, komme nämlich an dieser Stelle wirklich nicht weiter und habe schon lange darüber nachgedacht. Vielleicht denke ich auch irgend wie andauernd in die falsche Richtung.
    Also, bitte nicht vergessen, der Eintrag rutscht ja dann ziemlich schnell nach unten.
    LG
    max
     
    maxseidel, 5. August 2008
    #5
  6. maninweb
    maninweb MVP für Microsoft Excel
    Hi maxseidel...

    habe mal was programmiert und versucht möglichst viele Kommentare
    zu schreiben. Mein Ansatz ist jedoch ein anderer. Dieser basiert darauf,
    dass ich Collections zum Verwalten der Werte, der Zeilennummern und
    eines Indexes verwende. Doppler werden als kommaseparierte Liste
    geschrieben. Danach braucht man nur die Liste wieder splitten und
    hat das Ergebnis. Schaue Dir die Tabellen A, B und Ergebnis an sowie
    die Sub Vergleich_Neu().

    Gruß
     
    maninweb, 7. August 2008
    #6
  7. maxseidel Erfahrener User
    Kompliment - gefällt mir.

    Es gibt nur ein Problem: du hast in deiner Liste eine Durchschnittsmenge dargestellt, d.h. alle die Elemente, die in beiden Listen vorkommen. Das entspricht inhaltlich meiner Tabelle 3.
    Ich benötige jedoch vor allen eine Mengendifferenz, d.h. alle die Elemente, die einerseits in Tab1 und nicht in Tab2 und die andererseits in Tab 2 und nicht in Tab1 vorkommen. Das sind bei mir die Tabellen 4 und 5.

    Somit ist leider mein Problem trotz deines wirklich großen Engagementes nur teilweise gelöst. Vielleicht hast du ja noch Lust, dich meinem Problem weiter anzunehmen. Ich wäre dir sehr, sehr dankbar, denn dafür habe ich eben noch keine Lösung gefunden (es gibt aber bestimmt eine, denn SQL wertet ja solche sog. Outer Joins ja auch irgend wie aus...also muss es gehen, aber wie???)

    Liebe Grüße
     
    maxseidel, 8. August 2008
    #7
  8. maninweb
    maninweb MVP für Microsoft Excel

    Tabellenvergleich mittels VBA programmiert...

    Hi maxseidel ...

    die Collections bieten Dir auch diese Möglichkeit, die Abfragen am Ende
    müssen nur 'umgedreht' werden. Beispielhaft mal die Erweiterung.

    Gruß
     
    maninweb, 8. August 2008
    #8
Thema:

Tabellenvergleich mittels VBA programmiert...

Die Seite wird geladen...
  1. Tabellenvergleich mittels VBA programmiert... - Similar Threads - Tabellenvergleich mittels VBA

  2. Datenvergleich aus 2 Tabellen und Ausgabe Stundenlohn

    in Microsoft Access Hilfe
    Datenvergleich aus 2 Tabellen und Ausgabe Stundenlohn: Hallo Zusammen, Wir arbeiten mit Office 365 ich habe 2 Tabellen in Access (Stundenerfassung Mitarbeiter, Stundenlohn Mitarbeiter). Da die Stundenloehne durch Gehaltserhoehung und co....
  3. Hilfe / Lösungsansatz bei Tabellenvergleich

    in Microsoft Excel Hilfe
    Hilfe / Lösungsansatz bei Tabellenvergleich: Hallo liebe Community, Ich habe ein kleines Problem bei meiner Studienarbeit. --> siehe Beispieldatei: In der ersten Tabelle wird hinter den Gelb gefärbten Block manuell Daten ergänz die...
  4. Tabellenabgleich zweier Userlisten mit mehrfachen Einträgen

    in Microsoft Excel Hilfe
    Tabellenabgleich zweier Userlisten mit mehrfachen Einträgen: Liebes Forum, es geht um folgende Tabellen: (Office 2003) [ATTACH] Diese stehen beispielhaft für meine produktive Umgebung. Tabelle 1 ist der IST-Zustand einer riesigen Benutzerliste. Quasi...
  5. Tabellenvergleich

    in Microsoft Excel Hilfe
    Tabellenvergleich: Ein Hallo ins Forum, ich habe viele Forenbeiträge bzgl. Tabellenvergleich gelesen, aber leider konnte ich keine für mich passende Lösung finden bzw. anpassen. Die Spalten A&B und C&D gehören...
  6. Tabellenvergleich von min.20 Tabellen mit je 2 Ausgabewerten

    in Microsoft Excel Hilfe
    Tabellenvergleich von min.20 Tabellen mit je 2 Ausgabewerten: Hallo, Ich versuche nun schon seit Tagen mein Problem mit Excel zu lösen, allerdings ist die Tabelle mittlerweile so groß das Excel fast zusammenbricht :) IST-Zustand: - 1 x Haupttabelle:...
  7. Verzweifelung Tabellenvergleich

    in Microsoft Excel Hilfe
    Verzweifelung Tabellenvergleich: Guten Tag gemeinsam, Bin total an folgendem Problem am verzweifeln: Ich habe quasi eine Tabelle gehabt und nur eine Spalte davon weiter gegeben. Jetzt wurde sich aus der Spalte das...
  8. Tabellenvergleich

    in Microsoft Excel Hilfe
    Tabellenvergleich: Hallo Zusammen, ich habe folgendes Problem: Ich erhalte jede Woche Bestandslisten von einem Hersteller, in der sich nicht nur die Artikelbestände ändern sondern auch Artikel ganz aus dem...
  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