Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel]Pulldown inhoud variëren adhv andere pulldownmenu's?

Pagina: 1
Acties:

  • Thrilled
  • Registratie: Februari 2004
  • Laatst online: 24-08-2024
Hallo,

Ikzelf ben niet echt een expert in Excel en zit met het volgende vraagstuk:

Ik wil een stuk of 4 pulldown menu's op een rijtje hebben. Elk met zijn eigen verschillende keuze mogelijkheden.
Nu wil ik dat er aan de hand van de gemaakte keuze in menu 1, bepaalde mogelijkheden beschikbaar komen in 2. Hetzelfde met de volgende. Aan de hand van de keuze in menu 2 komen er bepaalde keuzes beschikbaar in menu 3.

Dropdownmenu 1
keuze a
keuze b
keuze c

Stel ik selecteer hier keuze a, dan komt er in dropdownmenu 2 keuze d t/m f. Selecteer ik echter keuze b, dan komt er in dropdownmenu 2 keuze g t/m i bijvoorbeeld.

Hoop dat mijn probleem duidelijk is?

Ik heb nu op mijn scherm wel 3 dropdownmenu's (Beeld > Werkbalken > Formulieren) met daarin allerlei keuze mogelijkheden. Als ik een antwoord selecteer geeft hij een getalletje in een cel, wat aangeeft op welke plaats het antwoord in het menu staat (heb je 6 antwoorden dan geeft hij 1 t/m 6 weer, aan de hand van je keuze).
Maar ik wil ze dus 'beveiligen' dat er dus bepaalde antwoorden alleen mogelijk zijn als je bij het vorige menu 'x' geantwoord hebt.

Is dit uberhaupt mogelijk? En hoe moet ik dit voor elkaar krijgen?

[ Voor 9% gewijzigd door Thrilled op 06-03-2008 13:40 ]


  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 12:05
Dit is mogelijk.

Ik doe dat met valideren / lijst in combinatie met een naam
Lijst 2 bestaat uit een doorlopende lijst (d tm f, g tm i, etc). Naast lijst 1 zet ik de eerste rij (a=1, b=4, etc) en het aantal rijen dat uit lijst 2 moet worden genomen (a=3, b=3)

Op basis van de keuze in lijst a, bepaal ik met vert.zoeken oid de eerste rij en het aantal rijen dat gebruikt moet worden in lijst 2.

Lijst 2 definieer ik als een naam (=keuze2)
en de naam keuze2 definieer ik als
code:
1
=verschuiving(#regel boven d#; #beginregel (a=1;b=4)#;0;#aantal regels (a=3;b=3)#;1)

en de tekst tussen ## moet je natuurlijk vervangen door de juiste celverwijzing.

Zie voor voorbeeld: http://www.bolukan.nl/excel/
NB: Deze is iets compacter dan bovenstaande uitleg.

[ Voor 4% gewijzigd door Bolukan op 06-03-2008 19:50 ]


Verwijderd

Die hebben we al een paar keer gehad op dit forum, o.a. hier

  • Thrilled
  • Registratie: Februari 2004
  • Laatst online: 24-08-2024
@ Moosehead: Die mogelijkheid die je linkt is wel redelijk, maar de beveiliging is bagger. Als ik keuzes heb gemaakt moet ik kunnen waarborgen dat men niet de eerste beslissing veranderd en dat de overige keuzes blijven staan..

voorbeeld:
Keuze 1 > Vervolg 1 > Vervolg 2

als ik dit zo heb gekozen en verander op het einde "Keuze 1" in "Keuze 2" dan moeten vervolg 1 en 2 weg gaan, omdat die niet mogelijk zijn nadat ik keuze 2 kies.

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 12:05
Je zou dan naar vba moeten gaan kijken. (Event "change", cel-protection, etc)

  • Thrilled
  • Registratie: Februari 2004
  • Laatst online: 24-08-2024
Heb het uiteindelijk voor elkaar gekregen, inderdaad met VBA. Maar nu heb ik een 'narigheidje'. Als ik in 1 dropdown menu iets selecteer, 'selecteert' hij automatisch de volgende dropdown waarin je een beslissing moet maken. Je ziet dan 6 puntjes (1 op elke hoek, en 1 bovenin het midden en de andere onderin het midden, zodat je hem kan vergroten/verkleinen en verplaatsen). Hoe kan ik ervoor zorgen dat dat níet gebeurd. Nu moet je namelijk eerst naast de dropdown klikken om te 'de-selecteren' en dan kan je het dropdown menu uitklappen en een keuze maken.

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 12:05
Kan het met je code te maken hebben; verkeerde manier van selecteren/focus geven? Kun je de code posten.

  • Thrilled
  • Registratie: Februari 2004
  • Laatst online: 24-08-2024
Ik zal niet de hele code neerplempen, dit is een stukje waarbij er verteld wordt wat hij moet weergeven bij waarde '1'. Dat wil zeggen, Je hebt de eerste dropdown, die ik handmatig een bereik opgeef met wat hij moet laten zien. 6 opties, respectievelijk nummers 1 t/m 6. Bij nummer/optie 1 laat hij in de volgende dropdown tekst 'X' zien, bij nummer/optie 2 tekst 'Y' etc etc

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub dropdown1()

Select Case Worksheets("waarnemingen").Cells(21, 7).Value
   
    Case 1
            ActiveSheet.Shapes("Vervolgkeuzelijst 27").Select
            With Selection
                .ListFillRange = "loremipsum!$A$148:$A$150"
                .LinkedCell = "J21"
                .DropDownLines = 10
                .Display3DShading = True
            End With

   End Select
   
End Sub


Verder heb ik nog een paar vraagjes die ik nergens heb terug kunnen vinden:
- Ik heb een mailmacro, waarin ik de huidige sheet kan verzenden. Alle tekst, opmaak etcetera mailt hij goed, behalve de dropdowns. Nu heb ik al kunnen ontdekken dat de dropdowns niet letterlijk IN de cel staan, dus dat hij ze niet herkent als zijnde 'informatie'. Maar hoe kan ik nu in de code defineren dat hij dropdown nummertje zoveel óók moet mailen? Want als ik gewoon standaard "Bestand > Verzenden naar > E-mailadres > Het huidige blad als hoofdtekst van het bericht verzenden", pakt hij wél de dropdowns in het bericht (is gewoon een heel excel blad in een e-mail gepropt, maar dat vind ik ook goed)

- Ik wil met een andere macro alle dropdown menu's kunnen 'resetten' zodat ze allemaal blank zijn. In elke dropdown staat 1 blanke optie altijd bovenaan, die ik nu handmatig moet instellen zodat ze 'leeg' lijken. Maar hoe krijg ik dit met een macro voor elkaar? Standaard 'macro opnemen', ze handmatig zetten, macro stoppen etc werkt niet, weet niet waarom

- en tot slot: Hoe kan ik een werkblad beveiligen dat een gebruiker er helemaal niet op kan? Ik heb dus 2 overige tabbladen waarop info staat waar men niet bij moet komen. Ik kan ze wel beveiligen, maar dan kunnen ze nog wel kijken op die tabbladen, terwijl ik zelfs dat wil verbieden ( >:) ), uiteraard kan ik de tabbladen verbergen maar als ik ze gewoon kan locken zou dat beter zijn.

Dit zijn 3 puntjes tussen 10 andere punten die ik moest regelen voor mijn opdrachtgever, dus denk aub niet dat ik alles hier neer gooi en dat jullie het maar op moeten lossen. De excel-tips die op internet staan gaan 9 van de 10 keer niet zo ver als mijn wensen. Zoals de dropdown menu's, op internet beschrijven ze allemaal het resetten van de waardes dmv "Range("B2").Value = """, maar dat gaat over validation lists, iets anders dan dropdown/pulldown menu's resetten.

[ Voor 54% gewijzigd door Thrilled op 11-03-2008 13:47 ]


  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 12:05
Een deel van de oplossing is niet selecteren. Ik kan niet zo snel vinden hoe je wel de focus op de combobox kunt krijgen.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub dropdown1()

Select Case Worksheets("waarnemingen").Cells(21, 7).Value
   
    Case 1
            With ActiveSheet.Shapes("Vervolgkeuzelijst 27")
                .ListFillRange = "loremipsum!$A$148:$A$150"
                .LinkedCell = "J21"
                .DropDownLines = 10
                .Display3DShading = True
            End With

   End Select
   
End Sub

  • Thrilled
  • Registratie: Februari 2004
  • Laatst online: 24-08-2024
Bolukan schreef op dinsdag 11 maart 2008 @ 19:12:
Een deel van de oplossing is niet selecteren. Ik kan niet zo snel vinden hoe je wel de focus op de combobox kunt krijgen.
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub dropdown1()

Select Case Worksheets("waarnemingen").Cells(21, 7).Value
   
    Case 1
            With ActiveSheet.Shapes("Vervolgkeuzelijst 27")
                .ListFillRange = "loremipsum!$A$148:$A$150"
                .LinkedCell = "J21"
                .DropDownLines = 10
                .Display3DShading = True
            End With

   End Select
   
End Sub
gevolg:
Fout 438 tijdens uitvoering:

Deze eigenschap of methode wordt niet ondersteund door dit object.
Het resetten van de dropdowns heb ik inmiddels "opgelost" door met een macro alle waardes van de cel waar de dropdowns naar verwijzen, op een waarde te zetten die representatief staat voor een leeg vakje.

Visual Basic:
1
2
3
4
5
6
7
8
Sub Wissen()
   Range("G3:G21").Value = 1
   Range("J3:J21").Value = 1
   Range("R3:R21").Value = 1
   Range("L3:L21").Value = ""
   Range("N3:N21").Value = ""
   Range("E25").Value = ""
End Sub

[ Voor 8% gewijzigd door Thrilled op 12-03-2008 11:50 ]


  • Thrilled
  • Registratie: Februari 2004
  • Laatst online: 24-08-2024
Schop :) Ik zoek (dringend) een oplossing voor onderstaand probleem
Thrilled schreef op maandag 10 maart 2008 @ 14:43:
Als ik in 1 dropdown menu iets kies, 'selecteert' hij automatisch de volgende dropdown waarin je een beslissing moet maken. Je ziet dan 6 puntjes (1 op elke hoek, en 1 bovenin het midden en de andere onderin het midden, zodat je hem kan vergroten/verkleinen en verplaatsen).
Hoe kan ik ervoor zorgen dat dat níet gebeurd. Nu moet je namelijk eerst naast de dropdown klikken om te 'de-selecteren' en dan kan je het dropdown menu uitklappen en een keuze maken.
Pagina: 1