• 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.

Afhankelijke ComboBox (vervolg)

Status
Niet open voor verdere reacties.

Yasmin

Gebruiker
Lid geworden
22 mei 2004
Berichten
184
Beste Excellers,

Met dank aan Cobbe heb ik ComboBox1 (zie bijlage) werkend gekregen en in mijn origineel formulier uitgebreid naar 11 J/N* ComboBoxen.
Echter nu heb ik nog 1 ComboBox12 en 1 ComboBox13 met een andere lijst die op dezelfde manier dienen te werken.

Dus als ik bv. keuzerondje Nederlands selecteer:
dan dient keuze in ComboBox1 (range D6:D8) te zijn.
dan dient keuze in ComboBox12 (range H6:H8) te zijn.
dan dient keuze in ComboBox13 (range L6:L8) te zijn.

en als ik keuzerondje Engels selecteer:
dan dient keuze in ComboBox1 (range E6:E8) te zijn.
dan dient keuze in ComboBox12 (range I6:I8) te zijn.
dan dient keuze in ComboBox13 (range M6:M8) te zijn.

en als ik keuzerondje Pools selecteer:
dan dient keuze in ComboBox1 (range F6:F8) te zijn.
dan dient keuze in ComboBox12 (range J6:J8) te zijn.
dan dient keuze in ComboBox13 (range N6:N8) te zijn.

Bij het openen van workbook (Blad1) dienen de ComboBox automatisch op de bovenste keuze op scherm te staan.
Afhankelijk van de keuze in cel A1.

Kan iemand mij helpen aan de juiste VBA code zodat ik mijn formulier compleet kan maken?

Bij voorbaat dank.
 

Bijlagen

@Cobbe,
Je maakt er in ieder geval een leuke puzzel van. Een combinatie van gedefinieerde namen en wat code kostte mij wat hoofdbrekens om het begrijpen. Maar het werkt en daar gaat het om.:d

@Yasmin,
Probeer eens in een tabelvorm te denken. Dat maakt het over het algemeen wat eenvoudiger om comboboxen te vullen.
 
Iets eenvoudiger.

Geen Listfillrange maar List.
Geen koppeling met cel A1.
Code wordt bij het openen direct gekoppeld aan OptionButtons.
 

Bijlagen

Cobbe,

Bijna goed, ComboBox1 werkt helemaal goed, ComboBox 12 en 13 dienen als het werkblad wordt geopend op de bovenste keuze uit de lijst te staan (de taal afhankelijk van het keuzerondje) en bij wisselen van taal dient alleen de vertaling te wijzigen en niet de keuze. Dus bij schakelen tussen Nederlands en Engels in ComboBox 12 dient "Goed" te veranderen in "Good" enz. Nu gaat hij naar de bovenste keuze in de lijst.
Vriendelijk bedankt zover.

HSV
De code is inderdaad eenvoudiger dan die van Cobbe echter ik krijg een foutmelding bij openen Fout 32809.
Ook bedankt zover.

Met vriendelijke groet
 
Cobbe,

Ik krijg bijgaande foutmelding bij openen van ComboBox1(cobbe) vervolg.
Wat doe ik misschien niet goed?




Foutmelding bij openen ComboBox1(cobbe) vervolg.PNG
 
Heb je wel een Blad1? anders dit aanpassen.
 
Cobbe,

Ik open het bestand via dit Helpmij forum en krijg dan direct deze foutmelding.
Dus er staat in dit bestand een Blad1.

Met vriendelijke groet,
 
Ik kan die fout niet naspelen, bij mij opent dat bestand zich foutloos.
Ik kan enkel aanraden om Excel geheel af te sluiten en opnieuw proberen te openen.
 
@ Cobbe

Ik krijg idd ook dezelfde foutmelding als je het rechtstreeks opent vanaf de site, maar zoals je al aangeeft door af te sluiten en terug te openen vanaf de downloadlocatie op de harde schijf werkt het perfect.
Ik veronderstel dat het iets te doen heeft met macrobeveiliging bij openen van bestanden vanaf het internet.(zelfs met instelling van lage beveiliging in vertrouwenscentrum) XL2013
 
Dan zou OP eerst moeten opslaan en dan openen?
Ik weet niet welke instelling hij zou moeten wijzigen.
 
Waarschijnlijk toch een klein foutje.
Verander de code "openen" eens.
Code:
Sub openen()
 With Sheets("Blad1")
 For Each sh In Sheets("Blad1").Shapes
  If sh.Type = msoFormControl Then
   If sh.FormControlType = xlOptionButton Then
       y = y + 1
     If sh.ControlFormat.Value = xlOn Then Exit For
   End If
  End If
 Next sh
  .ComboBox1.List = Choose(y, .Range("D6:D8").Value, .Range("E6:E8").Value, .Range("F6:F8").Value)
  .ComboBox1.ListIndex = 0
  .ComboBox12.List = Choose(y, .Range("H6:H8").Value, .Range("I6:I8").Value, .Range("J6:J8").Value)
  .ComboBox12.ListIndex = 0
  .ComboBox13.List = Choose(y, .Range("L6:L11").Value, .Range("M6:M11").Value, .Range("N6:N11").Value)
  .ComboBox13.ListIndex = 0
 End With
End Sub
 
Laatst bewerkt:
Vreemd! In xl2013 krijg ik die fout ook maar kan niet vinden hoe dit te verhelpen.
Maar als je op de foutmelding 'annuleren' drukt loopt alles zoals het moet!
Tenminste volgens mijn visie. :)
 
Laatst bewerkt:
Door de code van HSV is mijn foutmelding opgelost.
Het werkblad opent netjes zonder foutmelding en de bovenste keuze van de lijstjes is zichtbaar in ComboBox1, 12 en 13 (Taal afhankelijk van welke keuzerondje op dat moment actief is).

Echter als nu het keuzerondje op Nederlands staat en ik kies in ComboBox1 "Ja" en ComboBox12 "Certificaat" en ComboBox13 "Goed"
en ik verander keuzerondje Nederlands in Engels dat springen de ComboBox12 en 13 weer naar de bovenste keuze in de lijst en niet op Certificate" en "Good".
ComboBox1 werkt goed.

Dit heeft al wel goed gewerkt.

Ik durf het bijna niet meer te vragen maar is dit ook nog aan te passen?

Met vriendelijke groet,
 
Laatst bewerkt:
Probeer het maar eens weer.
Code:
Sub shapename()
 With Sheets("Blad1")
       CmIndex = .ComboBox1.ListIndex
       CmIndex12 = .ComboBox12.ListIndex
       CmIndex13 = .ComboBox13.ListIndex
  .ComboBox1.List = Choose(Right(.Shapes(Application.Caller).Name, 1), .Range("D6:D8").Value, .Range("E6:E8").Value, .Range("F6:F8").Value)
  .ComboBox1.ListIndex = CmIndex
  .ComboBox12.List = Choose(Right(.Shapes(Application.Caller).Name, 1), .Range("H6:H8").Value, .Range("I6:I8").Value, .Range("J6:J8").Value)
  .ComboBox12.ListIndex = CmIndex12
  .ComboBox13.List = Choose(Right(.Shapes(Application.Caller).Name, 1), .Range("L6:L11").Value, .Range("M6:M11").Value, .Range("N6:N11").Value)
  .ComboBox13.ListIndex = CmIndex13
 End With
End Sub
 
HSV de laatste code geeft geen verandering (zie bijlage).
Het openen gaat goed zonder foutmelding, ComboBoxen staan netjes (afhankelijk van de taal) op de bovenste keuze uit het lijstje.

Echter als na het maken van een keuze binnen de 3 ComboBoxen met het keuzerondje de taal wordt gewijzigd dan springt
ComboBox12 en 13 naar de bovenste keuze (=fout) ComboBox1 reageert wel goed.

Ik heb het idee dat we er bijna zijn!

Bekijk bijlage ComboBox1(cobbe en HSV).xlsm
 
Als je twee codes van twee helpers door elkaar gebruikt gaat er niets meer werken.
 
Bedankt Cobbe en HSV voor de hulp.
Ik ga hier verder wel uitkomen denk ik.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan