Hi Folks
Ich habe leider keine VBA Kenntnisse.
Mein Problem: Ich habe eine Worddoc das noch nicht gespeichert ist.
In dem Text steht nun irgendwo Rechnungsnummer: xxxxxx-xx.
Wie bringe ich es Word bei, daß es bei einem klick auch speichern unter den Wert von xxxxxx-xx verwendet?
E!s würde mir auch schon genügen den Wert von xxxxxx-xx in die Zwischenablage zu kopieren.
TNX & CU Fr@nkie
The Truth Is Out There … ;o)
Beispiel-Makro
Hallo Frankie, hier ein Beispiel-Makro:
Public Sub SpeichereDokument()
Const strBasispfad As String = "C:\Rechnungen\"
Dim strNummer As String
Dim dto As DataObject 'Nur für Zwischenablage
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
With Selection
.MoveRight wdCell
.MoveDown wdLine
.MoveLeft wdCell
.HomeKey wdLine
.EndKey wdLine, wdExtend
strNummer = .Text
End With
Set dto = New DataObject 'Nur für Zwischenablage nötig:
dto.Clear
dto.SetText strNummer
dto.PutInClipboard
Set dto = Nothing
ActiveDocument.SaveAs strBasispfad & strNummer & ".doc"
ActiveDocument.Close
End Sub
Das Makro über Extras-Anpassen in die Symbolleiste oder das Dateimenü setzen und dann statt des normalen Speichern-Symbols anklicken
Gruß,
Michael
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Michael
Dank Deiner Hilfe bin ich der Problemlösung schon einen Großen Schritt nähergekommen.
So sieht es nun aus. Nur wäre es noch schön wenn Word noch fragen würde ob es die evtl. vorhandene Datei überschreiben soll.
TNX Fr@nkie
Sub Rechnungsnummer()
Const strBasispfad As String = "d:\@ Die Leuchten\Kunden Rechnungen\"
Dim strNummer As String
With Selection.Find
.Text = "Rechnungsnummer:"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
With Selection
.Find.Execute
.MoveRight Unit:=wdCharacter, Count:=2
.MoveRight Unit:=wdCharacter, Count:=9, Extend:=wdExtend
Selection.Copy
strNummer = .Text
End With
ActiveDocument.SaveAs strBasispfad & strNummer & ".doc"
End Sub
Dim strPfad As String
strPfad = strBasispfad & strNummer & ".doc"
If Dir(strPfad) "" Then
If MsgBox("Überschreiben?", vbYesNo) = vbYes Then
ActiveDocument.SaveAs strPfad
Else
ActiveDocument.SaveAs InputBox("Neuer Name?", , strPfad)
End If
End If
1 „Gefällt mir“