Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zwei Tabellen vergleichen
#1
Hallo,
habe folgendes Problem, welches ich vorzugsweise mit VBA lösen möchte. 
(siehe Beispiel-Datei im Anhang)
- In Tabellenblatt1 stehen in Spalte A nur Zahlen; es gibt in Spalte A keine leeren Zellen; die Zahlen sind in keiner bestimmten Reihenfolge sortiert (Kundennummern); in Realität sind hier ca. 200 jeweils siebenstellige Zahlen in A1-ca. A200; in diesem Tabellblatt stehen ausschließlich die Zahlen in Spalte A, alle anderen Spalten sind leer
- In Tabellenblatt2 stehen in Spalte K ab Zeile 14 ebenfalls nur Zahlen; es gibt ebenfalls keine leeren Zellen; die Zahlen sind ebenfalls in keiner bestimmten Reihenfolge sortiert (Kundennummern); in Realität sind hier jeweils ca. 20 siebenstellige Zahlen in K14-ca. K34; habe im Beispiel die übrigen Felder mit "x" ausgefüllt, hier befindet sich normalerweise Text, der nicht gelöscht werden soll, aber nicht relevant ist
- jetzt soll überprüft werden, ob eine Zahl aus Tabellenblatt2 Spalte K sich bereits in Tabellenblatt1 Spalte A befindet
- falls ja, soll nichts geschehen
- falls nein, soll die Zahl aus Tabellenblatt2 in Tabellenblatt1 Spalte A unten angefügt werden
- insgesamt soll so das Tabellblatt2 Spalte K durchsucht werden, bis eine freie Zelle auftaucht (bis also keine Zahleneintragungen mehr vorhanden sind)

Habe schon im Archiv gesucht und viele ähnliche Anfragen gefunden, konnte aber (aufgrund mickriger VBA-Kenntnisse :@ ) keine davon auf mein Problem anpassen...

Wäre für jede Hilfe äußerst dankbar!

Monty


Angehängte Dateien
.xlsx   beispiel.xlsx (Größe: 9,55 KB / Downloads: 2)
Antworten Top
#2
Hallo,

wenn ich Dich richtig verstanden habe, dann findest Du die letzte belegte Zeile so:

Zitat:Option Explicit

Sub LetzteZeile()
'letzte belegte Zeile in Spalte A
Dim LetzteZeile As Long
LetzteZeile = Cells(Rows.Count, 1).End(xlUp).Row

' Die Box kannst Du problemlos entfernen, sie dient hier nur zu Demonstrationszwecken
MsgBox LetzteZeile
End Sub

Bei Dir böte sich die Spalte A oder die Spalte K an, weil beide Deiner Aussage nach lückenlos befüllt sind.
Nimmst Du die Spalte A, kannst Du das Makro 1:1 übernehmen.
Nimmst Du die Spalte K, mußt Du im Code aus der 1 eine 11 machen.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • monty
Antworten Top
#3
Hallo Monty,

aktiviere die 2. Tabelle und starte dieses Makro:
Sub Abgleich()
 Dim lngZ As Long
 lngZ = 14
 Do Until Cells(lngZ, 11) = ""
   If IsError(Application.Match(Cells(lngZ, 11).Value, Tabelle1.Columns(1), 0)) Then
     Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = Cells(lngZ, 11).Value
   End If
   lngZ = lngZ + 1
 Loop
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • monty
Antworten Top
#4
(31.08.2016, 11:24)Hallo Uwe,vielen Dank - funktioniert genau wie gewünscht!Ganz große Klasse!Monty Kuwer schrieb: Hallo Monty,

aktiviere die 2. Tabelle und starte dieses Makro:
Sub Abgleich()
 Dim lngZ As Long
 lngZ = 14
 Do Until Cells(lngZ, 11) = ""
   If IsError(Application.Match(Cells(lngZ, 11).Value, Tabelle1.Columns(1), 0)) Then
     Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = Cells(lngZ, 11).Value
   End If
   lngZ = lngZ + 1
 Loop
End Sub
Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste