Excel VBA if then met meerdere acties

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 04-10 16:43
Hi,

ik maak wss steeds dezelfde fout en heb even een zetje nodig.

In een cel heb ik een uitklapmenu en ik wil in VBA eea uitlezen en ermee aan de slag. Dat eerst gaat prima, maar de vervolgstappen daar loop ik vast.

Ik lees cel D24 uit en de waarden kunnen zijn: A, B, C, D of E
Afhankelijk van die waarde wil ik 2 andere stringen een andere inhoud geven. Dit heb ik nu (let niet op de letters, die vertegenwoordigen heel ander tekst):

code:
1
2
3
4
5
6
7
8
9
10
11
    Dim Field As String
    Dim Field1 As String
    Dim Field2 As String
    
Field = Range("D24").Text

If Field = "A" Then Field1 = "Keuze A" & Field2 = "Selectie A"
If Field = "B" Then Field1 = "Keuze B" & Field2 = "Selectie B"
If Field = "C" Then Field1 = "Keuze C" & Field2 = "Selectie C"
If Field = "D" Then Field1 = "Keuze D" & Field2 = "Selectie D"
If Field = "E" Then Field1 = "Keuze E" & Field2 = "Selectie E"


Maar ik krijg nu als waarde bij Field1: "False" en bij Field2: ""

Hoe kan ik het 't beste noteren?

¯\_(ツ)_/¯

Beste antwoord (via M.v.Veelen op 07-08-2020 14:36)


  • Marber
  • Registratie: Juni 2014
  • Laatst online: 08-10 14:45
Ik zou er allereerst een Select Case van maken (https://docs.microsoft.co...elp/select-case-statement)

daarnaast, is de toewijzing aan Field1 en Field2 incorrect door het &-teken. JE probeert nu "Keuze A" en de waarde van Field2 samen te voegen....

Beter is het volgende:
IF conditie THEN
Field1 = ""
Field2 = ""
END IF (of Else, of Else if)

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Marber
  • Registratie: Juni 2014
  • Laatst online: 08-10 14:45
Ik zou er allereerst een Select Case van maken (https://docs.microsoft.co...elp/select-case-statement)

daarnaast, is de toewijzing aan Field1 en Field2 incorrect door het &-teken. JE probeert nu "Keuze A" en de waarde van Field2 samen te voegen....

Beter is het volgende:
IF conditie THEN
Field1 = ""
Field2 = ""
END IF (of Else, of Else if)

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Die & doet niet wat je denkt dat het doet.
Je wilt
If Field = "A" Then Field1 = "Keuze A"
If Field = "A" Then Field2 = "Selectie A"

of liever
If Field = "A" Then
Field1 = "Keuze A"
Field2 = "Selectie A"
End If

edit: zegt spuit11. Zie boven. En inderdaad beter case of else if. Immers kan als field = "A" nooit ook field = "B" zijn dus wil je dat niet testen.

[ Voor 25% gewijzigd door F_J_K op 07-08-2020 14:06 ]

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


Acties:
  • 0 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 20:05

Belindo

▶ ─🔘─────── 15:02

Even uit het hoofd, want niet op een computer.

Je moet Field 1 en Field 2 op aparte regels zetten. Nu heb je ze dmv. de ampersand staan waardoor dit effectief een vergelijking wordt en
code:
1
"Keuze A" & Field2 = "Selectie A"
evalueert als false. Daarom krijg je dat in Field 1 en niets in Field 2.

Dus
code:
1
2
3
4
If Field = "A" Then 
Field1 = "Keuze A"
Field2 = "Selectie A"
End If


edit:
Spuit 11, ben niet snel genoeg op mobiel

[ Voor 6% gewijzigd door Belindo op 07-08-2020 14:07 ]

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 04-10 16:43
Thanks guys, soms blijf je dezelfde fout maken en kom je niet verder. Hiermee ben ik geholpen !

¯\_(ツ)_/¯