PDA

Vollständige Version anzeigen : Export über mehrere Tabellen


nocash26
21.09.2011, 13:50
Hallo liebes Forum,

ich habe ein recht komplexes Problem und würde mich freuen, wenn mir jemand 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 ihr 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.

Viele Grüße,

Waldemar

nocash26
21.09.2011, 16:54
Habe jetzt folgenden Code, der mir Punkte 1 bis 5 abarbeitet:


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 was das , was ich vorher gefiltert habe:(

nocash26
22.09.2011, 09:38
kann mir niemand weiterhelfen?

nocash26
22.09.2011, 14:14
Frage ich was Falsches oder wieso antwortet mir niemand?:(

Hasso
22.09.2011, 16:35
Hallo nocash26,

in deiner Testdatei ist aber gar kein VBA enthalten, also ist dein Problem schwer nachzuvollziehen.

nocash26
23.09.2011, 09:52
Hallo Hasso,

sorry: hier die xlsm

nocash26
27.09.2011, 09:41
Es wäre schön, wenn mir jemand Hilfestellung leisten könnte:)