jobo: Word Rechnungstemplate füllen aus Excelzeile mit VBA

Beitrag lesen

Hallo Vinzenz,

ohne Fehlerbehandlung :-)
Wie geht Fehlerbehandlung (;-///)???

On Error ...
On Error Resume Next ' Mache mit der nächsten Anweisung weiter
                     ' Prüfe, ob das Err-Objekt nicht etwa was enthält
                     ' Prüfe, ob Deine Objektvariable etwas enthält ...

On Error GoTo <Error-Handling-Bereich> ...

siehe VBA-Hilfe zu On Error.

Coming soon...;

Sehr optimistisch. Das Erzeugen des Objektes kann fehlschlagen

Set objDoc = objWord.Documents.Open(Pfad & "Vorlage.doc")

Sehr optimistisch. Das Öffnen einer Datei kann fehlschlagen.

a) Nutze eine Dokumentvorlage.

Na ich dachte, das mache ich der Userin einfacher, wenn es ein .doc ist, damit sie selbst {Spaltenname} einsetzen könnte, wenn sie wollte, es also anpassen kann. Kaum steht da .dot kommen schon wieder fragen.

Ach: Datei -> Öffnen -> Vorlagen-Datei auswählen ist viel zu schwierig?

Naja, ehrlich gesagt: ja. Draufklicken ist besser. Was der Bauer nicht kennt, das isst er nicht. Was die Userin nicht kennt, das ...

Ja, auf Vorlagendateien doppelklicken hat nicht den gewünschten Effekt. Ich finde es traurig, welche Vernachlässigung Vorlagendateien erfahren.

Da magst Du sicher recht haben.

Lerne mit Range-Objekten umzugehen.

Ja in Excel kann ich das irgendwie. Mir war und ist nicht klar, wie ich in Word einfach sagen kann: kompletten Text durchlaufen. Das reicht mir hier ja schon.

Was wäre denn hier richtiger?

Du musst *zwingend* den Dateinamen kontextgerecht behandeln.

If ColName = "Rechnnr." Then
Rechnnr = Replace(MyReplace, "/", "-")

Schreibe Dir eine vernünftige Funktion. Füge diese in Deine allgemeine Schnippselsammlung ein.

(;-) - irgendwie bin ich mit dem Funktionsding da noch auf Kriegsfuss, weil das nicht genauso geht wie in Javascript oder PHP, aber ich werds schon hinbekommen. Der Rückgabewert muss immer so wie die Funktion heißen, gelle?

In Dateinamen sind bestimmte Zeichen nicht zugelassen. Sorge dafür, dass diese nicht verwendet werden.

da wäre dann noch der "" und vermutlich sonstwelcher kryptischer Krempel, den Windows nicht haben möchte.

http://msdn.microsoft.com/en-us/library/aa365247%28v=vs.85%29.aspx

* < (less than)
    * > (greater than)
    * : (colon)
    * " (double quote)
    * / (forward slash)
    * \ (backslash)
    * | (vertical bar or pipe)
    * ? (question mark)
    * * (asterisk)

In PHP kann ich ein Array übergeben, beim "zu ersetzenden" Parameter. Gibt es dazu eine Analogie bei VBA oder replace ich schön eins nach dem anderen? (;-)

Dank und Gruß

Robert aka jobo