Microsoft Excel

Herbers Excel/VBA-Archiv

Alle Tabellen einer Datei kopieren & zusammenfügen

Betrifft: Alle Tabellen einer Datei kopieren & zusammenfügen von: e-mo
Geschrieben am: 09.09.2014 12:00:09

Hallo alle zusammen...

war lange nicht hier...hatte lange auch keine Probleme mehr gehabt...bis heute :-)

hier zum Problemchen...

Ich ziehe mir aus der Datenbank über eine Abfrage sehr viele Daten, die dann im Excel exportiert werden. Der Export geschieht leider noch auf Excel Vorversion, so dass in einer Tabelle nur 65000 Zeilen umfassen können. Es kommt oftmals vor, dass in einer Datei mehrere Tabellen (innerhalb einer Abfrage bzw. Datei, ist immer die gleiche Struktur gegeben) mit Daten gefüllt sind.

Meine Absicht ist es nun,
Alle Tabellen dieser XLS datei (eventuell kann man die Datei per Aufforderung anwählen, so dass die Datei frei wählbar ist), sollen alle Daten in den Tabellen (chronologisch)kopiert werden, und in nur einer neuen Tabelle einer neuen Datei in XLSX (eventuell mit gleichen Namen, wie die geöffnete Datei) gespeichert werden. Hierbei ist zu erwähnen, dass die Spaltenbezeichnung sich in jeder Tabelle befinden (Zeile 1), aber dies wird nur 1x benötigt, da die Daten fortlaufend (ohne Nummerierung) konsolidiert werden sollen.

Danke im Voraus,
e-mo

  

Betrifft: AW: Alle Tabellen einer Datei kopieren & zusammenfügen von: Rudi Maintaire
Geschrieben am: 09.09.2014 12:33:08

Hallo,
teste mal:

Sub aaa()
  Dim wbAkt As Workbook, wbNeu As Workbook, wks As Worksheet
  With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = False
    If .Show = -1 Then
      Set wbAkt = Workbooks.Open(.SelectedItems(1))
      Set wbNeu = Workbooks.Add(1)
      wbAkt.Sheets(1).Rows(1).Copy wbNeu.Sheets(1).Cells(1, 1)
      For Each wks In wbAkt.Worksheets
        wks.Cells(1, 1).CurrentRegion.Offset(1).Copy _
        wbNeu.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1)
      Next
      wbAkt.Close False
    End If
  End With
End Sub

Gruß
Rudi


  

Betrifft: AW: Alle Tabellen einer Datei kopieren & zusammenfügen von: e-mo
Geschrieben am: 09.09.2014 13:42:28

Hallo Rudi

ich habe 2 Probleme damit...

1. ich habe den Code eingefügt in Entwicklungstools > Visual Basic > Einfügen > Modul
aber dann geht es nur für diese eine Tabelle
Frage: Kann ich das irgendwie als Button in Add-Ins bei Excel hinterlegen, so dass ich dieses Script eigentlich immer aufrufen kann?

2. Irgendwie stützt der Rechner bzw. Excel 2010 immer ab. Ich komme gar nicht dazu, die Datei mir richtig anzuschauen

e-mo


  

Betrifft: AW: Alle Tabellen einer Datei kopieren & zusammenfügen von: e-mo
Geschrieben am: 11.09.2014 13:51:28

Hallo,

habe leider kein Feedback erhalten...daher habe ich schonmal selber etwas weiter gemacht...bin leider stehengeblieben.

Zum Punkt 1:
Ich habe nun versucht, das als Add In in Excel 2010 zu integrieren, aber leider erscheint das Add In leider nicht im vorgesehen bereich, obwohl es aktiv sein sollte...
Folgendes habe ich gemacht.
Unter Excel, Visual Basic habe ich bei Einfügen ein Modul erstellt, mit dem oben genannten Code.
Diesen habe ich XLAM gespeichert.
In Excel habe ich nun bei OPTIONEN>ADD INS> GEHE ZU...die XLAM gefunden und aktiviert...
Problem: Dieser erscheint aber nirgends...

Zum Punkt 2: Problem besteht weiterhin...stürzt irgendwie immer ab...excel hat keine Rückmeldung...

Neuer Punkt 3:
Kann man das Script erweitern, dass er sich aus der neuen Tabelle (die konsolidierte Tabelle), die Spalte "Datum" sucht (befindet sich irgendwo in der 1. Zeile), und die Daten darunter alles mit DD.MM.YYYY formatiert? Bzw. auch die Spalte "Kunde" und die Kundennummer als 14 stellige Zahl ohne Punkt und Komma ausgibt? Derzeit sieht es bei der Kundennummer immer 8,031214E+11.

VG,
e-mo


  

Betrifft: AW: Alle Tabellen einer Datei kopieren & zusammenfügen von: Rudi Maintaire
Geschrieben am: 11.09.2014 16:01:27

Hallo,
zu 1
du musst dir im AddIn per Code eine eigene Symbolleiste erstellen. Die erscheint dann im Tab AddIns.
Das dürfte dich allerdings überfordern.

zu 2: keine Ahnung
zu 3.1: Columns(application.Match("Datum",Rows(1),0)).numberformat="DD.MM.YYYY"
zu 3.2:
Columns(application.Match("Kunde",Rows(1),0)).numberformat="0"
Columns(application.Match("Kunde",Rows(1),0)).autofit

Gruß
Rudi


 

Beiträge aus den Excel-Beispielen zum Thema "Alle Tabellen einer Datei kopieren & zusammenfügen"