Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Gefüllten Bereich aus externen Mappen kopieren

Forumthread: Gefüllten Bereich aus externen Mappen kopieren

Gefüllten Bereich aus externen Mappen kopieren
Holger
Hallo Excel-Freunde,
ich möchte aus verschiedenen Mappen gefüllte Zellen in eine Exceldatei kopieren.
Ablauf sollte sein:
Sammelmappe (k10) ist offen und von dort wird der Code gestartet.
Erste Datei (k1a) wird geöffnet. Bereich von A1 bis letzte gefüllte Zelle in Spalte H in die Sammelmappe kopieren. Erste Datei schließen.
Dann wird die 2. Datei (k2a) geöffnet. Bereich von A1 bis letzte gefüllte Zelle in Spalte H auch in die Sammelmappe kopieren. zweite Datei schließen usw...
Dazu habe ich folgenden Codeteil:
Dim ende As Long
ende = Cells(65536, 1).End(xlUp).Row
Workbooks.Open Filename:=k1a
Range("A1:H" & ende).Copy Workbooks(k10).Sheets(l1a).Range("b1")
Workbooks(k1b).Close SaveChanges:=False
Workbooks.Open Filename:=k2a
Range("A1:H" & ende).Copy Workbooks(k10).Sheets(l1b).Range("b1")
Workbooks(k2b).Close SaveChanges:=False
Workbooks.Open Filename:=k3a
Range("A1:H" & ende).Copy Workbooks(k10).Sheets(l1c).Range("b1")
Workbooks(k3b).Close SaveChanges:=False
Workbooks.Open Filename:=k4a
Range("A1:H" & ende).Copy Workbooks(k10).Sheets(l1d).Range("b1")
Workbooks(k4b).Close SaveChanges:=False
Workbooks.Open Filename:=k5a
Range("A1:H" & ende).Copy Workbooks(k10).Sheets(l1e).Range("b1")
Workbooks(k5b).Close SaveChanges:=False
Mir macht die Variable "ende=....." Probleme. Denn sie sucht nicht die letzte gefüllte Zelle der Spalte H in der gerade geöffneten Mappe, sondern nimmt einfach einen festen Wert.
Was habe ich falsch gemacht oder faslch bedacht?
Gruß
Holger
Anzeige
neu dimensionieren
07.06.2010 17:12:06
Steffen
Hallo Holger,
erstens muß ende ja jeweils neu dimensionirt werden und zweitens passt die Spaltenangabe nicht.
so sollte es laufen:
Option Explicit

Dim ende As Long



    Workbooks.Open Filename:=k1a
    ende = Cells(Rows.Count, 8).End(xlUp).Row
        Range("A1:H" & ende).Copy Workbooks(k10).Sheets(l1a).Range("b1")
    Workbooks(k1b).Close SaveChanges:=False
   
    Workbooks.Open Filename:=k2a
    ende = Cells(Rows.Count, 8).End(xlUp).Row
        Range("A1:H" & ende).Copy Workbooks(k10).Sheets(l1b).Range("b1")
    Workbooks(k2b).Close SaveChanges:=False
   
    Workbooks.Open Filename:=k3a
    ende = Cells(Rows.Count, 8).End(xlUp).Row
        Range("A1:H" & ende).Copy Workbooks(k10).Sheets(l1c).Range("b1")
    Workbooks(k3b).Close SaveChanges:=False
   
    Workbooks.Open Filename:=k4a
    ende = Cells(Rows.Count, 8).End(xlUp).Row
        Range("A1:H" & ende).Copy Workbooks(k10).Sheets(l1d).Range("b1")
    Workbooks(k4b).Close SaveChanges:=False
   
    Workbooks.Open Filename:=k5a
    ende = Cells(Rows.Count, 8).End(xlUp).Row
        Range("A1:H" & ende).Copy Workbooks(k10).Sheets(l1e).Range("b1")
    Workbooks(k5b).Close SaveChanges:=False

Grüße
Steffen
Anzeige
AW: neu dimensionieren
08.06.2010 06:49:25
Holger
Hallo Steffen,
danke für deine Hilfe.
Leider zeigt mir deine Lösung, das die Variable "ende" keinen rechten Sinn macht, sondern den Code nur verlängert. Dann kann ich auch gleich "ende" weglassen:
 Workbooks.Open Filename:=k1a
Range("A1:H" & Cells(65536, 8).End(xlUp).Row). _
Copy Workbooks(k10).Sheets(l1a).Range("b1")
Workbooks(k1b).Close SaveChanges:=False
Workbooks.Open Filename:=k2a
Range("A1:H" & Cells(65536, 8).End(xlUp).Row). _
Copy Workbooks(k10).Sheets(l1a).Range("b1")
Workbooks(k2b).Close SaveChanges:=False
'...u.s.w.
Oder gibt es noch eine Möglichkeit meinen Code zu vereinfachen?
Gruß Holger
Anzeige
AW: Gefüllten Bereich aus externen Mappen kopieren
07.06.2010 22:41:53
Gerd
Hi Holger,
k1a - öffnen =>--->= k1b schließen. Sind da die Variablen der Datei-pfade/namen verrutscht?
Gruß Gerd
AW: Gefüllten Bereich aus externen Mappen kopieren
08.06.2010 06:38:25
Holger
Hi Gerd,
die Variable ...a zum öffnen beinhaltet den kompletten Datei-Pfad (z. B. H:/testcenter/Testraum/Test.xls). Die ...b Variable zum Schließen enthält nur den Dateinamen (Test.xls).
Warum VBA zum Schließen nicht die Variable ...a akzeptiert, weiß ich nicht.
Gruß Holger
Anzeige
AW: Gefüllten Bereich aus externen Mappen kopieren
08.06.2010 07:15:42
Gerd
Hi Holger,
vor'm Brötchen u. -verdienen.
Sub ungestestet()
Dim vntWB As Variant
Dim vntWBkurz As Variant
Dim vntSh As Variant
Dim intIndex As Integer
vntWB = Array(k1a, k2a, k3a, k4a)
vntWBkurz = Array(k1b, k2b, k3b, k4b)
vntSh = Array(l1a, l1b, l1c, l1d)
For intIndex = 0 To UBound(vntWB)
Workbooks.Open Filename:=vntWB(intIndex)
Range("A1:H" & Cells(65536, 8).End(xlUp).Row). _
Copy Workbooks(k10).Sheets(vntSh(intIndex)).Range("B1")
Workbooks(vntWBkurz(intIndex)).Close SaveChanges:=False
Next
End Sub
Schaue auch mal Dir() an, habe jetzt keine Zeit dafür.
Gruß Gerd
Anzeige
AW: Gefüllten Bereich aus externen Mappen kopieren
08.06.2010 07:28:12
Holger
Guten Morgen Gerd,
das funktioniert wunderbar, vielen Dank!
Gute Arbeit so früh am Morgen ;-)
Gruß Holger
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige