• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Combobox met afhankelijke tekstboxen in formulier

Status
Niet open voor verdere reacties.

invicta

Gebruiker
Lid geworden
16 jul 2018
Berichten
6
Goedemorgen,
Ik wil vanuit een 1e tabblad (naam) een kolom (A) met namen (gaat in werkelijkheid tot ca 500 rijen) inlezen in een combobox. Aan elke naam kunnen 0 tot meerdere contactpersonen hangen (kolom B,C,D,E) als ze zijn ingevuld. Deze worden ingelezen in de afhankelijke textboxen. Tot zover gaat het goed met Vlookup in het formulier. 1 contactpersoon kan worden gekozen via het keuzerondje. Zodra ik de gekozen naam en contactpersoon wil plaatsen in een 2e tabblad (proces) in kolom B en C dan krijg ik de melding voor het invullen van de contactpersoon: Fout 1004, EigenschapVlookup van klasse worksheetfunction kan niet worden opgehaald. Heeft dit te maken met verkeerd opslaan van de keuze in een variabele. Ik heb hiertoe iets geprobeerd. Bijgaand een voorbeeld bestandje met het principe. Heb ook gelezen dat er met Vlookup nogal eens problemen zijn. Match etc. zou beter zijn. Ik heb er onvoldoende verstand van. Alle hulp is welkom. Alvast dank!
 

Bijlagen

  • voorbeeldbestand.xlsm
    24,7 KB · Weergaven: 41
alternatief voor Vlookup:

Code:
Private Sub naam_ComboBox_Change()
For i = 1 To 5
    Controls("C" & i & "_textbox").Text = Naam_ComboBox.Column(i)
Next
End Sub

Private Sub UserForm_Activate()
Naam_ComboBox.List = Worksheets("naam").Range("A2:F5").Value
End Sub
 
Nog een paar alternatieven in het bestandje.
 

Bijlagen

  • voorbeeldbestand (1).xlsm
    25,6 KB · Weergaven: 39
Laatst bewerkt:
Dank voor jullie hulp. Ik krijg de code van VenA buiten het voorbeeldbestand niet werkend, het gaat in min originele bestand mogelijk fout omdat de contactpersoon kolommen geen aaneengesloten gebied zijn.
Die van SjonR vult het formulier goed, in mijn orginele bestand dat ik helaas niet kan sturen staan de contactpersonen dus niet in een aaneengesloten gebied in tab NAAM maar ongeveer in kolom 5, 11, 16, 26, 31 en dan steeds vanaf rij 6 en verder. De totale tab NAAM kan wel vijfhonderd gevulde rijen bedragen. Kolom 1 (of A) is steeds volledig gevuld met namen (weer vanaf rij 6). De contactpersonen zijn niet overal ingevuld. KUnnen jullie me helpen met code waarin ik zelf de kolommen kan benoemen?

Verder loopt het formulier ook vast op Controls("C" & i & "_textbox").Text = Naam_ComboBox.Column(i). De foutmelding is dan fout.jpg. Ik stuur een plaatje mee.
Hoop dat jullie me op basis van deze info verder kunnen helpen.
 
Of zo:
 

Bijlagen

  • __combo_tekst.xlsb
    22,2 KB · Weergaven: 50
Er valt natuurlijk alleen iets te maken obv een gelijkend voorbeeldbestand.
 
Dank voor jullie hulp. Mijn excuses als ik niet geheel duidelijk ben geweest. Bijgaand nogmaals het eerste bestandje maar dan aangepast als gelijkend voorbeeld en voorzien van helder commentaar. Hoop dat iemand hier nog iets mee kan. De laatste reactie van SNB lijkt me nog niet verder te brengen.
 

Bijlagen

  • voorbeeldbestand rev 1.xlsm
    29,9 KB · Weergaven: 44
Waarom met VBA een ongelukkig opgezette gegevensstruktuur oplossen ?
 
Beste SNB, deze sheet is opgezet vanuit een gebruikersbehoefte en is vanuit die invalshoek 100% logisch. Het werkt al jaren prima in excel met basis vba. Ik wil er nu iets aan toevoegen, vandaar deze vraag. Ik weet dat je als je nog iets verder zou gaan beter bv access, sql (zoals alle ERP's), etc. kunt gebruiken en het aan deskundigen zoals jullie kunt overlaten, maar tot nu toe werkt het prima. Je ze me enorm helpen als je nog even kunt kijken en je inpunt kunt geven.
 
Ik ben niet deskundig.
Kijk of je het zo bedoel, de Combobox gevuld.
 

Bijlagen

  • Voorbeeldbestand rev 2.xlsm
    28,3 KB · Weergaven: 40
Dank voor je reactie. Het formulier blijft echter nog steeds hangen op die Vlookup
 

Bijlagen

  • 17-7-2018 21-58-31.jpg
    17-7-2018 21-58-31.jpg
    56,2 KB · Weergaven: 55
is het voorbeeldbestand gelijk qua lay-out aan het echte bestand dus met veel lege kolommen en weinig kolomkoppen? Verder zie ik niets terug van de aangedragen suggesties.
 
Ja het voorbeeld bestand is gelijk aan het echte bestand. De lege kolommen in het voorbeed zijn in het echt gevuld. Ik heb alleen extra commentaar gegeven over hoe het zou moeten werken. De vlookupfunctie werkt niet goed.
 
Ja het voorbeeld bestand is gelijk aan het echte bestand. De lege kolommen in het voorbeed zijn in het echt gevuld.

C.I.T., waarvan akte.
 
De vlookup is ook totaal onnodig.

Code:
Dim ar
Private Sub UserForm_Initialize()
  ar = Sheets("naam").Cells(5, 1).CurrentRegion.Resize(, Sheets("naam").UsedRange.Columns.Count)
  For j = 2 To UBound(ar)
    c00 = c00 & "|" & ar(j, 1)
  Next j
  Naam_ComboBox.List = Split(Mid(c00, 2), "|")
End Sub
Private Sub naam_ComboBox_Change()
  If Naam_ComboBox.ListIndex > -1 Then
    t = 1
    For j = 1 To UBound(ar, 2)
      If Left(ar(1, j), 7) = "contact" Then
        Me("c" & t & "_TextBox") = ar(Naam_ComboBox.ListIndex + 2, j)
        t = t + 1
      End If
   Next j
 End If
End Sub

@snb waar staat de afkorting C.I.T. voor?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan