Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Adressen aus Adresstabelle übernehmen, bearbeiten, eintragen

Gruppe

ComboBox

Problem

Wie kann ich Daten aus einer Adresstabelle in eine UserFormComboBox übernehmen, dort auswählen und in anderer Form in einer zweiten Tabelle ausgeben lassen? Im Dialog vorgenommene Änderungen sollen berücksichtigt werden.

Lösung
Geben Sie den nachfolgenden Code in das Klassenmodul der UserForm ein.

ClassModule: frmSuchen

Private Sub ComboBox1_Change()
   Dim wks As Worksheet
   Dim iRow As Integer
   Set wks = Worksheets("Adressen")
   iRow = ComboBox1.ListIndex + 2
   TextBox1.Text = wks.Cells(iRow, 1)
   TextBox2.Text = wks.Cells(iRow, 2)
   TextBox3.Text = Trim(wks.Cells(iRow, 3) & " " & wks.Cells(iRow, 4))
   TextBox4.Text = wks.Cells(iRow, 7)
   TextBox5.Text = Trim(wks.Cells(iRow, 5) & " " & wks.Cells(iRow, 6))
   TextBox6.Text = wks.Cells(iRow, 8)
   TextBox7.Text = wks.Cells(iRow, 9)
   TextBox8.Text = wks.Cells(iRow, 10)
End Sub

Private Sub cmdUebernehmen_Click()
   Dim iCol As Integer, iRowL As Integer
   If IsEmpty(Cells(1, 1)) Then
      iRowL = 1
   Else
      iRowL = Cells(Rows.Count, 1).End(xlUp).Row + 1
   End If
   For iCol = 1 To 8
      Cells(iRowL, iCol) = frmSuchen.Controls("TextBox" & iCol).Value
   Next iCol
End Sub

Private Sub cmdWeiter_Click()
   Unload Me
End Sub

Private Sub UserForm_Initialize()
   Dim sAdr As String
   sAdr = ThisWorkbook.Worksheets("Adressen"). _
      Cells(Rows.Count, 1).End(xlUp).Address(False, False)
   ComboBox1.RowSource = "Adressen!A2:" & sAdr
End Sub

StandardModule: basMain

Sub CallForm()
   frmSuchen.Show
End Sub