Excel-Datei auslesen und Wert einfügen?

Habe ein Rechnungsausgangsbuch in Excel. Die Rechnungsnummern stehen in Spalte A untereinander (keine Leerzeilen). Rechnungen schreibe ich überwiegend in Word. Ist es möglich, dass ich in Word ein Makro einfüge, das beim Aufruf des Dokumentes automatisch meine Excel-Liste prüft und die nächste freie Rechnungsnummer in eine bestimmte Textmarke einfügt? Die nächste Rechnungsnummer wäre im Prinzip das letzte Feld in Spalte A + 1. Es muß allerdings sichergestellt sein, dass wenn ich eine abgespeicherte Rechnung wieder aufrufe, nicht wieder eine aktuelle Rechnungsnummer eingetragen wird, sondern die bereits vergebenen Bestand hat.

Danke schonmal!

Hallo Paul !

Wenn ich dich richtig verstanden habe, suchst Du eine Möglichkeit, deinem Word Dokument eine Automatische Nummerierung hinzuzufügen. Ob und wie es geht diese Nummerierung von Excel zu übernehmen, kann ich dir leider nicht sagen. Aber es gäbe auch noch einen anderen Weg (eventuell). Du kannst in Word selber eine automatische Nummerierung einfügen. Dazu führst Du folgende Schritte aus:

1.) Du legst Dir eine Tabelle an, in der eine Spalte für die Nummerierung zuständig ist.

2.) Diese Spalte markierst Du nun und gehst auf den Befehl einfügen.

3.) Dort klickst Du die Option Feld an.

4.) Im nun erscheinenden neuen Menü wählst Du auf der linken Seite den Eintrag Nummerierung.

5.) Auf der rechten Seite wählst Du aus den daraufhin erscheinenden Einträgen den Eintrag AutoNr.

6.) Nun brauchst Du deine Auswahl nur noch mit OK zu bestätigen und Word Nummeriert Deine Liste automatisch bei jedem neuen Eintrag den Du machst.

Der Rest dürfte eigentlich kein Problem sein. Du brauchst nur diese Nummern nach Excel rüberzukopieren, und das ist ja wohl kein Thema.

Mit freundlichen Grüßen Albert.

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

Das geht etwa so:

Dim I As Long, Merk As Long
Do
 I = I + 1
 If Cells(I, 1) = "" Then
 Merk = 123 ' Startwert
 If I \> 1 Then Merk = Val(Cells(I - 1, 1)) + 1
 Cells(I, 1) = Merk
 Exit Do
 End If
Loop

Dim oWord As New Word.Application
With oWord
 .Visible = True
 .Documents.Add "I:\Samples\vorlage.dot"
 With .Selection
 .Goto What:=wdGoToBookmark, Name:="Rechnungsnummer"
 .TypeText CStr(Merk)
 End With
 .ActiveDocument.SaveAs "C:\Ablage\Rechnung" & Format(Merk, "0000") & ".doc"
 .Quit
End With
Set oWord = Nothing

Verweis auf die Word-Objektbibliothek nicht vergessen!
Ich würde so etwas allerdings in einer Datenbank verwalten.

Gruß aus dem Norden
Reinhard Kraasch (http://www.kraasch.de - Access/VBA Tipps & Tricks)

Danke - werd ich mal probieren!

Äh - ist es eigentlich ein Problem, daß die Excel-Datei PW-geschützt ist??? Ich meine sowas brisantes lasse ich natürlich nicht ohne Schutz auf dem Server liegen.

-Paul

Nun, der Code bezieht sich ja auf die Automation aus Excel heraus (z.B. in einer Schaltfläche o.ä.) - du musst dann das Passwort schon eingegeben haben, damit das dann läuft. Etwas anderes ist es, wenn deine Word-Dateien passwortgeschützt sind bzw. sein sollen …

Gruß aus dem Norden
Reinhard Kraasch (http://www.kraasch.de - Access/VBA Tipps & Tricks)