Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1188to1192
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
Inhaltsverzeichnis

Tabellen zusammenfügen

Tabellen zusammenfügen
Einzel
Hallo,
habe ein kleines Problem suche VBA Code um eine Tabelle auszuwerten.
Und zwar stehen in dem Ersten Tabellenblatt Datum und Rechnungsnummer. Im Zweiten Tabellenblatt steht Kundennummer und im dritten Tabellenblatt Kundenummer und Rechnungsnummer.
Nun möchte ich per VBA auswerten das in Tabelle 2 das Datum aus Tabelle 1 der Rechnung geschrieben wird welche in Tabelle 3 hinter der Kundennummer steht.
Beispiel:
Tabelle 1 01.01.2010 088989
Tabelle 2 91212 01.01.2010
Tabelle 3 91212 088989

Kann man es verstehen? Habe mal alles als Datei angeghängt.
https://www.herber.de/bbs/user/72410.xlsx
Gruß
Stephan

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

Betreff
Benutzer
Anzeige
Rückfrage
21.11.2010 09:42:38
Erich
Hi Stephan,
so ganz klar ist das noch nicht.
Du schreibst: "der Rechnung geschrieben wird welche in Tabelle 3 hinter der Kundennummer steht".
In Tabelle 3 hinter der Kundennummer stehen aber viele Rechnungsnummern, folglich gibt es zu der
Kundennummer auch viele Datumse. Welches davon soll dann genommen werden - welche Re-Nr. des Kunden
ist die richtige?
An deinem Beispiel kann man das leider nicht erkennen - diese Werte kommen in der Beispielmappe gar nicht vor.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Rückfrage
21.11.2010 10:56:53
Einzel
Ja stimmt ich habe es einfach so kurz geschrieben.
Also in Tabelle 2 soll hinter jeder Kundennummer das endsprechende Datum aus Tabelle 1 für jede Rechnungsnummer aus Tabelle 3 stehen.
Die Kundennummer 9000 hat 25 Rechnungsnummern also gibt es in Tabelle 1 auch 25 Datums die zu 25 Rechnungsnummer passen. Also müssten hinter der Kundnummer in Tabelle 2 25 Datums aus Tabelle 1 aufgelistet werden.
Kann man es so besser verstehen?
Gruß
Stephan
Anzeige
also alle Datumse...
21.11.2010 20:06:33
Erich
Hi Stephan,
probier mal

Option Explicit
Sub Datum_rueber()
Dim lngA As Long, arrDa, arrKd, arrRe, arrKE, arrDE()
Dim zz As Long, cc As Long, ss As Long, lngS As Long
With Sheets("Tabelle1")
lngA = .Cells(.Rows.Count, 1).End(xlUp).Row
arrDa = .Range(.Cells(3, 1), .Cells(lngA, 1))
arrKd = .Range(.Cells(3, 8), .Cells(lngA, 8))
For zz = 1 To UBound(arrKd)
If Len(arrKd(zz, 1)) > 0 Then arrKd(zz, 1) = CLng(arrKd(zz, 1))
Next zz
End With
With Sheets("Tabelle3")
arrRe = .Range(.Cells(3, 4), .Cells(1, 1).SpecialCells(xlLastCell))
lngS = UBound(arrRe, 2)
End With
With Sheets("Tabelle2")
lngA = .Cells(.Rows.Count, 1).End(xlUp).Row
arrKE = .Range(.Cells(3, 1), .Cells(lngA, 1))
ReDim arrDE(1 To lngA - 2, 1 To lngS)
For zz = 1 To lngA - 2
For cc = 1 To lngS
arrDE(zz, cc) = ""
Next cc
Next zz
For zz = 1 To UBound(arrKd)
If Len(arrKd(zz, 1)) > 0 Then
For cc = 1 To lngS
If IsEmpty(arrRe(zz, cc)) Then Exit For
For ss = 1 To UBound(arrKd)
If arrKd(ss, 1) = arrRe(zz, cc) Then
arrDE(zz, cc) = arrDa(ss, 1)
Exit For
End If
Next ss
Next cc
End If
Next zz
.Range(.Cells(3, 2), .Cells(lngA, lngS)) = arrDE
End With
End Sub
Deine Mappe krankt etwas daran, dass alle Nummern (ReNr, KdNr) Zahlen sind
außer in Tabelle1, Spalte H. Hier wird ein Text mit 5 Zeichen erzeugt. Das solltest du einheitlich halten -
IMMER Zahlen oder IMMER Texte.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: also alle Datumse...
21.11.2010 21:39:54
Einzel
Cool supi das was ich bislang überprüft habe, passt es supi.
Einen großen Dank. Falls ich noch Fragen habe und nicht weiter kommen, werde ich mich nochmals melden.
Grüße
Stephan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige