Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
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

xls-Datei aufteilen in Einzeldateien

xls-Datei aufteilen in Einzeldateien
Hei.Fisch
Hallo Kollegen,
ich habe hier ein kleines VBA-Programm, mit dem ich bestimmte Zeilen aus einer großen Tabelle in einzelne Tabellenblätter kopieren kann.
Nun brauche ich im Prinzip genau dasselbe, nur sollen die Daten nicht in ein neues Blatt, sondern in eine neue Arbeitsmappe kopiert werden. Diese soll im gleichen Ordner erzeugt und gespeichert werden.
Ganz toll wäre es, wenn ich den neuen Dateien auch gleich noch ein Passwort zuordnen könnte.
Hintergrund ist: Das Warenwirtschaftssystem spuckt eine sehr große Tabelle mit Kundendaten aus, die jedoch den 18 Kundenberatern einzeln zur Verfügung gestellt werden sollen.
Das bisherige Programm arbeitet folgendermaßen:
Die Prozedur "Test" kopiert mit Hilfe der Prozedur "CopyWithValues" alle Zeilen des aktiven Worksheets, die als Wert "YOURVALUE" in der Spalte "F" als Text haben (damit sind auch Personalnummern als String interpretiert), in das Worksheet mit dem Namen "Sheet2". (Bei YOURVALUE kann der Name des Kundenberaters eingetragen werden).
Im Anhang ein kleines, abgespecktes Beispiel: https://www.herber.de/bbs/user/69744.xls
Bitte das Makro KB_vereinzeln starten, dann wird gleich alles klar.
Wie muss ich den bestehenden Quellcode abändern, um aus CopyWithValues ein neues SaveWithValues zu bekommen?
CopyWithValues tut folgendes:
- Es versucht ein Worksheet zu finden, dass den angegebenen Namen enthält.
- Gibt es ein solches nicht, dann wird ein neues angelegt und die Werte werden kopiert.
- Danach springt die Prozedur wieder zum Ausgangssheet zurück, so dass die Prozedur mit einem _ neuen Satz Parameter aufgerufen werden kann.

Private Sub CopyWithValues(testValue As String, column As String, sheetName As String)
Dim rootSheet As Object
Dim newSheet As Object
Dim workRange As Range
Dim destinationRange As Range
Dim currentRow As Range
Dim strValue As String
Dim counter As Integer
Dim row As String
counter = 1
Set rootSheet = ActiveSheet
Set workRange = rootSheet.UsedRange
On Error GoTo CREATESHEET
Set newSheet = ActiveWorkbook.Sheets(sheetName)
GoTo ACTIVATESHEET
CREATESHEET:
ActiveWorkbook.Sheets.Add
ActiveSheet.Name = sheetName
Set newSheet = ActiveSheet
ACTIVATESHEET:
newSheet.Activate
For Each currentRow In workRange.Rows
strValue = CStr(currentRow.Range(column & 1).Text)
If strValue = testValue Then
Set destinationRange = ActiveWorkbook.Sheets(sheetName).Rows(counter & ":" & counter)
currentRow.Copy destinationRange
counter = counter + 1
End If
Next
rootSheet.Activate
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: xls-Datei aufteilen in Einzeldateien
26.05.2010 17:24:55
fcs
Hallo Hei.Fisch,
Fragen:
1. Muss bei der separaten Datei zunächst geprüft werden, ob es im Verzeichnis schon eine Datei mit dem Namen "sheetname" gibt?
2. Soll dann diese Datei geöffnet werden und Daten ergänzt werden? Oder soll die vorhandene Datei überschrieben werden?
3. In welchem Dateiformat sollen die Daten gespeichert werden? Excel 2007 nur mit Daten (xlsx) oder 2003 und älter (xls)?
Gruß
Franz
AW: xls-Datei aufteilen in Einzeldateien
27.05.2010 10:48:21
Hei.Fisch
Hallo Franz,
danke für die Unterstützung.
Zu den Fragen:
1. Ja, eine Überprüfung wäre sinnvoll. Es gibt verschiedene Anwendungen, bei denen nur teilweise eine Zieldatei existiert.
2. Wenn eine Zieldatei vorhanden ist, die ein Sheet mit dem selben Sheetnamen enthält, sollen die Daten dort überschrieben werden. Die gesamte Datei sollte nicht überschrieben werden, da in den anderen Sheets Pivot-Tabellen sind, die auf die jeweiligen Daten zugreifen. Diese müssten sich dann ja entsprechend aktualisieren lassen. Ob die Datei bei dem Vorgang geöffnet wird oder nicht, ist zweitrangig. Am Anfang wäre es sinnvoll, so lange ich noch kontrollieren muss, was passiert. Später besser nicht mehr.
3. Die Daten müssen in 2003 und älter gespeichert werden, da unsere Fa. beim Außendienst das Sparen anfängt und die kein aktuelles Excel kriegen :-(
Ich freu mich schon auf Antwort!
Grüße,
Heidrun Fischer
Anzeige
AW: xls-Datei aufteilen in Einzeldateien
27.05.2010 12:54:18
Hei.Fisch
Hallo Franz,
danke für die Unterstützung.
Zu den Fragen:
1. Ja, eine Überprüfung wäre sinnvoll. Es gibt verschiedene Anwendungen, bei denen nur teilweise eine Zieldatei existiert.
2. Wenn eine Zieldatei vorhanden ist, die ein Sheet mit dem selben Sheetnamen enthält, sollen die Daten dort überschrieben werden. Die gesamte Datei sollte nicht überschrieben werden, da in den anderen Sheets Pivot-Tabellen sind, die auf die jeweiligen Daten zugreifen. Diese müssten sich dann ja entsprechend aktualisieren lassen. Ob die Datei bei dem Vorgang geöffnet wird oder nicht, ist zweitrangig. Am Anfang wäre es sinnvoll, so lange ich noch kontrollieren muss, was passiert. Später besser nicht mehr.
3. Die Daten müssen in 2003 und älter gespeichert werden, da unsere Fa. beim Außendienst das Sparen anfängt und die kein aktuelles Excel kriegen :-(
Ich freu mich schon auf Antwort!
Grüße,
Heidrun Fischer
P.S.: Hatte vergessen, bei "Frage noch offen" das Häkchen zu setzen ... sorry
Anzeige
AW: xls-Datei aufteilen in Einzeldateien
28.05.2010 00:13:23
fcs
Hallo Heidrun,
in der Text-Datei findest du die angepassten Prozeduren.
https://www.herber.de/bbs/user/69774.txt
Ein Passwort kann optional beim Aufruf der Prozedur als zusätzlicher Parameter übergeben werden.
Gruß
Franz
AW: Vielen Dank an Franz !!!
28.05.2010 10:41:50
Hei.Fisch
Hallo Franz,
hiermit hast Du dazu beigetragen, dass in unseren verschiedenen Handelsniederlassungen drei Damen im Vertriebsinnendienst jeden Monat jeweils mindestens 20 Std. Arbeitszeit einsparen, in denen sie bisher stumpfsinnig die Daten händisch (über copy:pace) vereinzelt haben. Sie würden Dir dafür voraussichtlich die Füße küssen.
Danke, danke, danke!!
Viele Grüße,
Heidrun
Anzeige
AW: Vielen Dank an Franz !!!
28.05.2010 11:39:22
fcs
Hallo Heidrun,
dann hoffe ich mal für die Damen, dass diese Rationalisierung keine arbeitsvertraglichen Auswirkungen hat sondern die Möglichkeit bietet andere Aufgaben intensiver wahrzunehmen.
Gruß
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige