GleichaufDaniel
Grünschnabel
Guten Tag erstmal.
Also ich hab folgendes Problem:
Ich habe eine Excel-Tabelle. In jeder Zeile ist quasi ein Datensatz. in der ersten Spalte Name, 2 Spalte Adresse usw.
Ich möchte aus Word heraus die Namen in eine Combobox laden und bei bestätigung eines Namens den kompletten Datensatz aus Excel heraus in Word einfügen.
Was ich schon gescahfft habe ist das Auflisten der Namen.
Also habe ich den Namen. Nun muss ich mit dem Namen die richtige Zeile in Excel suchen um die Zeilennummer "herauszubekommen". Und da hab ich so mein Problem. Ich arbeite mit einem Excel Objekt (xlw)
Hier mein bisheriger Quellcode.
In der Zeile "Set Suchbereich = xlw.Workbooks("Menschen.xls").Worksheets(1).Range("A2:A5") 'muss noch dynamisch gemacht werden" kommt ein Fehler mit der Anzeige: "Typen unverträglich".
Was habe ich falsch gemacht. oder hat jemand eine andere Idee wie ich den "Datensatz"(Zeile) aus Excel heraubekomme?
Dankeschön schonmal im Vorraus
das bisherige:
Also ich hab folgendes Problem:
Ich habe eine Excel-Tabelle. In jeder Zeile ist quasi ein Datensatz. in der ersten Spalte Name, 2 Spalte Adresse usw.
Ich möchte aus Word heraus die Namen in eine Combobox laden und bei bestätigung eines Namens den kompletten Datensatz aus Excel heraus in Word einfügen.
Was ich schon gescahfft habe ist das Auflisten der Namen.
Also habe ich den Namen. Nun muss ich mit dem Namen die richtige Zeile in Excel suchen um die Zeilennummer "herauszubekommen". Und da hab ich so mein Problem. Ich arbeite mit einem Excel Objekt (xlw)
Hier mein bisheriger Quellcode.
In der Zeile "Set Suchbereich = xlw.Workbooks("Menschen.xls").Worksheets(1).Range("A2:A5") 'muss noch dynamisch gemacht werden" kommt ein Fehler mit der Anzeige: "Typen unverträglich".
Was habe ich falsch gemacht. oder hat jemand eine andere Idee wie ich den "Datensatz"(Zeile) aus Excel heraubekomme?
Dankeschön schonmal im Vorraus
das bisherige:
Code:
Option Explicit
Dim Name, Vorname, Adresse, Beruf As String
Dim Alter As Integer
Dim I, K, x As Byte
Dim Nameliste() As String
Public Abbruch As Boolean
Public strArtikel As String
Sub ExcelAuslesen()
Dim xlw As Excel.Application
Set xlw = Excel.Application
xlw.Visible = False
xlw.Workbooks.Open "D:\Desktop\Daniel VBA\Menschen.xls"
Dim Bereich As Range, Suchbereich As Range
I = 1
auslesen: ReDim Preserve Nameliste(I)
If Not (IsEmpty((xlw.Workbooks("Menschen.xls").Worksheets(1).Range("A" & I + 1)))) Then
Nameliste(I) = xlw.Workbooks("Menschen.xls").Worksheets(1).Range("A" & I + 1)
I = I + 1
GoTo auslesen
Else
I = I - 1
End If
Comboboxfüllen: For K = 1 To I
ArtikelForm.ComboBoxArtikel.AddItem Nameliste(K)
Next
ArtikelForm.ComboBoxArtikel.Value = Nameliste(1) 'Anfangswert anzeigen
ArtikelForm.Show
If Abbruch = True Then Exit Sub
If strArtikel > "" Then
For Each Bereich In Suchbereich
Set Suchbereich = xlw.Workbooks("Menschen.xls").Worksheets(1).Range("A2:A5") 'muss noch dynamisch gemacht werden
If xlw.Workbooks("Menschen.xls").Bereich.Value = strArtikel Then
MsgBox "Wert gefunden in " & xlw.Workbooks("Menschen.xls").Worksheets("Tabelle1").Bereich.Address
MsgBox "Wert gefunden in Zeile " & xlw.Workbooks("Menschen.xls").Worksheets("Tabelle1").Bereich.Row & " und Spalte " & xlw.Workbooks("Menschen.xls").Worksheets("Tabelle1").Bereich.Column
End If
Next
End If
xlw.Quit
End Sub