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

Word 2003 jede seite in ein neues Dokument speichern

Frage Microsoft Microsoft Office

Mitglied: 0cool

0cool (Level 2) - Jetzt verbinden

21.06.2009, aktualisiert 17:44 Uhr, 4701 Aufrufe, 3 Kommentare

Hallo Leute,

ich soll hinkriegen, dass aus einem Bestehenden Word Dokument das mehrere Seiten hat(die Seitenzahl kann varieren), jede Seite als ein neues Dokument abgespeichert wird.
Also Seite 1 von Dokument A soll in Dokument 001 gespeichert werden, Seite 2 von Dokument A soll in Dokument 002 gespeichert werden, usw.
Dokument 001 und 002 existieren noch nicht.

Ich habe ein Makro, dass aber nur die Hälfte macht, d.h. bei Seite 1 funktioniert es, bei Seite zwei ist das Dokument leer obwohl die zweite Seite gefüllt ist, usw.

Der code des Macros ist folgender,

01.
Private Const Praefix = "Serienbrief" 
02.
 
03.
Sub ResultatDesSeriendrucksAufteilenOhneKopfUndFusszeilen() 
04.
  Dim oDoc As Document, Abschnitt As Section, nDoc As Document 
05.
  Set oDoc = ActiveDocument 
06.
  Verzeichnis = oDoc.Path 'Falls Ergebnis bereits gespeichert, dann im selben Pfad 
07.
  If Verzeichnis = "" Then 'Sonst im Standard-Dokumentenverzeichnis 
08.
    Verzeichnis = Dialogs(wdDialogToolsOptionsFileLocations).Setting 
09.
  End If 
10.
  Anz = oDoc.Sections.Count 'Für alle Abschnitte 
11.
  For i = 1 To Anz - 1 
12.
    Set Abschnitt = oDoc.Sections(i) 
13.
    Set nDoc = Documents.Add(Template:=oDoc.AttachedTemplate.FullName) 
14.
    nDoc.Content.FormattedText = Abschnitt.Range.FormattedText 
15.
    nDoc.Range.Find.Execute FindText:="^b", ReplaceWith:="" 'Abschnittwechsel suchen 
16.
    dsname = Verzeichnis & "\" & Praefix & Format(i, "0000") & ".doc" 
17.
    nDoc.SaveAs FileName:=dsname, AddToRecentFiles:=False 
18.
    nDoc.Close 
19.
  Next i 
20.
End Sub
Nun meine Frage was ist an dem Macro falsch?
Danke für eure Hilfe.


Gruß

0cool
Mitglied: Dieter-56
21.06.2009 um 18:29 Uhr
hallo,
als programmiermäßiger ungeschulter laie fällt mir aber schon mal folgende Zeile auf:

For i = 1 To Anz - 1

ich würde das so interpretieren: i = 1 to anz- 1 --> mache seite1 in doc 1 und dann schluß und aus.

nur so ein gedanke, programmierer werden mir da vielleicht widersprechen.
folgender gedanke kommt mir noch für diese zeile:

for i > 0 To Anz - > 0

probiers mal mit diesem gedanken.

dieter
Bitte warten ..
Mitglied: 76109
22.06.2009 um 00:42 Uhr
Hallo 0cool!

Also, ich habe das mal getestet und herausgefunden, dass egal wieviel Seiten ich habe, der Sections.Count und Sections.Item immer 1 ist.

Zum Ersetzen von Seitenumbrüchen:
01.
FindText:=vbFormFeed, ReplaceWith:="", Replace:=wdReplaceAll  ' Chr(12)

@Dieter_56
Die Anweisung "For i = 1 To Anz - 1" ist kein Fehler und bedeutet Schleifenzähler von 1 bis (Wert - 1)

Gruß Dieter

[Edit] Im Text hatte ich anstatt Seiten- Zeilenumbrüche geschrieben. Im Code war's aber richtig [/Edit]
Bitte warten ..
Mitglied: 0cool
25.06.2009 um 18:37 Uhr
Hey Leute,

vielen dank für eure Hilfe, aber ich bin nicht wirklich weiter, was ich vergessen habe zu sagen ist, dass auf den Blättern ein Textfeld ist, in dem alles drin steht forhandene Fußzeile soll nicht mit auf das neue Dokument übertragen werden.

Immoment ist es noch so das die Fußzeile mit übertragen wird und das Textfele nur manchmal übertragen wird.

Das Document findet ihr unter dem link http://www.computerservice-zelt.de/testen/macro.doc

Vielleicht könnt ihr mir damit noch besser helfen natürlich sind sämtliche Informationen die ich nicht veröffentlichen darf rausgenommen.

Gruß

Thorsten
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

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 ...