Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Artikel und Preise aus UserForm in Rechnung eintragen

Gruppe

ComboBox

Problem

Bei Doppelklick in einem Rechnungsformular soll eine UserForm mit einer mehrspaltigen ListBox mit Daten aus einem Datenblatt gezeigt werden. Nach Auswahl eines Datensatzes soll dieser im Formular eingetragen werden.

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

ClassModule: Tabelle1

Private Sub Worksheet_BeforeDoubleClick( _
   ByVal Target As Range, Cancel As Boolean)
   Cancel = True
   frmArtikel.Show
End Sub

ClassModule: frmArtikel

Private Sub cmdAbbrechen_Click()
   Unload Me
End Sub

Private Sub cmdOK_Click()
   Dim iRowL As Integer, iRow As Integer, iCounter As Integer
   iRowL = Cells(21, 1).End(xlUp).Row + 1
   iRow = 1
   For iCounter = 0 To lstArtikel.ListCount - 1
      If lstArtikel.Selected(iCounter) Then
         iRow = iRow + 1
         Cells(iRow, 1) = Worksheets("Daten").Cells(iCounter + 2, 1)
         Cells(iRow, 2) = Worksheets("Daten").Cells(iCounter + 2, 2)
         Cells(iRow, 3) = Worksheets("Daten").Cells(iCounter + 2, 3)
         Cells(iRow, 5).Formula = "=RC[-2]*RC[-1]"
      End If
   Next iCounter
   Unload Me
End Sub

Private Sub UserForm_Initialize()
   Dim rng As Range
   Set rng = Worksheets("Daten").Range("A1").CurrentRegion
   lstArtikel.List = rng.Offset(1, 0).Resize(rng.Rows.Count - 1, _
      rng.Columns.Count).Value
End Sub