Vergleichsmakro

01/10/2009 - 12:20 von Michael Feske | Report spam
Hallo alle zusammen,
ich möchte über ein Makro Daten zusammenführen. Aus den tabellenblàttern
import_liste und import_notenbuch in export_bb. Dazu steht in der obersten
Zeile die Überschrift.
import_notenbuch
A1 Nr# B1 Name C1 Vorname D1 Nummer
import_notenbuch
A1 Nachname B1 Vorname C1 Benutzername D1 Teilnehmer-ID

Die erste Schwierigkeit ist für mich shcon mal das es in der einen tabelle
Name und in der anderen Nachname heißt :-(

In Export soll dann bei Treffer zwischen Nachname und Vorname der
Benutzername in Spalte C ab Zeile 2 eingetragen werden.

Ich habe versucht das Makro welches ich irgendwo schon mal verwendet hatte
abzuàndern, ist mir aber leider nicht gelungen

Sub Usernamen_aus_import_notenbuch_zuordnen()
Dim S1 As Worksheet, S2 As Worksheet, S3 As Worksheet
Dim Y1 As Long, Y2 As Long
Dim Nachname As String, Vorname As String
'Tabellenblàtter bestimmen
Set S1 = Sheets("import_liste")
Set S2 = Sheets("import_notenbuch")
Set S3 = Sheets("export_bb")
'Beginne ab Zeile 2
Y1 = 2
'Durchlaufe solange bis Zelle leer
Do While S1.Cells(Y1, 2) <> ""
'Namen holen
Nachname = S1.Cells(Y1, 2)
Vorname = S1.Cells(Y1, 3)
'Beginne ab Zeile 2
Y2 = 2
'Durchlaufe solange bis Zelle leer
Do While S2.Cells(Y2, 1) <> ""
'Namen gleich?
If Nachname = S2.Cells(Y2, 1) And _
Vorname = S2.Cells(Y2, 2) Then
'Benutzer setzen
S1.Cells(Y1, 3) = S2.Cells(Y2, 3)
'Fertig
Exit Do
End If
'Nàchste Zeile
Y2 = Y2 + 1
Loop
'Nàchste Zeile
Y1 = Y1 + 1
Loop
End Sub
schnapp

Super wàre natürlich wenn ich in einem Tabellenblatt status die spalten
voname, nachname aus liste übernehmen könnte und in der dritten Spalte ein
rotes bzw. grünes feld wàre, wenn es zu einem treffer gekommen ist, oder
nicht.

Gruß
Micha
 

Lesen sie die antworten

#1 Andreas Killer
01/10/2009 - 17:45 | Warnen spam
Michael Feske schrieb:

ich möchte über ein Makro Daten zusammenführen. Aus den tabellenblàttern
import_liste und import_notenbuch in export_bb. Dazu steht in der obersten
Zeile die Überschrift.
import_notenbuch
A1 Nr# B1 Name C1 Vorname D1 Nummer
import_notenbuch
A1 Nachname B1 Vorname C1 Benutzername D1 Teilnehmer-ID


Du gehst das ganze zu kompliziert an, probiers mal so:

Zuerst standardisiere die Datenstruktur, d.h. aus den 2 verschiedenen
Strukuturen machst Du eine:

Nr;Name;Vorname;Nummer;Benutzername;Teilnehmer-ID;

Damit kannst Du aus import_liste die Datensàtze komplett kopieren wie
sie sind. Schon mal einfach, oder? ;-)

Hast Du das gemacht ermittelst Du die nàchste leere Zeile darunter und
nun kopierst Du die Spalten aus import_notenbuch an die passende
Stelle in die neue Datenstruktur, so:

Sub test()
'Sheet export_bb ist aktiv
Y = Range("A1").End(xlDown).Row + 1
With Sheets("import_notenbuch")
Y2 = .Range("A1").End(xlDown).Row
.Range("A2:B" & Y2).Copy Destination:=Cells(Y, "B")
.Range("C2:D" & Y2).Copy Destination:=Cells(Y, "E")
End With
End Sub

Damit hast die Daten zusammen und nun sortierst Du einfach nach Name
und Vorname und "mixt" Sie zusammen.

Nun könntest Du schon Prüfungen machen ob mehr als 3 gleiche Namen
untereinander stehen und/oder ob je ein Eintrag mit Nummer und einer
ohne Nummer folgt, d.h. hier kannst Du Dein "Grünes/Rotes Feld"
dranpeppen.

Ein weiteres kleines Makro das alle Datensàtze abklappert und aus der
nàchsten Zeile die fehlenden Info's kopiert trennt Dich dann vom
letzten Schritt:

Filtere alle Datensàtze ohne eine Nummer (oder nach Deinem
"Grünen/Roten Feld") und lösche diese.

Andreas.

Ähnliche fragen