Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Aus einer Excel-Datei pro Teilbestand eigene Exceldateien erzeugen

Frage Microsoft Microsoft Office

Mitglied: delcour

delcour (Level 1) - Jetzt verbinden

21.08.2007, aktualisiert 22.08.2007, 7577 Aufrufe, 4 Kommentare

Eine Exceldatei mit einer Tabelle soll zu nach Feldinhalt einer bestimmten Spalte Teiltabellen inklusive Überschrift erzeugen und diese Teiltabellen als separate Exceldateien speichern, wobei im Dateinamen der Feldwert enthalten ist.

Hallo!

Mir liegt eine Exceldatei mit einer Tabelle vor. Die Spalten gehen von A bis BN, die Zeilen bis ca. 4500. Die oberste Zeile enthält die Überschriften. Die Überschrift der Spalte F lautet "Merkmal". Es gibt ca. 70 verschiedene Ausprägungen für "Merkmal" (z.B. 300, 2100, 2500 ...).

Von Hand würde ich jetzt pro Ausprägung für "Merkmal" den Autofilter bemühen, den jeweiligen Teilbestand inklusive Überschrift kopieren, eine neue leeren Exceldatei erzeugen, dort hinein den in der Zwischenablage kopierten Tabellenteil hineinkopieren und die neue Tabelle dann abspeichern mit dem Dateinamen "Serienbrief_" + Merkmalsausprägung + ".xls" (also Serienbrief_0300.xls, Serienbrief_2100.xls usw.).

Diese Art von Arbeit habe ich ein bis zweimal pro Jahr zu erledigen.

Hinsichtlich der Dateiformate habe ich keine Wahl. Es muss Excel sein. Mit Mitteln jenseits von Excel einzelne CSV-Dateien zu erzeugen, wäre für mich kein Problem. Aber ich bin in diesem Fall gebunden.

Die Ausgangstabelle ist schon nach "Merkmal" sortiert. Sofern von den neuen Tabellen bereits welche mit gleichem Dateinamen bestehen sollen diese entweder überschrieben werden oder kann die ganze Aktion mit einer Fehlermeldung abbrechen.

Gibt es eine halbwegs einfache Lösung, das einigermaßen elegant und vor allem automatisiert in einem Rutsch hinzubekommen? Wenn ja, wie ungefähr?

Vielen Dank!

Gruß

Delcour
Mitglied: Cthluhu
21.08.2007 um 17:17 Uhr
Hallo,

Falls du JAVA programmieren kannst, würde ich dir folgendes empfehlen:
1
Das ist eine API um auf Excel Dateien zugreifen zu können.

HTH
Bitte warten ..
Mitglied: miniversum
21.08.2007 um 20:11 Uhr
So auf die Schnelle und ohne richtig ausprobiert zu haben würd ichs so in etwa in vba machen:
01.
Sub Copy2newfile() 
02.
    zeile = 2 
03.
    Do 
04.
        ' Bereich kopieren 
05.
        altezeile = zeile + 1 
06.
        zeile = zeile + 1 
07.
        Merkmal = Range("F" & zeile).Value 
08.
        Do While Range("F" & zeile).Value = Merkmal 
09.
            zeile = zeile + 1 
10.
        Loop 
11.
        zeile = zeile - 1 
12.
        Range("A" & altezeile & ":BN" & zeile).Copy 
13.
         
14.
        ' In neue Datei einfügen 
15.
        Workbooks.Add 
16.
        ActiveSheet.Paste 
17.
         
18.
        'Speichern udn schliessen 
19.
        ActiveWorkbook.SaveAs Filename:= _ 
20.
            "D:\Serienbrief_" & Merkmal & ".xls", _ 
21.
            FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ 
22.
            ReadOnlyRecommended:=False, CreateBackup:=False 
23.
        ActiveWindow.Close 
24.
    Loop While Range("F" & zeile + 1).Value <> "" 
25.
End Sub
miniversum
Bitte warten ..
Mitglied: bastla
21.08.2007 um 20:40 Uhr
@miniversum

Schaut gut aus , allerdings soll die Zeile 1 mit den Überschriften auch mit, daher:
01.
Sub Copy2newfile() 
02.
    zeile = 2 
03.
    aKopf = Range("A1:BN1") 
04.
    Do 
05.
        ' Bereich kopieren 
06.
        altezeile = zeile + 1 
07.
        zeile = zeile + 1 
08.
        Merkmal = Range("F" & zeile).Value 
09.
        Do While Range("F" & zeile).Value = Merkmal 
10.
            zeile = zeile + 1 
11.
        Loop 
12.
        zeile = zeile - 1 
13.
        Range("A" & altezeile & ":BN" & zeile).Copy 
14.
         
15.
        ' In neue Datei einfügen 
16.
        Workbooks.Add 
17.
        ActiveSheet.Range("A1:BN1") = aKopf 
18.
        ActiveSheet.Range("A2").Select 
19.
        ActiveSheet.Paste 
20.
         
21.
        'Speichern und schließen 
22.
        ActiveWorkbook.SaveAs "D:\Serienbrief_" & Merkmal & ".xls" 
23.
        ActiveWindow.Close 
24.
    Loop While Range("F" & zeile + 1).Value <> "" 
25.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: delcour
22.08.2007 um 10:23 Uhr
Vielen Dank an Euch!

Mit dem letzten Excelcode hat es hervorragend gekappt. Allerdings fehlt bei der ersten Ausgabedatei die erste Datenzeile (während die geprüfte 2. sowie die letze Ausgabedatei pasen). Mit

zeile = 1

am Anfang wird auch die erste Ausgabedatei richtig, ohne dass es zu verschiebungen bei den folgenden Dateien kommt.

Gruß

Delcour
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Systemdateien
Bootable iso Datei mit eigenen Datein erzeugen (10)

Frage von lord-icon zum Thema Windows Systemdateien ...

Informationsdienste
Excel Datei ohne Download zur Verfügung stellen (4)

Frage von gnaulimon zum Thema Informationsdienste ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...