VBA Combobox excel

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Tom-Bon92
  • Registratie: April 2020
  • Laatst online: 29-03-2021
Hallo,

Voor mijn werk ben ik een excel bestand aan het maken dat ik gebruik voor een urencalculatie.
Hierbij werk ik met en list, omdat ik niet telkens de list aan wilde klikken, scrollen en het gewenste onderdeel wilden selecteren maak ik gebruik van een VBA combobox.

Deze combobox zorgt er voor dat de list die gelinkt is aan de cel automatisch wordt geopend, ook al ik dan begin te typen vult hij mij automatisch aan vanuit de lijst.
Voor 2 van de 3 cellen met listen werk dit echter voor de 3'e niet.
De lijst in deze cel word namelijk gegenereerd door een formule, het lijkt erop dat de combox hier gen rekening mee houd en dan een lege lijst laat zien.

is dit helder, of kan ik op een of andere manier mijn voorbeeld excel bestand toevoegen?

Heeft iemand een oplossing?

alvast bedankt.

Ps. deze vraag is ook op de volgende fora geplaatst:
excelexperts: http://www.excelexperts.nl/forum/vie...=unread#unread
helpmij: https://www.helpmij.nl/fo...box?p=6231084#post6231084

[ Voor 11% gewijzigd door Tom-Bon92 op 15-04-2020 12:29 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Arjan90
  • Registratie: September 2005
  • Laatst online: 11-05 17:29
Printscreens en wat VBA code helpt om je probleem meer weer te geven. Op basis van je verhaal snap ik nog niet wat je doet en wat je wil bereiken (maar mogelijk is dit mijn voorstellingsvermogen wat tekort schiet ;) ).

"Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid."


Acties:
  • 0 Henk 'm!

  • Tom-Bon92
  • Registratie: April 2020
  • Laatst online: 29-03-2021
Arjan90 schreef op dinsdag 14 april 2020 @ 16:53:
Printscreens en wat VBA code helpt om je probleem meer weer te geven. Op basis van je verhaal snap ik nog niet wat je doet en wat je wil bereiken (maar mogelijk is dit mijn voorstellingsvermogen wat tekort schiet ;) ).
Hieronder de VBA code, mocht je een voorbeeld bestand willen zien. op de 2 andere fora staat een excel bestand geupload (links staan bij de vraag):

'==========================
Private Sub Worksheet_SelectionChange _
(ByVal Target As Range)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Set ws = ActiveSheet

Set cboTemp = ws.OLEObjects("TempCombo")
On Error Resume Next
With cboTemp
'clear and hide the combo box
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
End With
On Error GoTo errHandler
If Target.Validation.Type = 3 Then
'if the cell contains
'a data validation list
Cancel = True
Application.EnableEvents = False
'get the data validation formula
str = Target.Validation.Formula1
str = Right(str, Len(str) - 1)
With cboTemp
'show the combobox with the list
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 5
.Height = Target.Height + 5
.ListFillRange = str
.LinkedCell = Target.Address
End With
cboTemp.Activate
'open the drop down list automatically
Me.TempCombo.DropDown
End If

errHandler:
Application.EnableEvents = True
Exit Sub

End Sub
'=========================================
Private Sub TempCombo_LostFocus()
With Me.TempCombo
.Top = 10
.Left = 10
.Width = 0
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
.Value = ""
End With
End Sub
'====================================
'Optional code to move to next cell
'if Tab or Enter are pressed
'from code by Ted Lanham
'***NOTE: if KeyDown causes problems,
'change to KeyUp
'Table with numbers for other keys
'such as Right Arrow (39)

Private Sub TempCombo_KeyDown(ByVal _
KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
Select Case KeyCode
Case 9 'Tab
ActiveCell.Offset(0, 1).Activate
Case 13 'Enter
ActiveCell.Offset(1, 0).Activate
Case Else
'do nothing
End Select
End Sub
'====================================

Acties:
  • +2 Henk 'm!

  • Joep
  • Registratie: December 2005
  • Laatst online: 11-05 22:18
Ten eerste, wat een zooitje :F Degene die hier over een jaar weer mee mag werken en iets moet aanpassen mag hopen dat je er nog bent om het uit te leggen. Ook als je de enige bent die met dit bestand moet werken is het verstandig om een duidelijkere structuur aan te brengen en/of commentaar toe te voegen in de code.

Als ik het goed begrijp wil je dat als je in kolom B voor "licht" kiest, de dropdownbox in kolom C alleen de opties toont die horen bij de categorie licht? En dat ook nog in combinatie met dat stukje code dat je van het internet hebt gehaald waarmee je een custom combobox hebt gemaakt?

Ik zou hier eens kijken:
https://www.contextures.com/xlDataVal02.html
en
https://trumpexcel.com/dependent-drop-down-list-in-excel/

Dit zul je moeten combineren met de code voor de custom combobox die je al gebruikt. Ik vind het niet erg smooth werken omdat je, zodra je die custom combobox laat verdwijnen door bijvoorbeeld een item uit de lijst aan te klikken, weer de standaard data-validation-listbox te zien krijgt. Het zou handiger zijn als je niet gebruikt maakt van data-validation, maar de ranges voor de lijsten ergens anders opslaat en vandaan haalt.

Acties:
  • 0 Henk 'm!

  • Tom-Bon92
  • Registratie: April 2020
  • Laatst online: 29-03-2021
Joep schreef op woensdag 15 april 2020 @ 13:56:
Ten eerste, wat een zooitje :F Degene die hier over een jaar weer mee mag werken en iets moet aanpassen mag hopen dat je er nog bent om het uit te leggen. Ook als je de enige bent die met dit bestand moet werken is het verstandig om een duidelijkere structuur aan te brengen en/of commentaar toe te voegen in de code.

Als ik het goed begrijp wil je dat als je in kolom B voor "licht" kiest, de dropdownbox in kolom C alleen de opties toont die horen bij de categorie licht? En dat ook nog in combinatie met dat stukje code dat je van het internet hebt gehaald waarmee je een custom combobox hebt gemaakt?

Ik zou hier eens kijken:
https://www.contextures.com/xlDataVal02.html
en
https://trumpexcel.com/dependent-drop-down-list-in-excel/

Dit zul je moeten combineren met de code voor de custom combobox die je al gebruikt. Ik vind het niet erg smooth werken omdat je, zodra je die custom combobox laat verdwijnen door bijvoorbeeld een item uit de lijst aan te klikken, weer de standaard data-validation-listbox te zien krijgt. Het zou handiger zijn als je niet gebruikt maakt van data-validation, maar de ranges voor de lijsten ergens anders opslaat en vandaan haalt.
Joep, dankjewel ik ga maandag weer verder werken aan dit bestand en misschien alvast van het weekend. Is toch leuk als ik het zo werken kan krijgen hoe ik het graag zou willen.
Natuurlijk wil ik graag een bestand maken dat voor iedereen zo begrijpbaar mogelijk is, wat bedoel je precies met ranges voor lijsten, heb je daar toevallig ook een handig linkje voor?
Als je een lijst aan ranges koppelt en je voegt iets toe, worden de ranges van de lijst dan ook automatisch uitgebreid?

Alvast bedankt, ik hoor het graag.

Acties:
  • 0 Henk 'm!

  • Tom-Bon92
  • Registratie: April 2020
  • Laatst online: 29-03-2021
Beste allemaal,

Vandaag alle genoemde acties van de diverse fora geprobeerd en helaas geen tot succes.
Ik heb de vraag ook nog op een Microsoft forum geplaatst:
https://answers.microsoft...a7ea4cf9?tm=1587389456746
Hier heb ik de vraag anders geformuleerd (ik zal hem hier niet helemaal posten om het overzicht te bewaren) maar misschien helpe deze omschrijving.

Hopelijk komen we er samen uit.

Acties:
  • 0 Henk 'm!

  • Tom-Bon92
  • Registratie: April 2020
  • Laatst online: 29-03-2021
De oplossing is gegeven.
Voor de personen die willen weten wat het was zie hier de link:
http://www.excelexperts.n...hp?f=2&t=325&p=1765#p1765
Pagina: 1