Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA-Warum kopiert der nicht ab Zeile "2"

VBA-Warum kopiert der nicht ab Zeile "2"
23.11.2007 14:53:14
Fabio
Hallo zusammen,
aus dem Netz habe ich einen "Grundcode" (mittlerweile angepasst).
In jeder Datei steht in Zeile "1" die entsprechende Überschrift der Reihe für die Eintragungen.
Excel soll eine Datei öffnen, ab Zeile "2" (weil die Überschriften brauche ich ja nicht) alle Reihen ausschneiden und in die "Gesamt-Datei" einfügen. Das klappt auch so sehr gut.
Wenn aber die aufgerufene Datei (z.B. Sport_2.xls) keine Einträge (ausser der Überschrift) enthält, schneidet Excel die Überschriftenzeile (1) aus und fügt die ein. Grummel. Wie kann ich das verhindern?
Der Code:

Sub Dateien_in_eine_Tabelle_zusammenfuehren()
'(C) Unbekannt (Internet)
Dim Datei As String
Dim Arbeitsmappe As String
Dim Pfad As String
Pfad = "C:\Testordner\"
Datei = Dir(Pfad & "*.xls")
Application.ScreenUpdating = False
'Active Mappe
Arbeitsmappe = ActiveWorkbook.Name
'Öffnet eine Datei
Workbooks.Open Filename:="C:\Testordner\Sport_1.xls"
'Kopiert von den Zeilen 2 bis zum Ende
'in die aktive Mappe und fügt sie jeweils unten an
Rows("2:" & ActiveWorkbook.ActiveSheet.Range("A65536").End(xlUp).Row).Cut _
Destination:=Workbooks(Arbeitsmappe).ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0)
'Schliesst die geöffnete Datei
ActiveWorkbook.Save
ActiveWindow.Close
'Öffnet eine Datei
Workbooks.Open Filename:="C:\Testordner\Sport_2.xls"
'Kopiert von den Zeilen 2 bis zum Ende
'in die aktive Mappe und fügt sie jeweils unten an
Rows("2:" & ActiveWorkbook.ActiveSheet.Range("A65536").End(xlUp).Row).Cut _
Destination:=Workbooks(Arbeitsmappe).ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0)
'Schliesst die geöffnete Datei
ActiveWorkbook.Save
ActiveWindow.Close
Application.ScreenUpdating = True
End Sub


3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Warum kopiert der nicht ab Zeile "2"
23.11.2007 14:59:00
Andi
Hi,
das liegt an folgender Zeile, genauer an dem fett markierten Ausdruck:
Rows("2:" & ActiveWorkbook.ActiveSheet.Range("A65536").End(xlUp).Row).Cut _
Damit wird auf dem aktiven Blatt in Spalte A die letzten gefüllte Zelle ermittelt, beziehungsweise deren Zeilen-Index. Kopiert wird dann von Zeile 2 bis zu eben dieser Zeile.
Wenn jetzt aber bis auf die Überschrift alles leer ist, dann ist die letzte Zeile die Zeile 1, es wird also Zeile 2 bis 1 kopiert und eingefügt.
Lösung:
if ActiveWorkbook.ActiveSheet.Range("A65536").End(xlUp).Row > 1 then
Rows("2:" & ActiveWorkbook.ActiveSheet.Range("A65536").End(xlUp).Row).Cut _
Destination:=Workbooks(Arbeitsmappe).ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0)
end if
Schönen Gruß,
Andi

Anzeige
Danke & Erledigt
23.11.2007 15:05:49
Fabio
Spitze (!) jetzt klappt das. Sei ganz herzlichst bedankt !
Fabio

gern geschehen... (ot)
23.11.2007 15:10:58
Andi
.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige