Makro in Word

Hallo Experten,

da ich die Einzige in der näheren Umgebung bin, die ganz gut mit Word klarkommt, wurde mir die Ehre zuteil, ein Makro zu schreiben, obwohl ich keine(!) Ahnung habe:frowning:

Folgende Situation: Ein Worddokument enthält eine Tabelle mit mehreren Spalten und Zeilen. Wichtig für mich sind nur die erste und dritte Spalte aller Zeilen. In der ersten Spalte steht jeweils eine Zahl, in der dritten Spalte ein dazugehöriger Text. Jetzt soll ein Makro darüberlaufen, jeweils den Text aus dieser dritten Spalte einer Zeile nehmen, diesen in ein rtf-Dokument kopieren und diese rtf-Datei nach der Zahl in der ersten Spalte dieser Zeile benennen (bspw. 45.rtf).

Ich hoffe, das war jetzt verständlich…

Meine Frage dazu; wie aufwendig ist so ein Makro prinzipiell? Kann man das als Anfänger schnell hinbekommen?

Danke für Tipps!
Ayla

Hi Ayla,

das sollte nicht so schwer sein: Makrorekorder einschalten (Extras > Makros > Aufzeichnen), all das tun, was getan werden soll, Rekorder ausschalten, Makro testen.

Gruß Ralf

Hallo Ayla,

als Anfänger ist das nicht ganz einfach, da man hier schon eine Schleife einprogrammieren sollte. Mit einem reinen Aufzeichnungsmakro ist es auch nicht getan, da auch Variablen gespeichert werden müssen, um die Datei unter dem richtigen Namen zu speichern.
Hier mein Lösungsvorschlag. Das Makro liest in einer Schleife jeweils den Text in Spalte 1 und 3 aus. Dann wird ein neues leeres Dokument geöffnet und der Text aus Spalte 3 eingetragen. Dann wird die Datei im RTF-Format gespeichert.

Sub RTF\_Dateien\_erzeugen()
'
 Dim Dok1 As Document, Zahl As String, ZellText As String, Pfad As String
 Set Dok1 = ActiveDocument
 Pfad = "C:\Test" 'Verzeichnis in dem die RTF-Dateien gespeichert werden sollen
 With Dok1.Tables(1) 'verwendet die 1. Tabelle im Dokument
 For Zeile = 1 To .Rows.Count 
 Zahl = Left(.Cell(Zeile, 1).Range.Text, Len(.Cell(Zeile, 1).Range.Text) - 2)
 ZellText = Left(.Cell(Zeile, 3).Range.Text, Len(.Cell(Zeile, 3).Range.Text) - 2)
 Documents.Add 'leeres DoKument neu anlegen
 Selection.TypeText Text:=ZellText
 ActiveDocument.SaveAs FileName:=Pfad & "\" & Zahl & ".rtf", FileFormat:=wdFormatRTF, \_
 LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword \_
 :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, \_
 SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= \_
 False
 ActiveDocument.Close
 Next Zeile
 End With
End Sub

Speichere das Makro in der Datei mit der Tabelle in einem Modul.
Dazu den VBA-Editor öffnen mit Tastenkobination+F11 oder via Menü Extras.
Falls noch nicht vorhanden muss Du unter Project(Dateiname) ein neues Modul anlegen (geht via rechte Maustaste).
In das Fenster des Moduls kopierst Du den Makrocode.
Im Makrocode muss Du noch den Pfad anpassen, in dem die RTF-Dateien gespeichert werden sollen.

Jetzt die Datei speichern und den VBA-Editor schließen.

Nun kannst in der Word-Datei das Makro starten.
Da ich die Bildschirmaktualisierung nicht deaktiviert hab, wird der Bildschirm jetzt etwas flackern, wenn die RTF-dateien produziert werden.

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

DANKE!
Vielen Dank, ich habe gar nicht erwartet, direkt die fertige Lösung zu bekommen:smile: Ich habs ausprobiert und es funktioniert…:smile:)) Schade, dass man nicht zwei Sternchen geben kann.

Gruß
Ayla