Microsoft Excel

Herbers Excel/VBA-Archiv

Combobox VBA

Betrifft: Combobox VBA von: Kev
Geschrieben am: 18.10.2020 09:33:10

Hallo bräuchte Hilfe bei einer Combobox.

Das Excel holt sich beim Start ins Blatt Artikel alle Nr und Artikelbez

Nun möchte ich dass man mithilfe der Combobox nach Artikeln suchen und diese ab C32-46 Eintragen kann.

In B32 soll dann die dazugehörige Artikelnr auftauchen.

Mein Code funktioniert schon..


Jedoch muss ich immer erst in die Zelle darunter und wieder in die gewünschte Zelle klicken damit die Nr erscheint..

Mein Beispiel

https://www.herber.de/bbs/user/140943.xlsm


---------------------------CODE-----------------------------

Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim MyRange As Range

 Set MyRange = Range("C32:C46")
 If Not Intersect(Target, MyRange) Is Nothing Then ComboBox1.Visible = True
  ComboBox1.LinkedCell = Target.Address
  On Error Resume Next
If Not Intersect(Target, MyRange) Is Nothing Then Target.Offset(0, -1).Value = ComboBox1.Column( _
 _
1)
    On Error Resume Next

End Sub


------------------------- CODE ENDE ---------------------------

Danke für die Hilfe!

Betrifft: AW: Combobox VBA
von: Daniel
Geschrieben am: 18.10.2020 10:44:38

HI
du kannst nicht alles mit einem einzigen Event abdecken.
das Eintragen des zweiten Wertes gehört sinnvollerweise ins CLICK-Event der Combobox:
Private Sub ComboBox1_Click()
If ActiveCell.Row >= 32 And ActiveCell.Row <= 46 Then
    Cells(ActiveCell.Row, 2) = ComboBox1.List(ComboBox1.ListIndex, 1)
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Row >= 32 And ActiveCell.Row <= 46 Then
    ComboBox1.LinkedCell = Cells(ActiveCell.Row, 3).Address
Else
    ComboBox1.LinkedCell = ""
    ComboBox1.Value = ""
End If
End Sub
Gruß Daniel

Betrifft: AW: Combobox VBA
von: Kev
Geschrieben am: 18.10.2020 11:04:13

Hallo Daniel auch dir Danke für die Hilfe
dein Code funktioniert auch musste nur den bereich abändern .
Nur wenn man in Spalte C32-46 steht soll die Box erscheinen

Schönen Tag noch :)

Betrifft: AW: Combobox VBA
von: Daniel
Geschrieben am: 18.10.2020 11:09:16

nun, das sind Kleinigkeiten, die du ja selber schon programmieren kannst.
das muss ich ja nicht für dich tun.
wenn du schon die Combobox nur bei diesen Zellen einblendest, dann verschiebe sie doch auch gleich auf die Postition der aktiven Zelle, damit auch weiß, wo man eingibt.
Gruß Daniel

Betrifft: AW: Combobox VBA
von: Nepumuk
Geschrieben am: 18.10.2020 10:51:26

Hallo Kev,

teste mal:

Option Explicit

Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex > -1 Then
        If Not Intersect(ActiveCell, Range("C32:C46")) Is Nothing Then
            ActiveCell.Value = ComboBox1.Column(0)
            ActiveCell.Offset(0, -1).Value = ComboBox1.Column(1)
        End If
    End If
End Sub

Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("C32:C46")) Is Nothing Then
        ComboBox1.Visible = True
    Else
        ComboBox1.Visible = False
    End If
    ComboBox1.ListIndex = -1
End Sub

Gruß
Nepumuk

Betrifft: AW: Combobox VBA
von: Kev
Geschrieben am: 18.10.2020 11:01:28

Hallo Nepumuk ,
Eingefügt und läuft *GANZ GENAU* so wie ich mir das vorgestellt habe !
Danke vielmals für deine Hilfe !

Beiträge aus dem Excel-Forum zum Thema "Combobox VBA"