Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
684to688
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
684to688
684to688
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bestimmte anzahl von zellen kopieren

bestimmte anzahl von zellen kopieren
27.10.2005 18:22:36
zellen
hallo experten,
ich muss mehrere mappen mit jeweils einer tabelle mit hunderten von zeilen für eine andere anwendung aufbereiten.
aus der ursprungsmappe sollen die ersten 100 Zeilen ausgeschnitten und eine neue mappe erzeugt und diese 100 zeilen darin eingefügt werden. anschließend sollen aus der ursprungsmappe die nächsten 100 Zeilen ausgeschnitten und in eine weitere neue mappe eingefügt werden.
das soll so lange gehen, bis die ursprungsmappe leer ist.
also bei 3550 Zeilen müsste ich zum schluss plötzlich 1 leere ursprungsmappe und 36 neue mappen erstellt bekommen.

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bestimmte anzahl von zellen kopieren
27.10.2005 22:48:02
zellen
Hallo Lutz,
das sollte funktionieren.
Gruss Beni


Sub Zeilen_ausschneiden_und_verteilen()
Dim WS As String
Dim a, z As Integer
WS = ActiveSheet.Name
For z = 1 To Sheets(WS).UsedRange.Rows.Count Step 100
    a = Sheets.Count
    Sheets.Add.Move After:=Sheets(a)
    Sheets(WS).Rows("1:100").Cut Cells(1, 1)
    Sheets(WS).Rows("1:100").Delete Shift:=xlUp
Next z
End Sub
Anzeige
AW: bestimmte anzahl von zellen kopieren
27.10.2005 22:54:58
zellen
Hallo Lutz!
Kopiere diesn Code in ein allgemeines Modul deiner Datei.
Code anpassen und dann viel Spass!
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub DatenInNeueMappen()
Dim wbNew As Workbook
Dim ws As Worksheet
Dim fRow As Long, lRow As Long
Dim sPath As String

On Error GoTo ErrorExit

Set ws = ThisWorkbook.Sheets("Tabelle1") '<<<--- Tabelle mit den Daten - Name anpassen

lRow = ws.Range("A65536").End(xlUp).Row
fRow = 1

sPath = "F:\Temp\" '<<<--- Verzeichnis in dem die einzelnen Mappen _
  gespeichert werden sollen - anpassen!


If Right(sPath, 1) <> "\" Then sPath = sPath & "\"

With Application
  .DisplayAlerts = False
  .ScreenUpdating = False
  .EnableEvents = False
  .Calculation = xlCalculationManual
End With

Do
  Set wbNew = Workbooks.Add(xlWBATWorksheet)
  ws.Range(ws.Cells(fRow, 1), ws.Cells(fRow + 99, 256)).Copy wbNew.Sheets(1).Range("A1")
  wbNew.SaveAs sPath & fRow & "-" & fRow + 99 & ".xls"
  wbNew.Close
  Set wbNew = Nothing
  fRow = fRow + 100
Loop While fRow < lRow

ErrorExit:
With Application
  .DisplayAlerts = True
  .ScreenUpdating = True
  .EnableEvents = True
  .Calculation = xlCalculationAutomatic
End With

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
DANKE, aber eins hätte ich noch....
28.10.2005 10:35:58
Lutz
also ganz grosse klasse.
Nun möchte ich diese im .csv-format speichern. leider das bloße ändern von
& ".xls"
in
& ".csv"
führt nicht zum gewünschten ergebnis. die mapppe heißt zwar 1-100.csv, wird aber als solche wohl nicht tatsächlich gespeichert.
könnt ihr mir nochmal helfen
Grüsse Lutz
AW: DANKE, aber eins hätte ich noch....
28.10.2005 11:03:39
Josef
Hallo Lutz!
wbNew.SaveAs Filename:=sPath & fRow & "-" & fRow + 99 & ".csv", FileFormat:=xlCSV

dann sollte es klappen.
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
grübelnoch
28.10.2005 11:41:08
lutz
hallo sepp,
leider fügt er die zelleninhalte einer zeile durch komma getrennt in die spalte A. ich brauche jedoch die darstellung weiterhin so, dass die inhalte in den spalten bestehen bleiben.
vorher:
müller 01011970
jetzt:
müller,1011970
nu versteh ich gar nix mehr.
AW: grübelnoch
28.10.2005 11:52:51
Josef
Hallo Lutz!
Wie öffnest du die Datei(en)?
Wenn ich eine solche, von meinem Code gespeicherte Datei, in Excel öffne,
dann wird sie ganz normal als Tabelle dargestellt!
Öffne ich sie in einem Texteditor, dann sehe ich eine durch Semikolon getrennte
Textdatei!
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: grübelnoch
28.10.2005 12:04:47
lutz
hallo sepp,
das ist schon merkwürdig.
nehme ich eine .xls und sage Datei-Speichern unter-.csv und öffne diese .csv wird mir ganz normal meine Tabelle dargestellt.
beim Speichern über den Code, wird mir die Tabelle wie vorhin geschildert dargestellt (meier,1121970,peter)
habe mir das handspeichern" aufgezeichnet und den selben code bekommen:
ActiveWorkbook.Saveas filename:=".....csv", FileFormat:=xlCSV
Das verstehe nun wer will.
Lutz völlig vergübelt.
AW: grübelnoch
28.10.2005 12:33:29
Josef
Hallo Lutz!
Schau mal in der Systemsteuerung &gt Regions und Sprachoptionen &gt Regionale einstellungen &gt Anpassen , ob als Listentrennzeichen das Semikolon eingestellt ist!
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
.csv-Problem
28.10.2005 12:57:45
lutz
hallo sepp,
ja semikolon eingestellt.
ich schildere nochmal was ich genau brauche.
mach mal eine .xls aus und fülle A1 bis C3 mit Daten. Dann speichere das mal als .csv ab. die erstellte .csv schließen und ganz normal öffnen. Alle daten stehen noch in den vorher befüllten Zellen A1 bis C3.
So benötige ich meine Darstellung.
Bei der VBA-Lösung wird mir alles in A1 bis A3 gedrückt und mit Semikolon getrennt. So will ich es nicht haben.
Kannst Du weiterhelfen?
Gruß Lutz
AW: .csv-Problem
28.10.2005 13:29:24
Josef
Hallo Lutz!
Ich hab schon verstanden was du willst!
Das ist ein altbekanntes Problem mit "CSV" export.
Dann müssen wir die CSV halt "zu Fuß" erstellen!
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Sub DatenInNeueMappen()
Dim arr As Variant
Dim n As Integer, lCol As Integer
Dim ws As Worksheet
Dim fRow As Long, lRow As Long
Dim sPath As String, sFile As String, sTemp As String

On Error GoTo ErrorExit

Set ws = ThisWorkbook.Sheets("Tabelle1") '<<<--- Tabelle mit den Daten - Name anpassen

lRow = ws.Range("A65536").End(xlUp).Row
fRow = 1
lCol = 15 '<<<--- Anzahl der Spalten die Exportiert werden sollen - anpassen

sPath = "F:\Temp\" '<<<--- Verzeichnis in dem die einzelnen Mappen _
  gespeichert werden sollen - anpassen!


If Right(sPath, 1) <> "\" Then sPath = sPath & "\"

With Application
  .DisplayAlerts = False
  .ScreenUpdating = False
  .EnableEvents = False
  .Calculation = xlCalculationManual
End With

Do
  
  arr = ws.Range(ws.Cells(fRow, 1), ws.Cells(fRow + 99, lCol))
  
  sTemp = Join2(arr, ";", True)
  
  sFile = sPath & fRow & "-" & fRow + 99 & ".csv"
  
  Close #1
  
  Open sFile For Output As #1
  
  Print #1, sTemp;
  
  Close #1
  
  fRow = fRow + 100
  
Loop While fRow < lRow

ErrorExit:
With Application
  .DisplayAlerts = True
  .ScreenUpdating = True
  .EnableEvents = True
  .Calculation = xlCalculationAutomatic
End With

End Sub


Function Join2(field As Variant, Optional delimit As String = " ", Optional breakLines As Boolean = False) As String
'zweidimensionales array zu string umwandeln
Dim n As Long, m As Long
Dim temp As String


For n = LBound(field, 1) To UBound(field, 1)
  For m = LBound(field, 2) To UBound(field, 2)
    
    temp = temp & field(n, m) & delimit
    
  Next
  If breakLines Then temp = temp & Chr(10)
Next

Join2 = Left(temp, Len(temp) - 1)

End Function


Das sollte jetzt aber klappen!
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
total verwirrt
28.10.2005 18:21:41
lutz
hallo sepp,
hier steht der laie dem experten ganz schön blind gegenüber.
ich vesuche mal die .xls mit deinem code hochzuladen. die .csv geht hier leider nicht.
das ergebnis in der .csv ist noch verwirrender als vorher -:))
gruß Lutz
AW: oooops, war die falsche datei...
28.10.2005 19:17:04
Josef
Hallo Lutz!
Die Datei die mein Code erstellt sieht so aus
https://www.herber.de/bbs/user/27936.txt
und die Datei lässt sich in Excel ohne Probleme öffnen und wird
auch korrekt dargestellt!
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
ich glaub, wir fangen nochmal an...
28.10.2005 20:39:19
lutz
hallo sepp,
hab mir deine .csv angeschaut aber ich benötige diese anders dargestellt. Die werte müssen in den Zellen verbleiben.
Ja ich weiss, klingt bescheuert, aber die Anwendung die meine daten liest benötigt genau so eine darstellung. also sieht aus wie .xls muss aber .csv sein.
also so, als würde ich eine erstellte .xls mittels "Datei-Speichern unter-Name.csv" abspeichern. Dort sind ja die Werte auch nicht plötzlich nur noch in Spalte A vorhanden.
Gruss Lutz

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige