Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1220to1224
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

VBA Lösung

VBA Lösung
userM
Hallo Excel-Freunde
Folgendes Problem liegt mir vor, welches wohl am einfachsten mit einer VBA Programmierung zu lösen ist. Leider kenne ich mich mit VBA nicht aus und bräuchte deshalb dringend eure Hilfe. Kennt jemand für dieses Problem die entsprechende VBA Lösung?
Ich möchte eine Tabelle erstellen. Die Daten für die Tabelle sollen aus zwei unterschiedlichen Tabellenblättern (Tabelle P und Tabelle M) bezogen werden. Die Daten aus den beiden Tabellen haben dieselbe Referenznummer. Einzig die dahinterstehenden Daten unterscheiden sich. Zusätzlich ist es der Fall, dass in Tabelle P die Referenznummer immer nur einmal vorkommt. In Tabelle M bestehen allerdings mehrere Zeilen mit derselben Referenznummer, jedoch unterschiedliche Daten die dahinterstehen.
Nun soll eine Tabelle generiert werden, welche anhand der Referenznummer die Daten aus Tabelle P und Tabelle M die jeweils dahinterstehenden Daten in einer Zeile in der neuen Tabelle wiedergibt. Da allerdings in Tabelle M mehrere Zeilen mit derselben Referenznummer bestehen, müsste dafür die entsprechende Anzahl von Zeilen in der neuen Tabelle generiert und die Daten an dieser Stelle wiedergegeben werden.
Beispiel: So soll die Tabelle aussehen.
https://www.herber.de/bbs/user/75679.xls

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

Betreff
Benutzer
Anzeige
AW: VBA Lösung
12.07.2011 23:22:22
Mustafa
Hallo UserM
für die Daten aus der Tabelle P, da die Referenznummern dort ja nur einmal vorkommen,
kannst du den SVERWEIS benutzen.
Und für die Daten aus Tabelle M siehe mal hier :
http://www.excelformeln.de/formeln.html?welcher=28
Rückmeldung obs Hilft wäre nett.
Gruß aus der Domstadt Köln.
AW: VBA Lösung
13.07.2011 10:01:43
userM
Hallo Mustafa,
vielen Dank für deine Antwort.
Ich muss die Formeln aus dem Link noch genau durchschauen und ausprobieren.
Weißt du oder jemand anders noch eine andere Lösung bspw. mit einer VBA Programmierung?
Vielen Dank im Voraus
userM
Anzeige
AW: VBA Lösung
13.07.2011 20:28:02
Mustafa
Hallo userM,
wenn du eine Beispieltabelle mit dem Istzustand der Rohdaten hochlädst, kann man mal schauen aber so ganz ohne Bezug zum Istzustand wäre eine VBA Programmierung umständlich und müsste immer wieder neu an deine Bedürfnisse werden.
Gruß aus der Domstadt Köln.
AW: VBA Lösung
13.07.2011 21:46:07
Manu
Hallo Mustafa
Ich habe den untenstehenden code auf meine bedürfnisse angepasst und es funktioniert soweit alles wunderbar.
Nur besteht nun folgendes Problem:
Wenn ich den Code ausführe, gibt er mir die Daten aus tabelle P und tabelle M in der Zieltabelle immer wieder neu an und zwar alle vorhandenen Referenznummern mit den zugehörigen Daten. Was ich nun möchte, ist, dass VBA erkennt, welche referenznummern bereits in der Zieltabelle vorhanden sind und diese dann nicht mehr in die Zieltabelle schiebt. Es sollen jedoch daten, welche in Tabelle P und M neu dazu gekommen sind in der Zieltabelle generiert werden.
Ist dies soweit verständlich?
Vielen Dank im Voraus
Manu aus München.

Sub tabellen_zusammenfassen()
Dim refNr, sNr, lZeile
lZeile = ActiveWorkbook.Sheets(3).Range("A65356").End(xlUp).Row
ActiveWorkbook.Sheets(3).Range("A1:E1") = Array("Daten", "Datum", "Bez.", "Datum", "Bez")
For Each refNr In ActiveWorkbook.Sheets(1).Range("A:A")
If refNr  "" And refNr.Row > 1 Then
ActiveWorkbook.Sheets(3).Cells(lZeile + 1, 1) = refNr.Value
ActiveWorkbook.Sheets(3).Cells(lZeile + 1, 2) = refNr.Offset(0, 1)
ActiveWorkbook.Sheets(3).Cells(lZeile + 1, 3) = refNr.Offset(0, 2)
For Each sNr In ActiveWorkbook.Sheets(2).Range("A:A")
If refNr = sNr Then
'ActiveWorkbook.Sheets(3).Cells(lZeile + 1, 1) = sNr.Value
ActiveWorkbook.Sheets(3).Cells(lZeile + 1, 4) = sNr.Offset(0, 1)
ActiveWorkbook.Sheets(3).Cells(lZeile + 1, 5) = sNr.Offset(0, 2)
lZeile = lZeile + 1
End If
Next
lZeile = lZeile + 1
End If
Next
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige