Hallo liebe Leute!
Ich bin ziemlich neu in vba und hab mir da mal ein makro zusammengeschustert (wahrscheinlich ziemlich plump und hässlich aber vergesst nicht: ich bin anfänger ;) ).
Also, das Ziel wäre es einen Serienbrief, der auf einer in Excel angelegten Datenbank basiert, zu filtern und dann nur die gefilterten ergebnise angezeigt zu haben bzw drucken zu können.
Wie schon gesagt habe ich mir da so einiges zusammengeschustert, allerdings habe ich leider 2 große probleme:
1.) mein Serienbrief verliert immer wieder die verbindung zu seiner "Datenbank"
2.) hab ich wohl irgendwas mit meiner ausles schleife falsch gemacht da ich je nach anzahl der ausgewählten betreuer (angenommen ich ´filtere den brief nach einem gewissne betreuer) ich den "filter button" (der meion skript startet) öfter betätigen muss. SOll heißen wenn 2 leute ausgewählt sind muss ich 2 mal klicken, bei drei leuten 3 mal. Jedoch ist das nur beim ersten mal filtern notwendig. Sobald einmal gefiltert wurde funktioniert das skript einwandfrei (bis auf oben genanntes problem).
wäre super wenn ihr mir helfen könntet!
LG Jakob :)
Private Sub ListeFüllen(ByRef Eingabe As UserForm1)
Dim i As Integer
With ActiveDocument.MailMerge.DataSource
.ActiveRecord = wdFirstRecord
For i = 1 To .RecordCount
TestAdder Eingabe.ListBox1, .DataFields("BL")
.ActiveRecord = wdNextRecord
Next i
End With
End Sub
Private Sub TestAdder(ByRef LB As ListBox, ByVal BT As String)
If Not findeElement(LB, BT) Then
LB.AddItem BT
End If
End Sub
Public Sub Anzeigen()
Dim i As Integer
Dim Betreuerliste As String
With Me.ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
If Betreuerliste <> "" Then
Betreuerliste = Betreuerliste & ","
End If
Betreuerliste = Betreuerliste & "'" & .List(i) & "'"
End If
Next i
End With
ActiveDocument.MailMerge.DataSource.QueryString = "SELECT * FROM `Tabelle1$` WHERE `BL` in (" & Betreuerliste & ")"
'Me.Hide
End Sub
|