Tabellen zusammenführen

  • #1
T

theshark

Guest
Hallo,

ich habe folgendes Problem,

ich möchte aus zwei Tabellen eine machen und zwar soll das wie folgt funktionieren:

Tabelle 1
100
200
300

Tabelle 2
aaa
bbb
ccc

Zusammengeführte Tabelle
100
aaa
200
bbb
300
ccc

In Zelle A1 soll der Wert aus Tabelle 1 Zelle A1 stehen
In Zelle A2 soll der Wert aus Tabelle 2 Zelle A1 stehen
In Zelle A3 soll der Wert aus Tabelle 1 Zelle A2 stehen
In Zelle A4 soll der Wert aus Tabelle 2 Zelle A2 stehen
In Zelle A5 soll der Wert aus Tabelle 1 Zelle A3 stehen
In Zelle A6 soll der Wert aus Tabelle 2 Zelle A3 stehen

Wie kann ich das einfach und bequem regeln, damit ich die Liste mit ca. 500 einträgen nicht händisch eintragen muß?

Danke
 
  • #2
Hallo theshark,

liegen die beiden in einer Datei ?
haben beide gleiche Anzahl von Zeilen ?
welches sind die Überschriftenzeilen ? sollen auch die übernommen werden ?

Gruß Matjes :)
 
  • #3
zu 1. die Daten liegen in zwei unterschiedlichen Register aber in der gleichen Datei.
zu 2. ja es sind gleich viele Zeilen

Die Überschriften müssen nicht übernommen werden bzw es gibt keine..
Das wichtigste ist eben, daß immer eine Zeile aus Tabelle 1 dan aus Tabelle 2 eingetragen wird, also immer abwechselnd....


Gruß Marc
 
  • #4
Dann probier es mal mit folgendem Makro. Die Konstanten Blattnamen müßtest du noch anpassen.

Gruß Matjes :)
Code:
Sub aa2TabsZu1TabEinLinksEinRechts()

->< < < A N P A S S E N > > >
 Const cBLTNAME_A = erstes Blatt
 Const cBLTNAME_B = zweites Blatt
 Const cSP_LETZTE_ZEILE_BESTIMMEN = 1->Spalte A, aus der die Zeilenanzahl bestimmt wird
->< < < A N P A S S E N  E N D E > > >

 Dim wb As Workbook, wsa As Worksheet, wsb As Worksheet, wsc As Worksheet
 Dim lRowsA As Long, lRowsB As Long, lAnzZeileNeuSeite As Long, x As Long

 Set wb = ActiveWorkbook
 On Error Resume Next
 Set wsa = wb.Worksheets(cBLTNAME_A)
 Set wsb = wb.Worksheets(cBLTNAME_B)
 On Error GoTo 0
 
 If wsa Is Nothing Then
  MsgBox Blatt  & cBLTNAME_A &  in Datei  & wb.Name &  nichtvorhanden.
  GoTo AUFRAEUMEN
 ElseIf wsb Is Nothing Then
  MsgBox Blatt  & cBLTNAME_B &  in Datei  & wb.Name &  nichtvorhanden.
  GoTo AUFRAEUMEN
 End If
 
 Set wsc = wb.Worksheets.Add(After:=wsb)
 
 lRowsA = wsa.Cells(wsa.Rows.Count, cSP_LETZTE_ZEILE_BESTIMMEN).End(xlUp).Row
 If lRowsA = 1 Then
  If wsa.Cells(wsa.Rows.Count, cSP_LETZTE_ZEILE_BESTIMMEN).Value =  Then lRowsA = 0
 End If
 lRowsB = wsb.Cells(wsb.Rows.Count, cSP_LETZTE_ZEILE_BESTIMMEN).End(xlUp).Row
 If lRowsB = 1 Then
  If wsb.Cells(wsb.Rows.Count, cSP_LETZTE_ZEILE_BESTIMMEN).Value =  Then lRowsB = 0
 End If
 If lRowsA <> lRowsB Then
  MsgBox _
   Zeilenanzahl unterschiedlich. & vbLf & vbLf & _
   Datei:  & wb.Name & vbLf & _
   Blatt  & wsa.Name &  :  & lRowsA & vbLf & _
   Blatt  & wsb.Name &  :  & lRowsB
  GoTo AUFRAEUMEN
 ElseIf lRowsA = 0 Then
  MsgBox _
   keine Zeile im Blatt. & vbLf & vbLf & _
   Datei:  & wb.Name & vbLf & _
   Blatt  & wsa.Name &  :  & lRowsA & vbLf & _
   Blatt  & wsb.Name &  :  & lRowsB
  GoTo AUFRAEUMEN
 End If
 
 lAnzZeileNeuSeite = 0
 
 For x = 1 To lRowsA
  
  lAnzZeileNeuSeite = lAnzZeileNeuSeite + 1
  wsa.Activate
  wsa.Rows(x).Copy Destination:=wsc.Rows(lAnzZeileNeuSeite)
  
  lAnzZeileNeuSeite = lAnzZeileNeuSeite + 1
  wsb.Activate
  wsb.Rows(x).Copy Destination:=wsc.Rows(lAnzZeileNeuSeite)
  
 Next
  
AUFRAEUMEN:
 Set wb = Nothing: Set wsa = Nothing: Set wsb = Nothing
End Sub
 
  • #5
super genau so stell ich mir das vor!

Hatte aber nicht gedacht, daß ein Makro benötigt wird...

Danke!
 
  • #6
Ein kleines Problem habe ich noch....
Es erstellt mir immer ein neues Blatt...
Was hab ich da falsch gemacht?

Gruß Marc
 
  • #7
Hallo theshark,

also ich hab mir gedacht, man führt die beiden Tabellen einmal zusammen ( auf einem neuen Blatt). Danach kann man kontrollieren, ob alles so gelaufen ist, wie es sollte. Anschliessend kann man die beiden Ausgangsblätter löschen. Dem neuen Tabellenblatt gibt man dann seinen endgültigen Namen.

In meinen Augen ist hier die Geschichte zu Ende.
Wie soll sie denn weitergehen ?

Gruß matjes :)
 
  • #8
ok, mit dem kann ich leben.

Danke nochmals...

Gruß MARC
 
Thema:

Tabellen zusammenführen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben