Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
884to888
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Serienbrief Excel

Serienbrief Excel
04.07.2007 17:43:00
Sebastian
Ich habe folgenden Code (siehe unten), der aus Excel heraus einen Serienbrief erstellt und eine Excel datenquelle hinzufügt. Funktioniert so weit gut.
Wenn ich aber nun über excel dem seienbrief felder hinzufügen will (z.B. Anrede), bekomme ich in der Zeile

.ActiveDocument.Fields.Add Range:=Selection.Range, Type:=wdFieldMergeField, Text:="""Anrede"""
'.Selection.TypeText Text:=" "
'.ActiveDocument.Fields.Add Range:=Selection.Range, Type:=wdFieldMergeField, Text:=""" _
Name"""


die Fehlermeldung:
Laufzeitfehler 450
Falsche Anzahl an Argumenten oder üngültige zuweisung zu einer Eigenschaft
kann mir jemand weiterhelfen?


Private Sub PersoEmail_Click() ' personalisiert email
Dim q As Integer
Dim z As Integer
Dim LastRow As Long
z = 2
LastRow = Cells(Cells.Rows.Count, 4).End(xlUp).Row
For q = 10 To LastRow + 1
If Rows(q).EntireRow.Hidden = False Then
Worksheets("Dummy").Cells(z, 1) = Worksheets("Adressen").Cells(q, 1)
Worksheets("Dummy").Cells(z, 2) = Worksheets("Adressen").Cells(q, 2).Value & " " &  _
Worksheets
("Adressen").Cells(q, 4).Value
Worksheets("Dummy").Cells(z, 3) = Worksheets("Adressen").Cells(q, 5)
z = z + 1
Else
End If
Next q
'-------------------------------------------- mail merge --------------------------------------- _
_
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
With WordApp
.Documents.Add DocumentType:=wdNewBlankDocument
.ActiveDocument.MailMerge.MainDocumentType = wdEMail
.ActiveDocument.MailMerge.OpenDataSource Name:="C:\Dokumente und Einstellungen\Desktop\  _
_
Email Verteilerliste Version 2.0.xls", ConfirmConversions:=False, ReadOnly:=False, LinkToSource: _
=True, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, Connection:="Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Dokumente und Einstellungen\Desktop\Email Verteilerliste Version 2.0.xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Regi", SQLStatement:="SELECT * FROM `Dummy$`", SQLStatement1:="", SubType:=wdMergeSubTypeAccess
.ActiveDocument.Fields.Add Range:=Selection.Range, Type:=wdFieldMergeField, Text:=""" _
Anrede"""
'.Selection.TypeText Text:=" "
'.ActiveDocument.Fields.Add Range:=Selection.Range, Type:=wdFieldMergeField, Text:=""" _
Name"""
End With
End Sub


1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Serienbrief Excel
08.07.2007 12:34:00
Hans-Joachim
Für Serienbriefe in Exel habe ein Arbeitsblatt mit der Adressliste mit "Kundennummern" und ein Arbeitsblatt mit dem Text z.B. "Rechnung". Per Sverweis über die Kundennummer wird das Adressfeld mit allen erforderlichen Angaben versehen.
Die Nummern fangen mit 10000 an. In N16 steht die Kundennummer. In N17 die höchste Nummer. Ist die höchste Nummer erreicht, wird die Prozedur beendet. Ist kein Rechnungsbetrag vorhanden, wird die Kundennummer um den Faktor 1 hochgezählt. In R12 wird die Anzahl der gewünschten Kopien eingetragen. In I2 steht "Rechnungskopie".
Vielleicht klappt das ja bei dir.
Gruß Hans

Sub Serien_Rechnung_drucken()
'Serien_Rechnung_drucken Makro
'Sicherheitsabfrage
Question = MsgBox("Wollen Sie wirklich ALLE Rechnungen drucken?", vbYesNo, "Alle Rechnungen  _
drucken")
If Question = vbNo Then GoTo 200
'Bildschirmaktualisierung ausschalten.
'    Application.ScreenUpdating = False
ActiveSheet.Unprotect ("passwort")
'erste Kundennummer einsetzen und Prozedur starten
[N16] = 10000
'Wenn Rechnungsformular leer, dann Prozedur abbrechen,
100     If [N16] > [N17] Then GoTo 200
'wenn kein Rechnungbetrag eingetragen, dann nächste Kundennummer wählen
If [Q2] = 0 Then GoTo 150
'Zur Rechnungsnummer Eins hinzuzählen.
[R5] = [R5] + 1
'dann angezeigte Rechnung drucken.
'Originalrechnungen drucken
Range("I2").Select
Selection.Font.ColorIndex = 2 'Schriftfarbe weiß
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'Rechnungsduplikat drucken
'    Range("I2").Select
'    Selection.Font.ColorIndex = 15 'Schriftfarbe hellgrau
'    ActiveWindow.SelectedSheets.PrintOut Copies:=Range("R12"), Collate:=True
'Eins zur Kundennummer hinzuzählen.
150    [N16] = [N16] + 1
'Prozedur bis zur letzten Kundennummer wiederholen.
GoTo 100
'Duplikat ausblenden,
200    Range("I2").Select
Selection.Font.ColorIndex = 2 'Schriftfarbe weiß
'erste Kundennummer einsetzen,
[N16] = 10000
'Rechnungsnummer auf Null setzen,
[R11] = 0
'Zelle mit Kundennummer auswählen
Range("N16").Select
'Blatt schützen,
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=(" _
Passwort")
'und Prozedur beenden.
End Sub


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige