Clever-Excel-Forum

Normale Version: Endlosformular in Excel
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, :19:

in meiner Excel Anwendung soll ein extra Fenster aufgehen, in dem der User einen Datensatz aus einer unbestimmten Anzahl auswählen kann.
Die Datensätze haben mehrere Spalten, die mit angezeigt werden sollen, da diese für die Auswahl relevant sind.
Das Formular soll nicht jeden DS einzeln anzeigen, sondern in Listenform untereinander.
Durch einen Button oder ein Doppelklick soll ein Feld von dem DS in VBA als variable übernommen werden

Die Möglichkeit mit Gültigkeit und Liste ist nicht anwenderfreundlcih genug.

Ich hätte am liebsten so ein Endlosformular wie es auch in Access gibt.

Hat jemand eine Idee wie ich das möglichst einfach umsetzen kann?

Gruß
Klaus
Hi Klaus,

(26.11.2015, 15:50)Schmittklaus schrieb: [ -> ]Ich hätte am liebsten so ein Endlosformular wie es auch in Access gibt.

Hat jemand eine Idee wie ich das möglichst einfach umsetzen kann?

dazu kannst Du eine ListBox in einer Userform verwenden.

Die Userform wird beim Aufruf folgendermaßen initialisiert:
Code:
Private Sub UserForm_Initialize()
   Dim objWs As Worksheet
   Dim objZeile As Range
   Set objWs = ThisWorkbook.Worksheets("Kundenliste")      'Namen anpassen
   
   For Each objZeile In objWs.UsedRange.Rows
       If objZeile.Row > 1 Then
       Me.ListBox1.AddItem objZeile.Cells(1, 2)            'Listbox wird mit Inhalt der Kundenliste befüllt
       End If
   Next objZeile
   Set objWs = Nothing
   Set objZeile = Nothing
End Sub

Dazu wird das Arbeitsblatt mit dem Namen "Kundenliste" aufgerufen, in dem die Datensätze stehen. Es wird dann der komplette beschriebene Bereich verwendet.

oder so für 3 Spalten:
Code:
Private Sub UserForm_Initialize()
   With ListBox1
       .ColumnCount = 3
       .ColumnWidths = "1cm;2cm;2cm"
       .ColumnHeads = True
   ListBox1.RowSource = "Tabelle1!A2:C10"
   'oder:
   'ListBox1.RowSource = "Tabelle1!A2:C" & loletzte
   End With
End Sub
Quelle: http://ms-excel.eu/vba/vba-userform/vba-...ellen.html

Einzelheiten zur ListBox:
http://www.excelmexel.de/HTMLExcel/listbox.htm
Hi Klaus,

wenn du das Endlosformular im Access-Stil als beste Lösung ansiehst, dann nutze doch direkt dein Tabellenblatt, da sind alles DS als endlos Auflistung drin. Die Übernahme eine Zeile per Doppelklick kannst du selbst mal per Macrorecorder aufzeichnen. Poste dann den Code hier und man kann den dann verallgemeinern für jede beliebige Zeile.

Der Umweg das über ein Userform anzuzeigen ist doppelt gemoppelt und m.E. unnötig.