A | B | C | D | E | |
---|---|---|---|---|---|
1 | Nr. | Name | Adresse | PLZ und Ort | |
2 | 1 | Marc Wershoven | Meine Strasse 1 | 12345 Köln | |
3 | 2 | Max Mustermann | Musterallee 2 | 54321 Musterhausen | |
4 | 3 | Berta Beispiel | Beispielweg 3 | 22334 Beispielstadt | |
5 | 4 | Petra Plural | Pluralplatz 4 | 43215 Kleiner Ort | |
6 |
Option Explicit
Option Compare Text
' ****************************************************************
' Autor/en und Original-Quelltext unter:
' https://www.online-vba.de/vba_tutorialvorlage.php
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von https://www.online-vba.de
' ****************************************************************
'In dieser Konstanten speichern wir uns
'den Pfad und den Dateinamen der Adressliste (Excel)
'Bitte entsprechend anpassen!
Private Const sAdressDatei As String = _
"C:\TEST\TutorialWordMitExcelFuellen\MeineAdressen.xlsx"
'Wie heisst das Tabellenblatt, auf welchem sich die Adressen befinden?
'Bitte entsprechend anpassen!
Private Const sTabellenblatt As String = "Tabelle1"
Private Sub CommandButton1_Click()
Dim oExcelApp As Object
Dim oExcelWorkbook As Object
Dim lZeile As Long
'Nur wenn ein Eintrag in der Liste markiert ist, wird das Makro ausgeführt
If ListBox1.ListIndex >= 0 Then
'Zuerst wird die Excel Datei geöffnet
Set oExcelApp = CreateObject("Excel.Application")
Set oExcelWorkbook = oExcelApp.Workbooks.Open(sAdressDatei)
lZeile = 2 'Wir starten in Zeile 2, da in der ersten Zeile überschriften stehen
With oExcelWorkbook.sheets(sTabellenblatt)
Do While .Cells(lZeile, 1) <> ""
'Wenn der Eintrag der Listbox mit dem Namen in der Adresstabelle
'übereinstimmt, dann werden die Textmarken gefüllt!
If ListBox1.Text = CStr(.Cells(lZeile, 2).Value) Then
'Eintrag gefunden, Textmarken füllen
ActiveDocument.Bookmarks("Textmarke_Name").Range.Text = _
CStr(.Cells(lZeile, 2).Value)
ActiveDocument.Bookmarks("Textmarke_Adresse").Range.Text = _
CStr(.Cells(lZeile, 3).Value)
ActiveDocument.Bookmarks("Textmarke_PLZ_Ort").Range.Text = _
CStr(.Cells(lZeile, 4).Value)
Exit Do
End If
lZeile = lZeile + 1
Loop
End With
oExcelWorkbook.Close False
oExcelApp.Quit
Else
MsgBox "Bitte wählen Sie einen Eintrag aus der Liste aus!", _
vbInformation + vbOKOnly, "HINWEIS!"
Exit Sub
End If
Set oExcelWorkbook = Nothing
Set oExcelApp = Nothing
Unload Me
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim oExcelApp As Object
Dim oExcelWorkbook As Object
Dim lZeile As Long
'Zuerst wird die Excel Datei geöffnet
Set oExcelApp = CreateObject("Excel.Application")
Set oExcelWorkbook = oExcelApp.Workbooks.Open(sAdressDatei)
ListBox1.Clear
lZeile = 2 'Wir starten in Zeile 2, da in der ersten Zeile überschriften stehen
With oExcelWorkbook.sheets(sTabellenblatt)
Do While .Cells(lZeile, 1) <> ""
ListBox1.AddItem CStr(.Cells(lZeile, 2).Value)
lZeile = lZeile + 1
Loop
End With
oExcelWorkbook.Close False
oExcelApp.Quit
Set oExcelWorkbook = Nothing
Set oExcelApp = Nothing
End Sub
Private Const sAdressDatei As String = _
"C:\TEST\TutorialWordMitExcelFuellen\MeineAdressen.xlsx"
Option Explicit
Private Sub Document_New()
UserForm1.Show
End Sub