ich habe ein recht komplexes Problem und würde mich freuen, wenn mir jmd eine Hilfestellung geben würde. Ich habe drei Tabellen in einem Workbook und möchte mehrere Spalten aus der 1. Tabelle und eine bestimmte Spalte aus der 3. Tabelle, die ich aber nur über die 2. Tabelle identifizieren kann, in einen neues Excel-Dokument exportieren.
Im Anhang findet Sie eine Beispieldatei, die mein Problem darstellt.
Ich beschreibe mein Problem in mehreren Schritten:
1.:
Im 1. Worksheet "Tabelle1" befindet sich eine der 3 Tabellen mit den Quelldaten. Hier selektiere ich bspw. anhand Spalte "Test2" z.B. "abc".
2.:
Wenn in Spalte Test5 etwas steht, dann soll in die 1. Spalte des Exportdokuments die Überschrift dieser Spalte geschrieben werden (also Test5) und in die 2. Spalte des Exportdokuments der Inhalt der Zelle in Spalte Test5.
3.:
Wenn in Spalte Test6 etwas steht, dann soll in die 1. Spalte des Exportdokuments die Überschrift der Spalte geschreiben werden (also Test6) und in die 2. Spalte des Exportdokuments der Inhalt der Zelle in Spalte Test6.
4.:
Anhand des Inhalts der 2. Spalte (Referenz) des Exportdokuments soll das Makro schauen was in Spalte Test2 steht und den Inhalt dann jeweils in die 3. Spalte des Exportdokuments schreiben.
5.:
Anhand des Inhalts der 2. Spalte (Referenz) des Exportdokuments soll das Makro schauen, ob in der Spalte Test8 etwas steht, wenn ja dann schreibe den Inhalt von Spalte Test8 in die 4. Spalte des Ausgabedokuments.
6.:
Anhand des Inhalts der 4. Spalte (Referenz) des Exportdokuments soll das Makro schauen, ob in der Spalte Test9 etwas steht, wenn ja, dann schreibe den Inhalt von Spalte Test9 in die 5. Spalte des Ausgabedokuments.
7.:
Anhand des Inhalts der 5. Spalte (Referenz) des Exportdokuments soll das Makro in Tabelle2 diesen Inhalt mit der 1. Spalte in Tabelle2 (Ref1) vergleichen, wenn ein gleiches Objekt gefunden wird, soll das Makro sich den Inhalt des letztens Eintrages in der aktuellen Zeile merken und in Tabelle3 den gemerkten Eintrag suchen. Falls der Eintrag gefunden wird, soll in der selben Zeile der Inhalt der Spalte Frequency in die Spalte 6 des Exportsdokuments geschrieben werden, aber an der Stelle, wo die Ausgangsreferenz der Spalte 5 steht.
8.:
Anhand der Spalte 5 des Exportdokumentes sollen alle Duplikate entfernt werden.
Ich hoffe, das mir jemand bei diesem Problem helfen kann, weil es für meine bescheidenen VBA-Kenntnisse einfach zu komplex ist.
Habe jetzt folgenden Code, der mir Punkte 1 bis 5 ab arbeitet:
Code:
Sub Generate_Export()
Dim wb As Workbook, i As Long, c As Long
Dim Zeile As Variant
Dim sFileName As String
Dim oQuelle As Range, gQuelle As Range, rngQuelle As Range, rQuelle As Range, iQuelle As Range, _
_
uQuelle As Range
Dim r As Range, lngZeile As Long
Dim lngLetzte As Long
Set wb = Workbooks.Add
Set rQuelle = ThisWorkbook.Worksheets("Tabelle1").Range("Test_Table").Columns(2)
Set iQuelle = ThisWorkbook.Worksheets("Tabelle1").Range("Test_Table").Columns(5)
Set uQuelle = ThisWorkbook.Worksheets("Tabelle1").Range("Test_Table").Columns(6)
Set gQuelle = ThisWorkbook.Worksheets("Tabelle1").Range("Test_Table").Columns(8)
Set oQuelle = ThisWorkbook.Worksheets("Tabelle1").Range("Test_Table").Columns(9)
Set rngQuelle = Union(rQuelle, iQuelle, uQuelle, gQuelle, oQuelle)
With wb.Worksheets(1)
rngQuelle.Copy _
Destination:=.Cells(2, 2)
For i = 1 To rngQuelle.Columns.Count
.Columns(i + 1).EntireColumn.ColumnWidth = rngQuelle.Columns(i).ColumnWidth
Next i
lngZeile = 2
For Each r In rngQuelle.Rows
.Rows(lngZeile).EntireRow.RowHeight = r.RowHeight
lngZeile = lngZeile + 1
Next r
.ListObjects.Add(xlSrcRange, .UsedRange, , xlYes).Name = "Import_Data"
.ListObjects("Import_Data").TableStyle = ""
wb.Worksheets(1).Name = "Import_Data"
End With
sFileName = Application.GetSaveAsFilename
wb.SaveAs sFileName
wb.Close
Set rngQuelle = Nothing
Set wb = Nothing
End
Sub
Das Problem ist nur das er mir die Daten aus Spalte Test6 nicht unter die Daten der Spalte _
Test5 schreibt. Zusätzlich gibt er mir alles aus und nicht nur das, was ich vorher gefiltert _
habe:(
Viele Grüße,
Waldemar
Die Beispiel Datei: https://www.herber.de/bbs/ _
_
user/76773.xlsm