Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
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
Inhaltsverzeichnis

Fehlersuche: pro 1000 Zellen eine neue Datei

Fehlersuche: pro 1000 Zellen eine neue Datei
20.08.2018 10:16:06
Dennis10ir
Hallo zusammen,
Ich habe mir einen Code hier aus dem Forum für meinen Zweck umgeschrieben:

Sub Schaltfläche1_Klicken()
Application.DisplayAlerts = False
Z = 1
For i = 1 To 15000 Step 1000
Range(Rows(i), Rows(i + 999)).Select
Selection.Copy
Sheets.Add
Range("A1").Select
ActiveSheet.Paste
ActiveSheet.Move
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="PFAD" & Z & ".csv", FileFormat:=xlCSV, Local:=True, _
CreateBackup:=False
ActiveWorkbook.Close
Sheets("Endtabelle").Select
Z = Z + 1
Next i
Application.DisplayAlerts = True
MsgBox "Alle Datensätze in einzelnen CSV-Dateien gespeichert"
End Sub

Den Pfad habe ich nur aus Datenschutz-Gründen entfernt, das funktioniert aber ganz normal
Folgende Probleme habe ich:
1. Excel legt einzelne Dateien mit jeweils 1000 Zeilen an. Fängt aber pro Datei wieder von vorne an. Somit habe ich immer die Zellen A1:A1000. Ab Datei 2 wird die Zelle A1 aber entfernt, sodass ich nur noch A2:A1000 erhalte (gewollt wäre A1001:A2000 in Datei 2).
2. Die Überschrift (Feld A1) soll in jeder Datei wiederholt werden. Danach sollen dann die jeweiligen Daten folgen (Datei 1: A1:A1000 ; Datei 2: A1 + A1001:A2000 ; Datei 3: A1 + A2001:A3000 ; u.s.w.)
3. Mit meinem Code nimmt er immer 15000 Datensätze, ist es auch möglich dass er einfach so viele Dateien anlegt, wie Daten vorhanden sind?
(Bsp. bei 9200 Daten sollen also 10 Dateien ausgegeben werden (9 Dateien mit jeweils 1000 Datensätzen und die letzte Datei mit den restlichen 200 Datensätzen))
Danke im Voraus!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Lösung zu Punkt 2 udn 3
20.08.2018 10:33:05
Klexy
zu 3:
ActiveSheet.UsedRange.Rows.Count statt 15000
zu 2:
Nimm den Spaltentitel am Anfang in eine Variable (SPT = Range("A1").Value
Und beim Einfügen ins neue Blatt:
Range("A1") = SPT
Range("A2").Select
ActiveSheet.Paste
zu 1:
das funktioniert bei mir korrekt
AW: Lösung zu Punkt 2 udn 3
20.08.2018 11:11:46
Dennis10ir
Erstmal besten Dank ;) 2. und 3. habe ich auch soweit abgeändert.
1. klappt bei mir leider nicht. Habe es jetzt grade noch einmal in einer Testdatei abgespeichert zum Testen. Hierbei habe ich einfach die Felder A1:A3200 mit den Zahlen 1 - 3200 gefüllt.
Mir werden 4 Dateien ausgegeben (also genau richtig), leider steht aber in jeder Datei 1 - 1000.
Wo ist mein Fehler?
Anzeige
AW: Lösung zu Punkt 2 udn 3
20.08.2018 13:29:52
Werner
Hallo Dennis,
und wie hast du A1 bis A3200 mit den Zahlen 1-3200 gefüllt? Mit der Formel =Zeile()
Dir ist schon klar, dass du dann die Formel in die neuen Blätter kopierst. Dadurch, dass dann dort diese Formel in A1:A1000 steht erhälst du logischerweise dort auch immer die Ziffern 1-1000
Hier ermittle ich die letzte befüllte Zeile in Spalte A, das mußt du ggf. an deine Bedürfnisse anpassen.
Option Explicit
Sub Schaltfläche1_Klicken()
Dim loLetzte As Long, i As Long, Z As Long
Application.DisplayAlerts = False
With Worksheets("Endtabelle")
Z = 1
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To loLetzte Step 1000
.Range(.Rows(i), .Rows(i + 999)).Copy
Sheets.Add
ActiveSheet.Range("A1").PasteSpecial Paste:=xlAll
ActiveSheet.Move
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="PFAD" & Z & ".csv", FileFormat:=xlCSV, Local:=True, _
CreateBackup:=False
ActiveWorkbook.Close
Z = Z + 1
Next i
Application.CutCopyMode = False
.Activate
End With
Application.DisplayAlerts = True
MsgBox "Alle Datensätze in einzelnen CSV-Dateien gespeichert"
End Sub
Gruß Werner
Anzeige
AW: Lösung zu Punkt 2 udn 3
21.08.2018 08:11:16
Dennis10ir
Hallo Werner,
:D Ganz so doof bin ich dann doch nicht :) sind schon als Werte (also ohne Formel) hinterlegt.
Mit deinem (und Klexys) Änderungshinweisen läuft es jetzt aber.
Vielen lieben Dank euch! :)
Gerne u. Danke für die Rückmeldung. o.w.T.
21.08.2018 08:52:03
Werner
Zu Punkt 1
20.08.2018 16:00:08
Klexy
In Anlehnung an die Lösung von Werner:
statt deiner Zeile:
ActiveSheet.Paste
diese Zeile:
Selection.PasteSpecial Paste:=xlValues
AW: Zu Punkt 1
21.08.2018 08:12:02
Dennis10ir
Hallo Klexy,
vielen lieben Dank dir! ;) Mein Problem ist gelöst. Die Tabelle funktioniert nun einwandfrei

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige