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, 7888 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 ..
Ähnliche Inhalte
Windows Systemdateien
Bootable iso Datei mit eigenen Datein erzeugen (10)

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

Microsoft Office
gelöst Excel VBA: Automatische Konvertierung von Textdatei (.txt) zu Exceldatei (.xlsx) (7)

Frage von Booster07 zum Thema Microsoft Office ...

Windows Server
gelöst Freigegebener Ordner "Eigene Dateien" (8)

Frage von JensDND zum Thema Windows Server ...

Batch & Shell
gelöst PDF Datei erzeugen über Kommandozeile (6)

Frage von Xaero1982 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Entwicklung

Exploit Development

Anleitung von burhanudinn123 zum Thema Entwicklung ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(1)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
Leiten "dumme" Switches VLAN-Tags mit durch? (17)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

E-Business
Wo tragt ihr eure privaten Termine ein? (13)

Frage von honeybee zum Thema E-Business ...

Batch & Shell
Batch zum suchen und verschieben von Verknüpfungen (12)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...