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

waarden van 2 cells aanpassen na verandering dropdown menu

Pagina: 1
Acties:
  • 487 views sinds 30-01-2008
  • Reageer

  • Kanivan
  • Registratie: Januari 2002
  • Laatst online: 09-04-2023
Ik wil de waarden van 2 cells laten veranderen nadat ik een andere item in een dropdown menu heb gekozen. Ik heb nu de volgende code

code:
1
2
3
4
5
6
7
8
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = Range("H12").Address Then
    'Range("B81").Value = "=VLOOKUP(H12,H79:J112,2,FALSE)"
    Range("B13").Value = Range("H81").Value
End If

End Sub


Cell B81 verandert wel gelijk nadat ik een andere item heb gekozen in de dropdown, maar cell B13 verandert pas nadat ik nog een keer op de dropdown in cell H12 klik. Wat gaat er mis?

  • lier
  • Registratie: Januari 2004
  • Laatst online: 20:19

lier

MikroTik nerd

En als je de twee aanroepen omdraait ?
code:
1
2
Range("B13").Value = "=VLOOKUP(H12,H79:J112,2,FALSE)"
Range("B81").Value = Range("H81").Value


En als je de waarde eerst aan een variabele toekent en vervolgens deze toekent aan beide cellen ?

Eerst het probleem, dan de oplossing


  • Kanivan
  • Registratie: Januari 2002
  • Laatst online: 09-04-2023
Dan past hij de waarde van cell B13 gelijk aan en cell B81 pas nadat ik opnieuw geklikt heb ik cell H12....
Dus het lijkt alsof de vba code maar 1 cell tegelijkertijd wil aanpassen...

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 21:14
Strooi eens met Calculate rond.
Dus na het invoeren van je formule, laat je excel; het blad uitrekenen. Zo pakt Excel de "oude" waarde van B81 om in B13 te plakken.:
code:
1
2
3
4
5
6
7
8
9
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = Range("H12").Address Then
    Range("B81").Value = "=VLOOKUP(H12,H79:J112,2,FALSE)"
    Target.Parent.Calculate
    Range("B13").Value = Range("H81").Value
End If

End Sub

[ Voor 69% gewijzigd door onkl op 16-08-2006 16:28 . Reden: Denkfoutje, de plek van de calculate is wel van belang. ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

En als je de formule als volgt zet (zoals het volgens mij hoort):

code:
1
Range("B13").FormulaR1C1 = ....

[ Voor 14% gewijzigd door BtM909 op 16-08-2006 16:27 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Kanivan
  • Registratie: Januari 2002
  • Laatst online: 09-04-2023
onkl schreef op woensdag 16 augustus 2006 @ 16:25:
Strooi eens met Calculate rond.
Dus na je twee celwijzigingen:
Target.Parent.Calculate
hierdoor verandert niets...

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 21:14
Kanivan schreef op woensdag 16 augustus 2006 @ 16:27:
[...]


hierdoor verandert niets...
sorry, zie edit hierboven.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

BtM909 schreef op woensdag 16 augustus 2006 @ 16:26:
En als je de formule als volgt zet (zoals het volgens mij hoort):

code:
1
Range("B13").FormulaR1C1 = ....
Da's alleen een andere notatie voor de formule. Het punt is hier dat het event optreedt op het moment dat je naar H12 toegaat ipv wanneer je er vandaan gaat. Kijk maar eens wat er gebeurt als je de IF statement weg laat.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 21:14
F_J_K schreef op woensdag 16 augustus 2006 @ 16:32:
[...]

Da's alleen een andere notatie voor de formule. Het punt is hier dat het event optreedt op het moment dat je naar H12 toegaat ipv wanneer je er vandaan gaat. Kijk maar eens wat er gebeurt als je de IF statement weg laat.
Idd. waarschijnlijk zoekt TS het Worksheet_Change event.

  • Kanivan
  • Registratie: Januari 2002
  • Laatst online: 09-04-2023
allebei de hierboven gemaakte suggesties halen niets uit. Als ik .FormulaR1C1 gebruik dan klopt het helemaal niet meer.

Als ik de IF statement weghaal dan verandert alleen cell B13 nog steeds. Met B81 gebeurt er niets..

[ Voor 30% gewijzigd door Kanivan op 16-08-2006 16:55 ]


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Als ik de IF statement weghaal dan verandert alleen cell B13 nog steeds. Met B81 gebeurt er niets..
Ook niet als je van cel H12 wegklikt? Tot die tijd is er namelijk geen SelectionChange event...

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Leg eens uit waarom je wijziging van een dropdowncombo probeert te verwerken in een selection_change event? Voorlopig gok ik erop dat een van die twee cellen (in)direct met je combo is verbonden en dat het vba deel helemaal niks doet.
code:
1
2
'Range("B81").Value = "=VLOOKUP(H12,H79:J112,2,FALSE)"
    Range("B13").Value = Range("H81").Value

Aangezien je niets verandert in de cellen wat met je combobox van doen heeft mag je dit hele stukje vba weglaten. Je combobox koppelen aan H12 is voldoende. Hoe H81 afhangt van H12 (via B81) is onduidelijk, maar die indirecte link kan e.e.a. verklaren: als H12 verandert, verandert B81 direct mee, maar om de waarde van H81 over te nemen moet het sheet eerst herberekend worden.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Kanivan
  • Registratie: Januari 2002
  • Laatst online: 09-04-2023
Niesje schreef op woensdag 16 augustus 2006 @ 17:44:
Leg eens uit waarom je wijziging van een dropdowncombo probeert te verwerken in een selection_change event? Voorlopig gok ik erop dat een van die twee cellen (in)direct met je combo is verbonden en dat het vba deel helemaal niks doet.
code:
1
2
'Range("B81").Value = "=VLOOKUP(H12,H79:J112,2,FALSE)"
    Range("B13").Value = Range("H81").Value

Aangezien je niets verandert in de cellen wat met je combobox van doen heeft mag je dit hele stukje vba weglaten. Je combobox koppelen aan H12 is voldoende. Hoe H81 afhangt van H12 (via B81) is onduidelijk, maar die indirecte link kan e.e.a. verklaren: als H12 verandert, verandert B81 direct mee, maar om de waarde van H81 over te nemen moet het sheet eerst herberekend worden.
Je hebt helemaal gelijk, ik heb er helemaal niet bij stil gestaan dat ik geen vba code hiervoor nodig heb. Zonder de code werkt het prima. Mijn verontschuldigingen.
Pagina: 1