Änderung in VBA-Makro

Hallo Reinhard,

du hast mir mal so super bei einem Makro geholfen, das bewirkt, dass
die erste Zeile eines Word-Dokumentes in das Empfänger-Feld von Outlook geschrieben wird, die 2. Zeile als Anrede im Outlook-Textfeld und die anderen beiden Zeilen mitten in einem Text. Anschließend wurden diese 4 Zeilen automatisch im Word-Dokument gelöscht und der Rest des Word-Dokumentes in ein PDF-File umgewandelt und als Anlage in den Outlook-Brief gepackt.

Funktioniert auch alles super - außer, wenn der Text in der 2. Zeile (Anrede mit Namen) einen Titel hat. Dann wird der Name abgeschnitten. (D.h. aus "Sehr geehrte Frau Dr. Mustermann) wird „Sehr geehrte Frau Dr.“ - und Mustermann kommt dann im Text)

Es müsst ja in diesem Bereich vom VBA-Code sein. Könntest du mir nochmal helfen! *ganzliebdreinschau*

Es müsste doch hier etwas geändert werden, oder?
For W = 0 To 1
arrWort(W) = Trim(ActiveDocument.Sentences(1))
ActiveDocument.Sentences(1).Delete
Next W

Vielen Dank und herzliche Grüße
Karin

Hier nochmal der ganze Code (vielleicht kann ihn ja noch jemand brauchen):

Sub Reservierungsbestätigung()

’ Reservierungsbestätigung_Makro

Dim appOut As Object, appMail As Object, arrWort(6) As String
Dim W As Integer, Mailtext As String
If InStr(ActiveDocument.Sentences(1), „@“) = 0 Then
MsgBox „in der ersten Zeile ist kein @“
Exit Sub
End If
For W = 0 To 1
arrWort(W) = Trim(ActiveDocument.Sentences(1))
ActiveDocument.Sentences(1).Delete
Next W
For W = 2 To 2
arrWort(W) = vbLf & „vielen Dank für Ihre Anfrage vom heutigen Tag.“ _
& vbLf & vbLf & „Gerne senden wir Ihnen als PDF-Datei unsere Reservierungsbestätigung zu.“ _
& vbLf & vbLf & „Wir freuen uns, Sie am " & Replace(ActiveDocument.Sentences(1), Chr(13), „“) & " bei uns begrüßen und verwöhnen zu dürfen und wünschen Ihnen schon jetzt eine“ _
& " angenehme Anreise und einen erholsamen Aufenthalt." & _
vbLf & „Bei Fragen stehen wir Ihnen gerne jederzeit zur Verfügung.“
ActiveDocument.Sentences(1).Delete
Next W
For W = 3 To 3
arrWort(W) = vbLf & „Freundliche Grüße“ _
& vbLf & vbLf & Replace(ActiveDocument.Sentences(1), Chr(13), „“) & vbLf & „-Reservierung-“ & vbLf & „Hotel“
ActiveDocument.Sentences(1).Delete
Next W
Mailtext = Mailtext & vbLf & arrWort(W)
Next W
ActiveDocument.ExportAsFixedFormat OutputFileName:=„E:\formular\PDF\Bestaetigung Reservierung.pdf“ _
, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
Set appOut = CreateObject(„Outlook.Application“)
Set appMail = appOut.CreateItem(0)
With appMail
.To = arrWort(0)
.CC = „“
.BCC = „“
.Subject = „Ihre Reservierungsbestätigung“
.Body = Mailtext
.Attachments.Add „E:\formular\PDF\Bestaetigung Reservierung.pdf“
.Display
'.Send
End With
End Sub

Hallo Karin,

Funktioniert auch alles super -

dann kannst du hexen :smile:
Denn der Code den du zeigtest kann nie im Leben funktionieren, da fehlt eine oder mehr Codezeile(n).
Das unterste „Next W“ vermisst verzweifelt sein vorhergehendes „For W = …“.

außer, wenn der Text in der 2.
Zeile (Anrede mit Namen) einen Titel hat. Dann wird der Name
abgeschnitten. (D.h. aus "Sehr geehrte Frau Dr. Mustermann)
wird „Sehr geehrte Frau Dr.“ - und Mustermann kommt dann im
Text)

For W = 0 To 1
arrWort(W) = Trim(ActiveDocument.Sentences(1))
ActiveDocument.Sentences(1).Delete
Next W
Es müsste doch hier etwas geändert werden, oder?

Dieser Codeabschnitt macht nicht viel.
Er weist der Arrayvariablen arrWort mit Index 0 den Inhalt des obersten Satzes im Worddokument zu.
Dann wird der oberste Satz gelöscht.
Dann weist der Code der Arrayvariablen arrWort mit Index 1 den Inhalt des nun obersten Satzes im Worddokument zu.
Dann wird der oberste Satz gelöscht.

Wenn da anscheinend der Satz „Sehr geehrte Frau Dr. Mustermann“
irgendwie aufgeteilt wird so hat der Code diese nicht als einen Satz erkannt.
Anders kann ich mir das nicht erklären, das Trim entspricht in etwa in Excel der Funktion „Glätten“, wenn es auch ein bißchen anders vorgeht.

Tu mir bitte einen Gefallen, du hast es da einfacher als ich weil ich zuviel Treffer erhalte.
Gehe mal hier links auf dein Profil, danach dort dann auf deine Artikel, und suche mal bitte die alte Beitragsfolge in den wahrscheinlichen Brettern.
Zeige hier dann den Link dazu.

Vielleicht ist ja da noch deine damilge Beispiel-Doc herunterzuladen wenn es eine gab.
Ansonsten lade mit file-upload o.ä. s. FAQ:2606 eine Beispiel-Dok hoch wo das geschieht was du beschreibst.

Und zeige den kompletten Code.

Gruß
Reinhard

Hi Reinhard,

hier ist der Fred von der urprünglichen Anfrage:

/t/wordtext-als-pdf-anhang-und-text-in-outlook/57615…

Wäre super, wenn du mir nochmal helfen könntest … und wieder mal 'ne Tasse Kaffee rüber reiche …

Die Fehler im Code vom 1. Posting kamen wohl daher, dass ich ein paar Sachen „anonymisiert“ habe - und dabei wohl zu viel als unwichtig ersehen habe.

Viele Grüße
Karin

Hallo Karin,

/t/wordtext-als-pdf-anhang-und-text-in-outlook/57615…

Wäre super, wenn du mir nochmal helfen könntest … und wieder
mal 'ne Tasse Kaffee rüber reiche …

Kaffee? Nix da. Die Bedingungen haben sich klimatisch sehr verändert.
Entweder selbstgemachter Glühwein aus z.B. Schlehenwein oder
friesich heißen Tee mit ordentlich Rum drinne, schick sowas rüber dann fange ich erst an *erpress* :smile:

Die Fehler im Code vom 1. Posting kamen wohl daher, dass ich
ein paar Sachen „anonymisiert“ habe - und dabei wohl zu viel
als unwichtig ersehen habe.

Wenn du mittel- bzw. langfristig die Möglichkeit nicht ausschließen
kannst wegen einem Vba-Code nachzufragen so MUßT du es können,
zu anonymisieren UND dabei den Code intakt zu lassen.

Stell dir das mal bildlich vor.
(Wenn du das tuen solltest nimm eine kamera mit und fotografiere die Gesichter im richtigen Moment, da ist Entgeisterung pur zu sehen *grien*)
Du schiebst dein Autochen zu einer Autowerkstatt und sagst denen,
dein Autochen springt so schlecht an und ob sie dir helfen könnten.
Für’n Kaffee machen die das doch glatt, öffnen die Motorhaube und
was sehen sie, einige Teile die normal dort zu sehen sind, fehlen.

Sie fragen nach und du sagst, ach Jungs, die sind unwichtig und spielen für das Problem keine Rolle, ich hab die ausgebaut und zu Hause liegen.
GENAU das ist der Moment um die Kamera zu zücken *lächel*

So, jetzt schau ich mal in den Link den du zeigtest.

Gruß
Reinhard

kleiner OT-Ausflug Re^4: Änderung in VBA-Makro
Lieber Reinhard,

ja, ja, ich war da etwas weiblich-brutal beim Anonymisieren, geb ich ja zu. Aber dafür hab ich eine nette Begebenheit zum Thema Automechaniker :smile:

An meinem Auto hat mit der Anzeige etwas nicht gestimmt, Automechaniker setzt sich auf den Fahrersitz und schaut es sich an. Frägt mich dann, ob ich das Handbuch greifbar habe. Ich hab ihn mit meinem strahlendsten Lächeln angeblickt und gesagt „Dafür muss ich dir zwischen die Beine greifen“ … und hab aus der Ablage unter dem Lenkrad das Handbuch heraus gezogen. In diesem Moment hätte ich sehr gerne eine Kamera in der Hand gehabt! :smile:

So - und jetzt reiche ich dir ganz heißen Glühwein und ein paar Scheite Holz für den Ofen rüber.

Ganz liebe Grüße
Karin

Stell dir das mal bildlich vor.
(Wenn du das tuen solltest nimm eine kamera mit und
fotografiere die Gesichter im richtigen Moment, da ist
Entgeisterung pur zu sehen *grien*)
Du schiebst dein Autochen zu einer Autowerkstatt und sagst
denen,
dein Autochen springt so schlecht an und ob sie dir helfen
könnten.
Für’n Kaffee machen die das doch glatt, öffnen die Motorhaube
und
was sehen sie, einige Teile die normal dort zu sehen sind,
fehlen.

Sie fragen nach und du sagst, ach Jungs, die sind unwichtig
und spielen für das Problem keine Rolle, ich hab die ausgebaut
und zu Hause liegen.
GENAU das ist der Moment um die Kamera zu zücken *lächel*

So, jetzt schau ich mal in den Link den du zeigtest.

Gruß
Reinhard

Hallo Karin,

*psssssst* schreib doch nicht OT in den Betreff, das lockt doch nur Fliegen, Mods und sonstige Plagegeister an :smile:
Dbei sollten die lieber sich um wichigere Dinge kümmern,
Skifahren gehen, im VB-Brett die zwei obersten beitragsfolgen ins richtige Brett beamen oder sowas *gg*

ja, ja, ich war da etwas weiblich-brutal beim Anonymisieren,

Warum fügst du bei weiblich noch brutal dazu?
Okay, verstehe, du wolltest nicht sagen:
Ich bin böse
sondern
Ich bin böse böse.
Klingt ehrlich, du scheinst nicht nur weibliche Gene zu haben *grien*

geb ich ja zu.

Aber dafür hab ich eine nette Begebenheit zum
Thema Automechaniker :smile:

An meinem Auto hat mit der Anzeige etwas nicht gestimmt,
Automechaniker setzt sich auf den Fahrersitz und schaut es
sich an. Frägt mich dann, ob ich das Handbuch greifbar habe.

? Ist mir völlig neu daß man zur Autowerkstatt das Handbuch mitschleppen müßte.
Aber okay, gibt soviele Modelltypen und das handbuch wäre die schnellere Methode das rauszufinden was er woll wissen wollte.
Ansonsten hätte er ja deine bezaubernde Nähe verlassen müssen und sich wie sonst üblich schlau machen müssen über das Automodell.

Ich hab ihn mit meinem strahlendsten Lächeln angeblickt und
gesagt „Dafür muss ich dir zwischen die Beine greifen“ …

Mannomann äh frauofrau, stell dir mal den Aufschrei in entsprechenden
Medien/Brettern vor wenn dr Automechaniker gesagt hätte
Ich muß DIR mal zwischen die Beine greifen und das dann auch gleich macht…

und hab aus der Ablage unter dem Lenkrad das Handbuch heraus
gezogen. In diesem Moment hätte ich sehr gerne eine Kamera in
der Hand gehabt! :smile:

Naja, sicher ein verblüfftes Gesicht auf dem Bild zu sehen.
Ein Gedankenleser KÖNNTE aus dem Bild deuten was er so gedacht haben mag:
Hä, wie, wasn das? Aber gar nicht übel, mach weiter, nö, das ist das falsche Handbuch, such weiter…
*kicher*

So - und jetzt reiche ich dir ganz heißen Glühwein und ein
paar Scheite Holz für den Ofen rüber.

Dankeschön, wenn ich mich daran erwärmt habe schau ich mir auch den Link an, sorry Lady, tat ich bislang noch nicht.

Gruß
Reinhard

/t/wordtext-als-pdf-anhang-und-text-in-outlook/57615…

Hallo Karin,

ich habe jetzt mal den Link überflogen.
Scheinbar hast du mir damals da eine Beispieldoc privat gemailt.
Das war aber vor zwei Jahren.
Die Mail habe ich also/aber nicht mehr weil ich dann doch mal alle Jahre gewaltig „aufräume“.

Und wie gesagt kann ich im Code nichts erkennen was direkt zu dem Fehler führen würde.
Ergo brauche ich von dir eine Doc wo das auftritt um an der zu testen.
Und deinen aktuellen Code, von mir aus anonymisiert aber dies sinnvoll.

Gruß
Reinhard

Hallo Reinhard,

ich habe die Datei jetzt einmal hier hochgeladen.

https://skydrive.live.com/redir.aspx?cid=518374a2ebe…

Bis auf den Export zu Outlook funktioniert es (vermutlich) auch. Teste das Makro doch bitte einmal so und einmal ohne das „Dr.“ in der 2. Zeile.

Liebe Grüße und vielen Dank für deine Mühe!
Karin

https://skydrive.live.com/redir.aspx?cid=518374a2ebe…

Bis auf den Export zu Outlook funktioniert es (vermutlich)
auch. Teste das Makro doch bitte einmal so und einmal ohne das
„Dr.“ in der 2. Zeile.

Hallo Karin,

ich habe eben mit dem Testen begonnen.
Nachfolgend Code der in der Testphase, also auch wenn du was austesten möchtest sehr sinnvoll ist.
Denn mein Code löscht ja im Dokument Zeilen, das ist kontraproduktiv wenn man mehrmals was testen will.
Denn dann muß man ja jedesmal das Dokument ungespeichert schließen, wieder öffnen usw.

Der nachfolgende Code ist da besser.
Er macht zu Anfang eine Kopie des Dokuments und „arbeitet“ dann in der Kopie.
D.h. man kann ihn starten, testen, was am Code ändern und erneut starten, das Originaldokumnt bleibt unangetastet.

Sofern ich nix vergessen habe habe ich das Neue fett markiert.
An den Stellen mußt du bei dir die Pfade anpassen.
Der Befehl
AR = Shell(…)
öffnet meinen AcrobatReader9.0 mit der PDF.
Da muß deinen Pfad und Name deines Programms rein mit dem du PDF öffnest.

Im Namen der Prozedur, des Makros war ein „ä“. Kann sogar sein von mir damals, bin nicht immer topfit :smile:. Ändere das bitte in „ae“.
Klappt zu 99% wenn man detsche Sonderzeichen benutzt aber das 1%
macht, wenn es zu Fehlern führt, Ärger.
Denn grad weil das zu 99% sonst klappte kann sich der Benutzer das erstmal nicht erklären.

Verzichte also bitte konsequent auf dt. Sonderzeichen in Namen.
Auch im Dateinamen.

Denn da KANN es z.B. geschehen daß du die Datei auf einer engl.-sprachigen Hochladseite hochladen willst und du kriegst eine Fehlermeldung. Wenn da kein genauerer Hinweis auf unleserischen Dateinamen kommt haste erstmal ein Problem und kommst ins Grübeln.
Denn sonst klappte das ja immer mit dort Dateien hochladen…

Muß eigentlich das Wort „Brieffenster“ im Text erscheinen?
ist das heutzutage nicht so eine Art Standard daß man bei Briefumschlägen mit Sichtfenster in dem Fenster oben
einzeilig mit sehr minimaler Schriftgröße den Absender angibt, zumindest bei Firmen?

Gruß
Reinhard

Option Explicit

Sub Reservierungsbestaetigung()
Dim appOut As Object, appMail As Object, arrWort(6) As String
Dim W As Integer, Mailtext As String **, AR**
**ThisDocument.Range.Copy  
Documents.Add.Content.PasteAndFormat wdPasteDefault** If InStr(ActiveDocument.Sentences(1), "@") = 0 Then
 MsgBox "in der ersten Zeile ist kein @"
 Exit Sub
End If
For W = 0 To 1
 arrWort(W) = Trim(ActiveDocument.Sentences(1))
 ActiveDocument.Sentences(1).Delete
Next W
For W = 2 To 2
 arrWort(W) = vbLf & "vielen Dank für Ihre Anfrage vom heutigen Tag." \_
 & vbLf & vbLf & "Gerne senden wir Ihnen als PDF-Datei unsere Reservierungsbestätigung zu." \_
 & vbLf & vbLf & "Wir freuen uns, Sie am " & Replace(ActiveDocument.Sentences(1), Chr(13), "") & " im Musterhotel begrüßen und verwöhnen zu dürfen und wünschen Ihnen schon jetzt eine" \_
 & " angenehme Anreise und einen erholsamen Aufenthalt." & \_
 vbLf & "Bei Fragen stehen wir Ihnen gerne jederzeit zur Verfügung."
 ActiveDocument.Sentences(1).Delete
Next W
For W = 3 To 3
 arrWort(W) = vbLf & "Freundliche Grüße aus dem schönen Bayern" \_
 & vbLf & vbLf & Replace(ActiveDocument.Sentences(1), Chr(13), "") & vbLf & "-Reservierung-" & vbLf & "Musterhotel"
 ActiveDocument.Sentences(1).Delete
Next W
arrWort(4) = vbLf & "Zu Ihrer Anreise:" & vbLf & "Bitte folgen Sie bla bla bla "
arrWort(5) = "Gerne stellen wir für Ihren PKW einen komfortablen Stellplatz in unserer Tiefgarage zum Preis von täglich € 3,50 zur Verfügung."
arrWort(6) = "" & vbLf & \_
"Sollten Sie mit der Bahn anreisen, werden Sie gerne von unserem Hausdiener am Bahnhof abgeholt." \_
& vbLf & "Bitte teilen Sie uns 1 - 2 Tage vor Reiseantritt Ihre Ankunftszeit mit."
Mailtext = "Beginn" & vbLf
For W = 1 To 6
 Mailtext = Mailtext & vbLf & W & " - " & arrWort(W)
Next W
'MsgBox Mailtext
ActiveDocument.ExportAsFixedFormat OutputFileName:= **"K:\kwBestaetigung.pdf"** \_
 , ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= \_
 wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, \_
 Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, \_
 CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, \_
 BitmapMissingFonts:=True, UseISO19005\_1:=False
**AR = Shell("C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe K:\kwBestaetigung.pdf")**  
'ActiveDocument.ExportAsFixedFormat OutputFileName:="E:\PROTEL\formular\PDF\Bestaetigung.pdf" \_
' , ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= \_
' wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, \_
' Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, \_
' CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, \_
' BitmapMissingFonts:=True, UseISO19005\_1:=False
Set appOut = CreateObject("Outlook.Application")
Set appMail = appOut.CreateItem(0)
With appMail
 .To = arrWort(0)
 .CC = ""
 .BCC = ""
 .Subject = "Ihre Reservierungsbestätigung"
 .Body = Mailtext
 .Attachments.Add **"K:\kwBestaetigung.pdf"**
 '.Attachments.Add "E:\PROTEL\formular\PDF\Bestaetigung.pdf"
 .Display
 '.Send
End With
End Sub

https://skydrive.live.com/redir.aspx?cid=518374a2ebe…

Bis auf den Export zu Outlook funktioniert es (vermutlich)
auch. Teste das Makro doch bitte einmal so und einmal ohne das
„Dr.“ in der 2. Zeile.

Hallo Karin,

das tat ich aber irgendwie ist das Ergebnis so oder so nicht richtig, Dr. hin oder her.

Irgendwie hängt das mölicherweise an diesen Mergefields.
Ich weiß zwar daß man damit in Word, ggfs. mit IF verknüpft Bedingungen formulieren kann ob da z.B. Herr oder Frau erscheint.
Aber mich stören die gewaltig da ich von Word/Word-Vba sehr wenig weiß.

Es ist doch so wenn ich das korrekt verstanden habe, du hast da das Programm x, damit erstellst du so ein Worddokument.
In den obersten Zeilen steht dieses:

[email protected]
Sehr geehrte Frau Dr. Mustermann,
02.06.12
Franz Mustermann

Woher kriegt das Dokument eigentlich die Information wann diese Dame wieder abreist? Denn im Dokument steht als (geplante) Aufenthaltsdauer 2.6-14.6.

Mir wäre es sehr lieb, du löschst da alle diese mergefields.
Das mit Hyperlink kannste stehen lassen, funktioniert scheinbar.
Anstelle der mergefields setzt du Textmarken.

Die obersten Zeilen änderst du ab sodaß sie so aussehen:

Mailadresse
Titel
Anrede
Name
Von
Bis
Franz Mustermann (wer immer das ist als ChefIN :smile:)

Dann werte ich diese Kopfzeilen aus und füge sie an den entsprechenden Textmarken korrekt ein, also mit geehrte bzw. geehrter.
Auch für Textmarke „dauer“ o.ä. berechne ich dann wie in deinem Beispiel die 12 und füge sie ein.

Überdenke mal bitte ob dieser neue Ansatz für dich brauchbar ist.
Wenn ja und ich finde eine Vba-Lösung dafür dann ist es m.E. für mich einfach die umzustricken sodaß sie auch funktioniert wenn du eine Bestätigung an eine Firma oder kegelclub schicken willst die grad mal 8 Zimmer für paar Tage bestellt haben.

Gruß
Reinhard

Hallo Reinhard,

vielen Dank für die Rückmeldung!

Das Dokument erhält An- und Abreise sowie die Aufenthaltsdauer aus unserem Hotelprogramm. Da brauchst du nichts berechnen. Die ersten 4 Zeilen werden ins Outlook übernommen, hier kommt dann nur, dass wir uns auf die Anreise des Gastes am Anreisetag freuen. Der komplette Brief ist dann ja als PDF in der Anlage mit allen weiteren Informationen. (Das Hotelprogramm soll ja auch was machen:wink:)

Die Mergefields kommen wohl auch direkt vom Hotelprogramm (hier gebe ich im Vorlagentext ja spezielle Textfelder von dort ein). Aber auch wenn ich sie hier im Beispieltext lösche, ändert sich nichts an meinem „Titel-Problem“

Natürlich kommt nicht „Brieffenster“ über der Adresse, ich war nur zu faul, „Musterhotel, Bayern“ zu schreiben :wink:

Dein Ansatz ist gut, aber zu viel des Guten. Du hast das beim ersten Mal schon super gemacht - nur dieser „Titel“ will noch nicht so.

Liebe Grüße
Birgit

Hallo Karin-Birgit :smile:

muß ja da ein ganzes Hotel voller Damen sein, hochinteressant.
Mal schauen ob ich dich/euch dann doch zu Vba überreden kann.
Dann schickt mir mein Code heimlich still und leise eine Reservierungsbestätigung von Euch wo ihr bestätigt daß ich in dem
Hotel eine Woche lang auf Kosten des hauses logieren darf, Allk inclusive inbegriffen *lächel*

Das Dokument erhält An- und Abreise sowie die Aufenthaltsdauer
aus unserem Hotelprogramm. Da brauchst du nichts berechnen.
Die ersten 4 Zeilen werden ins Outlook übernommen, hier kommt
dann nur, dass wir uns auf die Anreise des Gastes am
Anreisetag freuen. Der komplette Brief ist dann ja als PDF in
der Anlage mit allen weiteren Informationen. (Das
Hotelprogramm soll ja auch was machen:wink:)

Ist okay. Makro bedeutet ja sowas wie automatisierte Ablauf.
Mit ein Sinn dessen ist daß man/frau alle Daten nur einmalig eingeben/einlesen lassen muß.
Den Rest macht dann die Software.

Gewissermaßen Kolateralschadens des ganzen ist dann das alles viel schneller geht als vorher. Was dann Arbeitsplätze gefährdet.
Dadurch daß du/ihr jetzt z.B. den Anreisetag doppelt eingebt
sichert ihr eure Arbeitsplätze.

Dieses „doppelt eingeben“ erscheint jetzt vernachlässigbar klein,
aber davon viel mehr und übers Jahr gerechnet bringt dann locker
eine Zeitersparnis von Tagen, Wochen, Monaten.

Die Mergefields kommen wohl auch direkt vom Hotelprogramm
(hier gebe ich im Vorlagentext ja spezielle Textfelder von
dort ein). Aber auch wenn ich sie hier im Beispieltext lösche,
ändert sich nichts an meinem „Titel-Problem“

Zugegeben, das mit dem Titel, also Dr., habe ich nur sehr kurz getestet und konnte erst mal keinen Unterschied feststellen.

Zu meinen Wordkenntnissen.
Diese Zeile
Ein herzliches Grüß Gott Frau Dr. Mustermann {MERGEFIELD Titel},
schreckt mich ab.
Sorum würde ich es ja noch nach meiner Logik die absolut nichts mit der von Word zu tun hat verstehen *glaub*
Ein herzliches Grüß Gott Frau {MERGEFIELD Titel} Mustermann,

„Titel“ ist doch ein von dir vergebener Name, wie wo hast du definiert was sich hinter „Titel“ verbirgt?

Mit welchem Tastenkürzel schaltet man eigentlich um?
Also daß da nicht steht
{HYPERLINK "http://www.musterhotel.de"}
sondern halt der anklickbare Link?
Tastenkombinationen mit F9 habe ich schon durch, habe ich da eine übersehen?

nur dieser „Titel“ will noch nicht so.

Problematisch, mein Vorgehen willste nicht und ich hab noch im bisherigen Vorgehen leichte *hüstel* Probleme mit Wordgrundlagen.

Mal schauen was du antwortest, vielleicht erspare ich mir mich in die Wordgrundlgen zu Mergefiels zu vertiefen, *auch faule Socke bin* :smile:

Gruß
Reinhard

Hallo Karin.

Funktioniert auch alles super - außer, wenn der Text in der 2.
Zeile (Anrede mit Namen) einen Titel hat. Dann wird der Name
abgeschnitten. (D.h. aus "Sehr geehrte Frau Dr. Mustermann)
wird „Sehr geehrte Frau Dr.“ - und Mustermann kommt dann im
Text)

If InStr(ActiveDocument.Sentences(1), „@“) = 0 Then

Ich habe von Word-VBA wirklich extrem wenig Ahnung, aber trotzdem möchte ich mich kurz einmischen, weil ich den starken Verdacht habe, dass „Sehr geehrte Frau Dr.“ für Word ein abgeschlossener Satz ist (ActiveDocument.Sentences), denn hinter „Dr.“ steht ja ein Punkt.

Wäre zumindest eine Möglichkeit.

VG
Carsten

Ich habe von Word-VBA wirklich extrem wenig Ahnung, aber
trotzdem möchte ich mich kurz einmischen, weil ich den starken
Verdacht habe, dass „Sehr geehrte Frau Dr.“ für Word ein
abgeschlossener Satz ist (ActiveDocument.Sentences), denn
hinter „Dr.“ steht ja ein Punkt.

Hallo Carsten,

du hast Recht, dieser Punkt störte, dankeschön
Dazu kam ich hatte die ganze Zeit an der falschen „Dr.“ - Stelle
mein Augenmerk :frowning:
Dieses Mist {Mergefield Titel} hat mich vollkommen irritiert :frowning:(

Ich weiß bis heute nicht was das soll. Die Hilfe sagt es hätte was mit
Seriendruck zu tun, den kann ich da, noch dazu in Word 2007 nirgends entdecken :frowning:((

@Karin, nachstehend der neueste Code. Teste ihn ausgiebig.
Ruhig mehrmals nacheinander.
Wie du vielleicht schon erkannt hast kannst du im Mailtxt mit
vbCRLF
Leerzeilen einfügen um den Text zu formatieren.

Die Pdf müßte jetzt drei Zeilen unterhalb des Textes in der mail erscheinen. Vorher kam sie bei MIR mitten im Text.
Das kann aber daran liegen daß ich zwar Excel 2007 habe aber nur Outlook 2000.

Beim Testen, schließe vor dem Makroaufruf das ggfs. noch offene Fenster mit der Pdf vom vorigen Test sonst stoppt das Makro.

Gruß
Reinhard

Sub Reservierungsbestaetigung()
Dim appOut As Object, appMail As Object, arrWort(6) As String
Dim W As Integer, Mailtext As String, AR
ThisDocument.Range.Copy
Documents.Add.Content.PasteAndFormat wdPasteDefault
If InStr(ActiveDocument.Sentences(1), "@") = 0 Then
 MsgBox "in der ersten Zeile ist kein @"
 Exit Sub
End If
For W = 0 To 1
 arrWort(W) = Trim(ActiveDocument.Sentences(1))
 ActiveDocument.Sentences(1).Delete
Next W
If InStr(arrWort(1), ".") \> 0 Then
 arrWort(1) = arrWort(1) & Trim(ActiveDocument.Sentences(1))
 ActiveDocument.Sentences(1).Delete
End If
For W = 2 To 2
 arrWort(W) = vbLf & "vielen Dank für Ihre Anfrage vom heutigen Tag." \_
 & vbLf & vbLf & "Gerne senden wir Ihnen als PDF-Datei unsere Reservierungsbestätigung zu." \_
 & vbLf & vbLf & "Wir freuen uns, Sie am " & Replace(ActiveDocument.Sentences(1), Chr(13), "") & " im Musterhotel begrüßen und verwöhnen zu dürfen und wünschen Ihnen schon jetzt eine" \_
 & " angenehme Anreise und einen erholsamen Aufenthalt." & \_
 vbLf & "Bei Fragen stehen wir Ihnen gerne jederzeit zur Verfügung."
 ActiveDocument.Sentences(1).Delete
Next W
For W = 3 To 3
 arrWort(W) = vbLf & "Freundliche Grüße aus dem schönen Bayern" \_
 & vbLf & vbLf & Replace(ActiveDocument.Sentences(1), Chr(13), "") & vbLf & "-Reservierung-" & vbLf & "Musterhotel"
 ActiveDocument.Sentences(1).Delete
Next W
arrWort(4) = vbLf & "Zu Ihrer Anreise:" & vbLf & "Bitte folgen Sie bla bla bla "
arrWort(5) = "Gerne stellen wir für Ihren PKW einen komfortablen Stellplatz in unserer Tiefgarage zum Preis von täglich € 3,50 zur Verfügung."
arrWort(6) = "" & vbLf & \_
"Sollten Sie mit der Bahn anreisen, werden Sie gerne von unserem Hausdiener am Bahnhof abgeholt." \_
& vbLf & "Bitte teilen Sie uns 1 - 2 Tage vor Reiseantritt Ihre Ankunftszeit mit."
For W = 1 To 6
 Mailtext = Mailtext & arrWort(W)
Next W
Mailtext = vbCrLf & Mailtext & String(3, vbCrLf)
ActiveDocument.ExportAsFixedFormat OutputFileName:="K:\kwBestaetigung.pdf" \_
 , ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= \_
 wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, \_
 Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, \_
 CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, \_
 BitmapMissingFonts:=True, UseISO19005\_1:=False
AR = Shell("C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe K:\kwBestaetigung.pdf")
'OutputFileName:="E:\PROTEL\formular\PDF\Bestaetigung.pdf"
Set appOut = CreateObject("Outlook.Application")
Set appMail = appOut.CreateItem(0)
With appMail
 .To = arrWort(0)
 .CC = ""
 .BCC = ""
 .Subject = "Ihre Reservierungsbestätigung"
 .Body = Mailtext
 .Attachments.Add "K:\kwBestaetigung.pdf"
 .Attachments(1).Position = Len(Mailtext)
 '.Attachments.Add "E:\PROTEL\formular\PDF\Bestaetigung.pdf"
 .Display
 '.Send
End With
End Sub

Dokument Outlook PDF Anhang senden Mail owT
Hallo,

nur Betreff-Änderung für das Archiv.

Gruß
Reinhard

Hallo Reinhard.

Seriendruck zu tun, den kann ich da, noch dazu in Word 2007
nirgends entdecken :frowning:((

Der Seriendruck in Word 2007 befindet sich im Tab „Sendungen“.

VG
Carsten

Seriendruck zu tun, den kann ich da, noch dazu in Word 2007
nirgends entdecken :frowning:((

Der Seriendruck in Word 2007 befindet sich im Tab „Sendungen“.

Hallo Carsten,

danke, aber das hatte ich schon gefunden. Und wenn das Dokument das Hauptdolument eines Seriendrucks wäre so müßte ich ja wohl irgendwo die Namen der einzufügenden Seriendruckfelder sehen um sie einfügen zu können.
Aber bei dem Dokument handelt es sich m.E. nicht um ein Hauptdokument
eines Seriendrucks.

Aber jetzt hat ja Thomas die Folge in’s Word-Brett verschoben,
das steigert meine Chance daß mir bitteschön mal endlich jmd. erklärt
was es mit dem „{Mergefield Titel}“ auf sich hat.
{Hyperlink „webadresse“} ist ja leicht zu kapieren.

Leider ist F1 bei Word 2007 m.E. eine katastrophe wie in Excel 2007 auch :frowning:
Und F1 in 2000 finde ich um Klassen besser. Aber da steht einzig
daß Mergefield bei Seriendruck verwendet wird.
Das wiederum verstehe ich ja, ich habe schon manuell und auch per Vba
Seriendruck in Word durchgeführt.
Und bei manuell hab ich ja da die Liste der einfügbaren Seriendruckfelder.

Hier im Fall aber nicht :frowning:

Ich hoffe ich konnte mich verständlich machen bei dem was ich da mit dem Titel nicht verstehe.

Gruß
Reinhard

Hallo Reinhard,

ich glaube, diese Mergefield hab ich verbrochen, als ich testen wollte, wie ich einen möglichen Titel eines Gastes statt in die Zeile mit „Frau“ vor den Namen stellen kann. Also einfach nicht beachten, war ein Fehlversuch von mir, an den ich gar nicht mehr gedacht habe.

Beim Code bin ich noch am Testen, ich melde mich!

Liebe Grüße
Karin

Hallo Reinhard,

ich habe es jetzt unserem Original wieder angepasst, getestet und für super befunden!!!

Herzlichen Dank nochmal!!!

Viele liebe Grüße
Karin