HERBERS Excel-Forum - das Archiv
Empfänger auswählen per vba
Peter

Hallo, einen schönen Tag.
Ich bitte Euch um Hilfe.
Ich möchte mit Word 2013 einen Serienbrief öffnen, bei welchem beim Öffnen per Makro
der Empfänger aus einer bestehenden Liste ausgewählt wird.
Habe mir folgendes Makro aufgezeichnt:
Sub Makro_Empfänger_auswählen()
' Makro_Empfänger_auswählen Makro
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Users\Peter\Desktop\Test1\Mappe_SVerweis_Mehrere_Treffer_25.07.2015.xlsm", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\Peter\Desktop\ _
Test1\Mappe_SVerweis_Mehrere_Treffer25.07.2015.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;J" _
, SQLStatement:="SELECT * FROM `Tabelle1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
End Sub

Jetzt möchte ich aber, da sich der Name der Datei bezüglich dem Datum ändert, dass automatisch die entsprechende Datei ausgewählt wird, welche in dem Verzeichnis "Test1" steht. In diesem Verzeichnis steht immer nur eine Datei mit gleichem Namen jeweils anderem Datum am Ende.
Danke für Eure Hilfe.
Gruss Peter

AW: Empfänger auswählen per vba
Michael

Hi Peter,
probier mal folgendes Makro:
Sub test()
Dim datum As String, tabelle As String
datum = Format(Now(), "dd.mm.yyyy")
MsgBox datum
tabelle = "C:\Users\Peter\Desktop\Test1\Mappe_SVerweis_Mehrere_Treffer_" & datum & ".xlsm"
MsgBox tabelle
End Sub
So ermittelst Du das Tagesdatum und fügst es in eine String-Variable, die Du dann entsprechend in Deinen Code einsetzt:
Sub Makro_Empfänger_auswählen()
' Makro_Empfänger_auswählen Makro
Dim datum As String, tabelle As String
datum = Format(Now(), "dd.mm.yyyy")
'MsgBox datum
tabelle = "C:\Users\Peter\Desktop\Test1\Mappe_SVerweis_Mehrere_Treffer_" & datum & ".xlsm"
'MsgBox tabelle
ActiveDocument.MailMerge.OpenDataSource Name:= tabelle, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _

usw.
Übrigens hast Dein Makro in der ersten Pfadangabe einen Unterstrich vor dem Datum, in der zweiten nicht!
Schöne Grüße,
Michael

Vielen Dank
Peter

Hallo Michael,
besten Dank für Deinen Lösungsvorschlag.
Dieser funktioniert einwandfrei.
Wünsche noch eine schöne Zeit
Gruss Peter

freut mich, danke für die Rückmeldung owT
Michael

Empfänger auswählen per vba
Peter

Hallo, einen schönen Tag.
Ich bitte Euch um Hilfe.
Ich möchte mit Word 2013 einen Serienbrief öffnen, bei welchem beim Öffnen per Makro
der Empfänger aus einer bestehenden Liste ausgewählt wird.
Habe mir folgendes Makro aufgezeichnt:
Sub Makro_Empfänger_auswählen()
' Makro_Empfänger_auswählen Makro
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Users\Peter\Desktop\Test1\Mappe_SVerweis_Mehrere_Treffer_25.07.2015.xlsm", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\Peter\Desktop\ _
Test1\Mappe_SVerweis_Mehrere_Treffer25.07.2015.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;J" _
, SQLStatement:="SELECT * FROM `Tabelle1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
End Sub

Jetzt möchte ich aber, da sich der Name der Datei bezüglich dem Datum ändert, dass automatisch die entsprechende Datei ausgewählt wird, welche in dem Verzeichnis "Test1" steht. In diesem Verzeichnis steht immer nur eine Datei mit gleichem Namen jeweils anderem Datum am Ende.
Danke für Eure Hilfe.
Gruss Peter

AW: Empfänger auswählen per vba
Michael

Hi Peter,
probier mal folgendes Makro:
Sub test()
Dim datum As String, tabelle As String
datum = Format(Now(), "dd.mm.yyyy")
MsgBox datum
tabelle = "C:\Users\Peter\Desktop\Test1\Mappe_SVerweis_Mehrere_Treffer_" & datum & ".xlsm"
MsgBox tabelle
End Sub
So ermittelst Du das Tagesdatum und fügst es in eine String-Variable, die Du dann entsprechend in Deinen Code einsetzt:
Sub Makro_Empfänger_auswählen()
' Makro_Empfänger_auswählen Makro
Dim datum As String, tabelle As String
datum = Format(Now(), "dd.mm.yyyy")
'MsgBox datum
tabelle = "C:\Users\Peter\Desktop\Test1\Mappe_SVerweis_Mehrere_Treffer_" & datum & ".xlsm"
'MsgBox tabelle
ActiveDocument.MailMerge.OpenDataSource Name:= tabelle, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _

usw.
Übrigens hast Dein Makro in der ersten Pfadangabe einen Unterstrich vor dem Datum, in der zweiten nicht!
Schöne Grüße,
Michael

Vielen Dank
Peter

Hallo Michael,
besten Dank für Deinen Lösungsvorschlag.
Dieser funktioniert einwandfrei.
Wünsche noch eine schöne Zeit
Gruss Peter

freut mich, danke für die Rückmeldung owT
Michael

Bewerten Sie hier bitte das Excel-Portal