Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
356to360
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
356to360
356to360
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA-vergleich, ausschneiden. einfügen

VBA-vergleich, ausschneiden. einfügen
05.01.2004 10:29:55
Stefan
hallo,

ich habe folgendes Problem. ich habe zwei tabellen. nun sollen die datensätze aus der ersten tabelle mit der aus der zweiten tabelle verglichen werden. besteht eine übereinstimmung sollen die beiden übereinstimmenden datensätze (aus tabelle 1 und tabelle 2) ausgeschnitten werden und in eine neue tabelle untereinander eingefügt werden. das ganze solle für mehre hundert zeilen stattfinden.
ich würde es ja mit einem sverweis machen, aber ich benötige zusätzlich die übereinstimmenden datensätze in einer extra tabelle.
kann mir ja jemadn unter die arme greifen ???
vielen dank

gruss
stefan

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-vergleich, ausschneiden. einfügen
05.01.2004 20:55:53
Beni
Hallo Stefan,
gibt es eine eindeutige Indentifikation der Datensätze, z.B. Pers.Nr. oder Art.Nr und in welcher Spalte sind diese enthalten.
Gruss Beni
AW: VBA-vergleich, ausschneiden. einfügen
07.01.2004 11:49:46
Stefan
es gibt keine eindeutige identifikation. vielleicht habe ich meine problematik nicht so gut geschildert, entschuldige, also,
in tabelle1 soll der wert a1 mit der spalte A aus tabelle 2 verglichen werden (klassische Sverweis-lösung) aber nun soll, wenn der wert aus tabelle1 a1 in tabelle 2 gefunden wird folgendes passieren, der wert aus tabelle 1 und der wert aus tabelle 2 sollen in einer dritten tabelle untereinander geschrieben werden und aus der tabelle 1 & tabelle 2 gelöscht werden , dann soll der nächste wert gesucht werden.
ich wuerde es ja mit einem sverweis machen, aber ich benötige die beiden gefundenen werte untereinander in einer dritten tabelle
vielen da
gruss

stefan
Anzeige
AW: VBA-vergleich, ausschneiden. einfügen
07.01.2004 13:00:29
Beni
Hallo Stefan,
bei diesem Makro wird der Wert in SpalteA in Tabelle2 gesucht und bei Uebereistimmung werden beide Zeilen in Tabelle3 übertragen.
Gruss Beni


Sub doppelte_DS_ausschneiden()
For r = 1 To Cells(65536, 1).End(xlUp).Row
Wert = Cells(r, 1)
With Sheets(2).Columns(1)
Set C = .Find(Wert, LookIn:=xlValues, LookAt:=xlWhole)
If Not C Is Nothing Then
i = Sheets(3).Cells(65536, 1).End(xlUp).Row + 1
' 10 = anzahl Spalten
Range(Cells(r, 1), Cells(r, 10)).Cut Destination:=Sheets(3).Cells(i, 1)
i = i + 1
Range(.Cells(r, 1), .Cells(r, 10)).Cut Destination:=Sheets(3).Cells(i, 1)
End If
End With
Next r
End Sub

Anzeige
AW: VBA-vergleich, ausschneiden. einfügen
07.01.2004 15:23:06
stefan
Hallo Beni,

tausend dank für das makro. wäre es zuviel verlangt mir ein paar erklärungen zu geben was und wie das makro nun vorgeht ? ich wuerde gerne mehr erfahren. wenn es ok für dich ist, wären ein paar kommentare was da passiert sehr schön. aber nur wenn es wirklich ok ist.

jedenfalls vielen dank für deine hilfe, so spare ich mir nen haufen arbeit.
tausend dank

gruss
stefan
AW: VBA-Erklärung
07.01.2004 20:23:38
Beni
Hallo Stefan,

For r = 1 To Cells(65536, 1).End(xlUp).Row
For ist ein Schleife und durchläuft die Zeilen von 1 bis zur letzte gefüllte Zeile.
Cells(65536, 1).End(xlUp).Row ermittelt die letzte gefüllte Zelle in SpalteA von unten nach oben.
Wert = Cells(r, 1)
das r ist ein Variable und enthälte den Wert der im Durchlauf aktueller ZeilenNr
With Sheets(2).Columns(1)
Set C = .Find(Wert, LookIn:=xlValues, LookAt:=xlWhole)
Im With wir angegeben, wo gesucht wird, hir in Tabelle2 SpalteA
If Not C Is Nothing Then
Wenn gefunden, dann
Wenn nicht gefunden, dann wäre If C Is Nothing Then
i = Sheets(3).Cells(65536, 1).End(xlUp).Row + 1
i ermittelt die letzte Zeile eins tiefer in Tabelle3 Spalte1
Range(Cells(r, 1), Cells(r, 10)).Cut Destination:=Sheets(3).Cells(i, 1)
Hir wird der aktuellen Tabelle, die ermittelt Zeile von Spalle1 bis Spalte10 ausgeschnitten und Tabelle3 verschoben
i = i + 1
der Wert i wird um eins erhöht,
Range(.Cells(r, 1), .Cells(r, 10)).Cut Destination:=Sheets(3).Cells(i, 1)
wir befinden und der Tabelle1 und trotzdem können in Tabelle2 etwas ausführen, darum der Punkt vor dem .Cells, der Punkt bezieht sich auf oben definierten With Sheets(2).
End If
hir endet das wenn = If
End With
Next r
hier wiederholt sich die Prozedur und geht zurüch zum For bis die letzte Zeile erreicht ist.

Ich hoffe, dass ich Dir mit dieser Erklärung etwas geholfen habe, solltest Du weiter Fragen haben, kannst Du mich unter beni.maechler@bluewin.ch erreichen.
Gruss Beni
Anzeige
Vielen Dank, Beni
08.01.2004 10:51:18
Stefan
Danke das du dir die Mühe für mich gemacht hast. Ich habe mir mal deine Email aufgeschrieben. Aber ich will das ganze nicht überstrapazieren. Jedenfalls weiss ich jetzt wie das Makro aufgebaut ist und werde die Gelegenheit nutzen mehr uber VBA zu lernen.
Danke nochmal

Gruß

Stefan

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige