Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Combobox Auswahl

Betrifft: Combobox Auswahl von: kurt k
Geschrieben am: 01.10.2020 16:06:34

Hallo zusammen,
ich habe eine kleine Datenbank 3 Spalten mit einer ComBobox zum auswählen,
ich möchte gern das Spalte 1+2 zusammengesetzt wird.
Also: Spalte1= Schmitz, Spalte2= Hubert, Spalte3
A10 soll = Schmitz, Hubert rein,
in B10 Lagerist (Name aus der 3.Spalte)

Private Sub ComboBox1_DropButtonClick()
With Worksheets("Lager1")
ComboBox1.ListFillRange = .Range(.Cells(2, 10), _
.Cells(.Rows.Count, 10).End(xlUp)).Resize(, 3).Address(External:=True)
End With
With ComboBox1
.ColumnCount = 3
.TextColumn = 3
.BoundColumn = 3
ActiveSheet.Range("A10").Value = .Text
End With

mfg kurt k

Betrifft: AW: Combobox Auswahl
von: Nepumuk
Geschrieben am: 01.10.2020 16:45:39

Hallo Kurt,

so?

Private Sub ComboBox1_DropButtonClick()
    With Worksheets("Lager1")
        ComboBox1.ListFillRange = .Range(.Cells(2, 10), _
            .Cells(.Rows.Count, 10).End(xlUp)).Resize(, 3).Address(External:=True)
    End With
    With ComboBox1
        .ColumnCount = 3
        .TextColumn = 3
        .BoundColumn = 3
        Range("A10").Value = .List(.ListIndex, 0) & ", " & .List(.ListIndex, 1)
        Range("B10").Value = .List(.ListIndex, 2)
    End With
End Sub

Gruß
Nepumuk

Betrifft: Leider ein Fehler
von: kurt k
Geschrieben am: 01.10.2020 17:33:20

Guten Tag Nepumuk,
leider ein kleiner Fehler:
Laufzeitfehler 381
Eigenschaft List konnte nicht abgerufen werden.

gruß
kurt k

Betrifft: AW: Leider ein Fehler
von: kurt k
Geschrieben am: 01.10.2020 17:38:14

bleibt hier stehen:
Range("A10").Value = .List(.ListIndex, 0) & ", " & .List(.ListIndex, 1)

kurt k

Betrifft: AW: Leider ein Fehler
von: Nepumuk
Geschrieben am: 01.10.2020 18:14:49

Hallo kurt,

teste mal:

Option Explicit

Private mblnNoCange As Boolean

Private Sub ComboBox1_Change()
    If Not NoChange Then
        With ComboBox1
            Range("A10").Value = .List(.ListIndex, 0) & ", " & .List(.ListIndex, 1)
            Range("B10").Value = .List(.ListIndex, 2)
        End With
    End If
End Sub

Private Sub ComboBox1_DropButtonClick()
    NoChange = True
    With Worksheets("Lager1")
        ComboBox1.ListFillRange = .Range(.Cells(2, 10), _
            .Cells(.Rows.Count, 10).End(xlUp)).Resize(, 3).Address(External:=True)
    End With
    With ComboBox1
        .ColumnCount = 3
        .TextColumn = 3
        .BoundColumn = 3
    End With
    NoChange = False
End Sub

Private Property Get NoChange() As Boolean
    NoChange = mblnNoCange
End Property

Private Property Let NoChange(ByVal pvblnNoChange As Boolean)
    mblnNoCange = pvblnNoChange
End Property

Gruß
Nepumuk

Betrifft: Hallo nepumuk, klappt aber... -)
von: kurt k
Geschrieben am: 01.10.2020 18:25:15

Hallo Nepumuk,
klappt einwandfrei aber verstanden habe ich nichts,
na ja, schönen Abend noch !

gruß kurt k

Betrifft: AW: Hallo nepumuk, klappt aber... -)
von: max.kaffl@gmx.de
Geschrieben am: 01.10.2020 18:35:55

Hallo kurt,

das DropButtonClick-Event löst das Change-Event aus. Das muss ich unterdrücken.

Gruß
Nepumuk

Betrifft: Kleine Nachfrage
von: Kurt k
Geschrieben am: 01.10.2020 19:23:56

Hallo Nepumuk,
welche Zeile muss man einfügen, beim 1. Eintrag darf kein Komma gesetzt werden.
Also:
Muster-Datei-Neu,
muß
Muster-Datei-Neu
gesetzt werden, wie gesagt nur der 1. Eintrag.
Würde mich freuen, wenn Du hier nochmal helfen kannst.
Gruß
Kurt k

Betrifft: Habe Lösung gefunden --))
von: kurt k
Geschrieben am: 02.10.2020 10:59:08

Guten Morgen,
habe die Lösung gefunden:
Private Sub ComboBox1_Change()
    If Not NoChange Then
    
        With ComboBox1
            Range("D5").Value = .List(.ListIndex, 0) & ", " & .List(.ListIndex, 1)
            Range("D12").Value = .List(.ListIndex, 2)
        End With
        
        If ComboBox1.ListIndex = 0 Then 'MsgBox "ja" Else MsgBox "nein"
            With ComboBox1
                Range("D5").Value = .List(.ListIndex, 0) & .List(.ListIndex, 1)
                Range("D12").Value = .List(.ListIndex, 2)
            End With
        End If
    End If
    
End Sub
klappt
gruß kurt k