Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellenspalten vergleichen fehlende Werte anfügen

Tabellenspalten vergleichen fehlende Werte anfügen
03.06.2007 12:15:13
Jens
Hallo @all,
Ich habe ein kleines Problem mit VBA und weis langsam nicht mehr wo oder was ich noch suchen könnte um es zu beheben.
Ausgang
Importtabelle Ktonrtabelle a b c a b c 1 1 2 2 3 3 4 4 5 123 5 123 6 222 6 222 7 114 7 8 8


In der Importtabelle stehen Kontonummern ab Zelle C5. Diese sollen mit der Ktonrtabelle Zelle A5 verglichen werden und fehlende Kontonummern ( in diesem Fall Zelle C7 Kontonummer 114 ) in die Ktonrtabelle unten angefügt werden ( Zelle A7 ) ohne das Dublikate in der Ktonrtabelle entstehen.
Die Werte der Zelle C5 der Importtabelle verändern sich immer je nach eingelesenem Datensatz der CSV Datei.
Mein Lösungsansatz ist:
Sub werte_lesen()
Sheets("Import").Select
Range("C5").Select
Selection.End(xlDown).Select
letzte_zeile_datei2 = ActiveCell.Row
Sheets("Ktonr").Select
Range("A5").Select
Selection.End(xlDown).Select
letzte_zeile_datei1 = ActiveCell.Row
For i = 1 To letzte_zeile_datei1
gefunden = False
For j = 1 To letzte_zeile_datei1
Sheets("Import").Select
vgl_string = Range("C" + LTrim(Str(i))).Value
Sheets("Ktonr").Select
If Range("A" + LTrim(Str(j))).Value = vgl_string Then
gefunden = True
Exit For
End If
Next
If Not gefunden Then
letzte_zeile_datei2 = letzte_zeile_datei2 + 1
Range("A" + LTrim(Str(letzte_zeile_datei2))).Value = vgl_string
End If
Next
End Sub
Da meine VBA Kenntnisse aber nur sehr dürftig sind, kommt es immer nur zu einem Laufzeitfehler. :-(
Für eine Hilfe bedanke ich mich im voraus.
MfG
Jens

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenspalten vergleichen fehlende Werte anf
03.06.2007 12:33:00
ransi
HAllo
Teste mal diesen Code:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Public Sub test()
Dim Import As Worksheet
Dim Ktonr As Worksheet
Dim Zelle As Range
Set Import = Worksheets("Importtabelle")
Set Ktonr = Worksheets("Ktonrtabelle")
For Each Zelle In Import.Range("C5:C" & Import.Range("C65536").End(xlUp).Row)
    If WorksheetFunction.CountIf(Ktonr.Range("A5:A65536"), Zelle) = 0 Then
        Ktonr.Range("A65536").End(xlUp).Offset(1, 0) = Zelle
    End If
Next
End Sub

ransi

Anzeige
AW: Tabellenspalten vergleichen fehlende Werte anf
03.06.2007 13:20:00
Jens
Hi ransi,
Vielen Dank erst einmal für Deine schnelle Hilfe.
Habe es ausprobiert und den Code folgendermassen umgeschrieben
Option Explicit

Public Sub test()
Dim Import As Worksheet
Dim Ktonr As Worksheet
Dim Zelle As Range
Set Import = Worksheets("Import")
Set Ktonr = Worksheets("Ktonr")
For Each Zelle In Import.Range("C5:C" & Import.Range("C65536").End(xlUp).Row)
If WorksheetFunction.CountIf(Ktonr.Range("A2:A65536"), Zelle) = 0 Then
Ktonr.Range("A65536").End(xlUp).Offset(1, 0) = Zelle
End If
Next
End Sub


Wenn ich bei Ktonr.Range("A2:A65536") die Zelle A5 drinlasse würde er die Werte die in Zelle A1 - A4 drinstehen wiederholt einkopieren.
Das sieht dann so aus
123
222
123 114
Ich weis auch nicht wieso er gleich bei A2 anfängt Daten einzutragen.
Ansonsten funzt es sehr gut habe sogar aus Zelle C65534 eine Ktonr erfolgreich eintragen lassen trotz Leerzellen.
MfG
Jens

Anzeige
AW: Tabellenspalten vergleichen fehlende Werte anf
03.06.2007 13:37:01
ransi
HAllo Jens
So habe ich die Tabellenstruktur verstanden.
Importtabelle

 ABC
1   
2   
3   
4Überschrift 1Überschrift 2Überschrift 3
5  123
6  222
7  114
8   
9   
10   
11   
12   


Ktonrtabelle

 ABC
1   
2   
3   
4Daten 1Daten 2Daten 3
5   
6   
7   
8   
9   
10   
11   
12   


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Damit funktioiert der Code einwandfrei.
Sind deine Tabellen genauso aufgebaut ?
ransi

Anzeige
AW: Tabellenspalten vergleichen fehlende Werte anf
03.06.2007 13:55:03
Jens
Hi ransi,
das war des Rätsels Lösung. :D
Bei mir stand in Celle A4 in der Ktonrtabelle nichts drin, sodass er natürlich die nächste freie Zelle also A2 genommen hat.
Nunja sehe es einem VBA Laien nach das er Fehler macht
.
Nochmals Danke für die superschnelle und perfekte Hilfe.
Wünsche Dir noch ein schönes Rest - WE.
MfG
Jens
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Tabellenspalten vergleichen und fehlende Werte anfügen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle zwei Tabellenblätter: "Importtabelle" und "Ktonrtabelle".

  2. Fülle die Importtabelle ab Zelle C5 mit Kontonummern, die du vergleichen möchtest.

  3. Fülle die Ktonrtabelle ab Zelle A5 mit den bestehenden Kontonummern.

  4. Öffne den VBA-Editor (Alt + F11) und erstelle ein neues Modul.

  5. Füge den folgenden VBA-Code ein:

    Option Explicit
    
    Public Sub fehlendeWerteAnfuegen()
        Dim Import As Worksheet
        Dim Ktonr As Worksheet
        Dim Zelle As Range
        Set Import = Worksheets("Importtabelle")
        Set Ktonr = Worksheets("Ktonrtabelle")
    
        For Each Zelle In Import.Range("C5:C" & Import.Range("C65536").End(xlUp).Row)
            If WorksheetFunction.CountIf(Ktonr.Range("A5:A65536"), Zelle) = 0 Then
                Ktonr.Range("A65536").End(xlUp).Offset(1, 0) = Zelle
            End If
        Next
    End Sub
  6. Schließe den VBA-Editor und gehe zurück zu Excel.

  7. Führe das Makro aus, um die fehlenden Werte aus der Importtabelle in die Ktonrtabelle zu übertragen.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler kann auftreten, wenn die Range-Referenzen nicht korrekt sind. Überprüfe, ob die Tabellenblätter den richtigen Namen haben und die Daten in den angegebenen Zellen vorhanden sind.

  • Duplikate in der Ktonrtabelle: Stelle sicher, dass der Vergleichsbereich in der Ktonrtabelle korrekt ist (z.B. A5:A65536), um bereits vorhandene Werte zu berücksichtigen.

  • Falsche Startzelle: Wenn der Code Werte ab einer falschen Zelle einfügt, überprüfe die Struktur deiner Tabellen. Achte darauf, dass in der Ktonrtabelle ab A5 keine Leerzellen existieren, die den Code stören könnten.


Alternative Methoden

  • Verwendung von Formeln: Eine Alternative zur VBA-Lösung ist die Verwendung von Formeln. Du kannst die WENN- und VERGLEICH-Funktionen nutzen, um fehlende Werte in einer neuen Spalte anzuzeigen.

  • Power Query: Nutze Power Query, um zwei Tabellen zu vergleichen und fehlende Werte zu ermitteln. Mit der Funktion „Abfragen zusammenführen“ kannst du die Daten direkt in Excel verarbeiten.


Praktische Beispiele

Angenommen, deine Importtabelle sieht folgendermaßen aus:

A B C
1 123
2 222
3 114

Und deine Ktonrtabelle sieht so aus:

A B C
1
2 123
3 222

Nach dem Ausführen des Makros wird die Ktonrtabelle wie folgt aussehen:

A B C
1
2 123
3 222
4 114

Tipps für Profis

  • Optimierung des Codes: Verwende Application.ScreenUpdating = False zu Beginn des Makros und Application.ScreenUpdating = True am Ende, um die Ausführungsgeschwindigkeit zu erhöhen.

  • Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung im VBA-Code, um Probleme während der Ausführung besser nachverfolgen zu können.

  • Verwendung von Datenüberprüfung: Setze Datenüberprüfungen in deiner Ktonrtabelle ein, um sicherzustellen, dass keine ungültigen Werte eingegeben werden.


FAQ: Häufige Fragen

1. Wie kann ich zwei Spalten vergleichen und fehlende Werte anzeigen?
Du kannst die VERGLEICH-Funktion verwenden, um die Werte in den beiden Spalten zu vergleichen. Eine Kombination aus WENN und ISTFEHLER kann dabei helfen, fehlende Werte aufzulisten.

2. Gibt es eine Möglichkeit, dies ohne VBA zu tun?
Ja, du kannst Excel-Formeln oder Power Query verwenden, um zwei Tabellen zu vergleichen und fehlende Werte aufzulisten. Power Query bietet eine benutzerfreundliche Schnittstelle, um Daten zu transformieren und zu vergleichen.

3. Welche Excel-Version benötige ich für diese Methoden?
Die meisten dieser Methoden sind in Excel 2010 und neueren Versionen verfügbar. Power Query ist in Excel 2016 und später standardmäßig integriert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige