Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
VBA Serienbrief Empfänger suchen und auswählen
Gehe zu Seite 1, 2, 3  Weiter
zurück: Excel Verknüpfung in Word weiter: Daten aus Excel automatisch in ein Word-Dokument übernehmen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast



Verfasst am:
07. März 2010, 14:25
Rufname:

VBA Serienbrief Empfänger suchen und auswählen - VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Hallo an alle,

ich habe folgendes Problem.
Ich habe einen Serienbrief erstellt, der die Empfänger-Daten aus einer Excel-Tabelle erhält. Da ich aber nicht jedes Mal alle Empfänger aus der Liste nehmen möchte, sondern immer nur einen, habe ich vor Mithilfe von Visual Basic einen Befehl zu schreiben, der mir diese Arbeit abnimmt.
Ich habe mir dazu ein UserForm eingerichtet, mit einem Textfeld und einem CommandButton. In dem Textfeld soll zum Beispiel eine LieferantenNr. eingegeben werden können und VBA sucht nun die Daten des Empfängers aus der Lister und wählt nur diesen einen passenden Eintrag aus der Empfänger-Liste aus, sodass dieser Empfänger im Dokument erscheint. Leider gelingt es mir nicht den dazu nötigen Ausführ-Befehl in VBA zu schreiben. Jedes Mal gibt es Probleme. Hat vielleicht von euch jemand einen Ahnung oder Idee, wie dieser Befehl auszusehen hat?

Im Voraus an alle

BESTEN DANK!
Hubert_R
Gast


Verfasst am:
07. März 2010, 16:36
Rufname:


AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Hallo,

auf der Symbolleiste Seriendruck befindet sich ein Button
mit einem Fernglas: Eintrag suchen.

Grüsse Hubert
Gast



Verfasst am:
07. März 2010, 16:43
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

@ Hubert_R:

danke für deine Antwort, aber wie beschrieben will ich diesen Schritt mit VBA lösen und nicht durch klicken in diesem Suchfeld.

Gruß
Hubert_R
Gast


Verfasst am:
07. März 2010, 17:57
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Hallo,

dann die kompliziertere Variante. Obwohl die eingebaute
Wordfunktion dasselbe tut.

Grüsse Hubert

Code:
'Makro im Modul
Sub mSuche()
  Dim lDS As Long
  '
  ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
  lDS = ActiveDocument.MailMerge.DataSource.FindRecord(FindText:="pronovaBKK", Field:="Nachname")
  '
  If lDS <> 0 Then
    lDS = ActiveDocument.MailMerge.DataSource.ActiveRecord
  End If
End Sub
'
'Code in Userform
Private Sub CommandButton1_Click()
  Dim lDS As Long
  Dim sSuch As String
  Dim mFeld As String
  '
  'suchen nach
  sSuch = Me.TextBox1.Text
  'in welchem Feld?
  mFeld = Me.TextBox2.Text
  '
  ActiveDocument.MailMerge.DataSource.ActiveRecord _
    = wdFirstRecord
  lDS = ActiveDocument.MailMerge.DataSource.FindRecord(FindText:=sSuch, _
    Field:=mFeld)
  '
  If lDS <> 0 Then
    lDS = ActiveDocument.MailMerge.DataSource.ActiveRecord
  End If
End Sub
Gast



Verfasst am:
09. März 2010, 19:48
Rufname:


AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

@ Hubert, danke für deine erneute Antwort, aber leider funktioniert es nicht. Er zeigt zwar keine Fehler (Debuggen), aber auch keine Ergebnisse!!! Was mache ich falsch???

Habe es so eingegeben:

Private Sub CommandButton1_Click()
Dim lDS As Long
Dim sSuch As String
Dim mFeld As String

sSuch = Me.TextBox1.Text
mFeld = Me.TextBox1.Text

ActiveDocument.MailMerge.DataSource.ActiveRecord _
= wdFirstRecord
lDS = ActiveDocument.MailMerge.DataSource.FindRecord(FindText:=sSuch, _
Field:=mFeld)

If lDS <> 0 Then
lDS = ActiveDocument.MailMerge.DataSource.ActiveRecord
End If
Gast



Verfasst am:
09. März 2010, 21:09
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Vielleicht noch einmal zum Verständnis. Ich habe ein Userforum mit einem Textfeld. In dieses Feld gebe ich eine Nr. ein (Nr. des Empfängers z. B.). Anhand dieser Nr. soll Word mir dann den Empfänger im Serienbrief auswählen und anzeigen (nur diesen Einen).

Gruß Max
Gast



Verfasst am:
10. März 2010, 20:12
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Momentan benutze ich diesen Befehl. Es ist eine Suchschleife und die braucht bei einer größeren Datei viel viel zu lange!


Private Sub CommandButton1_Click()

Dim kundennummer As Double

kundennummer = TextBox1.Value

With ActiveDocument.MailMerge
If .MainDocumentType = wdNotAMergeDocument Then
.MainDocumentType = wdFormLetters
.UseAddressBook Type:="olk"
End If


With .DataSource
.ActiveRecord = wdLastRecord
Do
If .DataFields("PersoNr").Value = kundennummer Then
.InvalidAddress = False
.Included = True
End If

If .ActiveRecord > 1 Then
.ActiveRecord = wdPreviousRecord
Else
Exit Do
End If
Loop
End With
End With

UserForm3.Hide

End Sub
Hubert_R
Gast


Verfasst am:
10. März 2010, 23:05
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Hallo,

bei mir funktioniet der Code einwandfrei. Auf den ersten Blick
sind Suchbegriff und Feldname gleich.

Dim sSuch As String
Dim mFeld As String

sSuch = Me.TextBox1.Text
mFeld = Me.TextBox1.Text


Ich würde für mFeld einmal den realen Namen eingeben.
mFeld = "ID" z.B.

Grüsse Hubert
Gast



Verfasst am:
10. März 2010, 23:13
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

was meinst du mit reellen Namen?

Wie gesagt ich habe eine TextBox (da soll die Personalnummer) hinein und diese soll er aus der Liste auswählen.
Hubert_R
Gast


Verfasst am:
11. März 2010, 17:21
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Hallo,

der Einfachheit halber habe ich ein Beispiel mit einem Word-
dokument als Datenquelle hochgeladen.
Im Beispiel wird im Feld "ID" gesucht, das sind 3stellige Zahlen.
Das Suchfeld muss entsprechend deiner Datenquelle angepasst
werden, wenn Du das Beispiel verwendest. Im Activate-Ereignis
der Userform kann das Suchfeld dauerhaft vorbelegt werden.
Solltest du das Beispiel zum Testen verwenden, müssen beide
Dokumente im selben Ordner gespeichert werden.

Grüsse Hubert

Datei #1, Downloadlink:
Code:
http://www.file-upload.net/download-2336402/SeriendruckVL.doc.html

Datei #2, Downloadlink (Datenquelle):
Code:
http://www.file-upload.net/download-2336404/Quelle.doc.html
Gast



Verfasst am:
11. März 2010, 18:40
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Hubert, du bist der Größte. Rechtherzlichen Dank. Habe nur ein Problem. Wenn ich meine Tabelle mit deinem Dokument verknüpfe klappt es. Ich kann eine Suche durchführen.

Was nicht funktioniert ist, wenn ich VBA-Befehle in mein Dokument übertragen möchte. Zeigt dann immer Debuggen an.
Hubert_R
Gast


Verfasst am:
11. März 2010, 20:25
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Hallo,

man kann Makros und Userforms über den VBA-Editor
exportieren und in einem anderen Dokument importieren.
Öffne mein Beispiel. Exportiere die Userform und das Makro
(Rechtsklick auf Form oder Makro oder über das Menü Datei).
Sollte sich in deinem Dokument eine Form gleichen Namens
befinden, kannst Du sie entweder umbenennen oder löschen.

Es kann sein, dass Du die Datenquelle neu verbinden musst
(SLeiste Seriendruck, zweiter Button von links, Datenquelle
öffnen).

Grüsse Hubert
Hubert_R
Gast


Verfasst am:
11. März 2010, 20:53
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Hallo,
da fällt mir ein, hast du dein Feld Suche im Code
der Form eingetragen!?

Zitat:
Private Sub UserForm_Activate()
With Me
'=====================
'Formular postionieren
.StartUpPosition = 0
.Top = 150
.Left = Application.Width - .Width - 20
'=====================
.Caption = Space(5) & "Datensatz suchen"
.Label1.Caption = "Suchen im Feld ..."
.Label2.Caption = "Suchen nach ..."
' hier das Suchfeld aus deiner Datenquelle
' eintragen

.TextBox1.Text = "ID"
End With
'
Me.TextBox2.SetFocus
End Sub
Gast



Verfasst am:
12. März 2010, 19:19
Rufname:

AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

Private Sub UserForm_Activate()
With Me

'=====================
'Formular postionieren
.StartUpPosition = 0
.Top = 150
.Left = Application.Width - .Width - 20

'=====================
.Caption = Space(5) & "Datensatz suchen"
.Label1.Caption = "Suchen im Feld ..."
.Label2.Caption = "Suchen nach ..."
.TextBox1.Text = "pnr"
End With
'
Me.TextBox2.SetFocus
End Sub


bei mir sieht es jetzt so aus und funktioniert auch. Habe es noch einmal in einem neuen Dokument gemacht. Bei dem alten waren evtl. irgendwelche Einstellungen falsch oder so. Man weiß ja nicht immer woran das liegt. Komisch ist nur, wenn ich es jetzt auf der Arbeit einbauen möchte gibt es immer wieder Probleme.
Wenn man einmal einen Serienbrief erstellt hat, darf man ihn nie verändern habe ich das Gefühl. Baut man nachträglich eine weitere Sache ein funktioniert es schon wieder nicht.
Ich danke dir trotzdem erst einmal, du hast mir sehr damit geholfen und ich hoffe, dass ich es auf der Arbeit auch noch hinbekommen werde.

Gruß Max
Gast



Verfasst am:
12. März 2010, 20:47
Rufname:


AW: VBA Serienbrief Empfänger suchen und auswählen - AW: VBA Serienbrief Empfänger suchen und auswählen

Nach oben
       Version: Office 2003

@ Hubert, gibt es noch eine Möglichkeit, dass sich das UserForm auch öffnet, wenn man es in einer Dokumentenvorlage verwendet???

benutze dafür diesen Befehl, aber das klappt nicht:

Private Sub Document_Open()
UserForm1.Show
End Sub
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2, 3  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 3
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Serienbriefe: Serienbrief mit Kontrollkästchen 2 Siebert 5086 09. März 2005, 11:56
Siebert Serienbrief mit Kontrollkästchen
Keine neuen Beiträge Word Serienbriefe: Serienbrief mit Excel-Daten 1 Anonymousssssss 3494 08. März 2005, 15:26
ICH Serienbrief mit Excel-Daten
Keine neuen Beiträge Word Serienbriefe: im Serienbrief nur Teile eines Feldes anzeigen (Teilstring) 1 Gast2309 4280 24. Feb 2005, 16:44
zuschauer im Serienbrief nur Teile eines Feldes anzeigen (Teilstring)
Keine neuen Beiträge Word Serienbriefe: Datenbank für Serienbrief aus Datenquelle erstellen 8 ladrOn` 3400 17. Feb 2005, 12:58
Amethyst Datenbank für Serienbrief aus Datenquelle erstellen
Keine neuen Beiträge Word Serienbriefe: Optionale Tabellenzeilen im Serienbrief 2 Th3D3v1l 2667 15. Feb 2005, 15:44
Th3D3v1l Optionale Tabellenzeilen im Serienbrief
Keine neuen Beiträge Word Serienbriefe: Serienbrief mit Daten aus EXCEL Tabelle 2 Tim1981 11455 25. Nov 2004, 18:11
Gast Serienbrief mit Daten aus EXCEL Tabelle
Keine neuen Beiträge Word Serienbriefe: Serienbrief Numerierung überspringt Zahlen bei neuer Seite 0 blauvogel 1228 17. Nov 2004, 17:53
blauvogel Serienbrief Numerierung überspringt Zahlen bei neuer Seite
Keine neuen Beiträge Word Serienbriefe: Word 2003 Serienbrief mit unhübscher Select*From Abfrage 2 Gast 17344 16. Nov 2004, 13:36
qsecofr Word 2003 Serienbrief mit unhübscher Select*From Abfrage
Keine neuen Beiträge Word Serienbriefe: Serienbrief in Formular 3 HanSolo 3356 04. Okt 2004, 20:52
Amethyst Serienbrief in Formular
Keine neuen Beiträge Word Serienbriefe: Serienbrief 1 gast 1150 02. Okt 2004, 17:27
Amethyst Serienbrief
Keine neuen Beiträge Word Serienbriefe: Serienbrief mit mehreren Datensätzen / Logik 1 gast 1933 07. Aug 2004, 18:14
@b Serienbrief mit mehreren Datensätzen / Logik
Keine neuen Beiträge Word Serienbriefe: wie fertige am besten einen Serienbrief an? 5 chrie 1860 10. Jul 2004, 15:19
Lisa wie fertige am besten einen Serienbrief an?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Access Tabellen