ELSEIF VBA EXCEL

Fermé
Nass78 Messages postés 3 Date d'inscription mercredi 2 août 2017 Statut Membre Dernière intervention 24 septembre 2018 - 7 août 2017 à 16:41
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 7 août 2017 à 19:44
Bonjour à tous,

Je m'autoforme sur VBA depuis quelques jours , je rencontre une souci avec l'utilisation des conditions imbriqués.

J'ai crée un formulaire avec une combobox proposant 4 choix (fonctionnement, crédit, assurance, seji)

Quand j'éxecute ma procédure, le résultat souhaité ne fonctionne qu'avec la première condition, quand choisi sur ma liste un choix différent de "fonctionnement" rien ne se passe.

Voici la synthaxe :

Private Sub btn_ajouter_Click() 'Action bouton Ajouter

'Condition 1
If frm_decaissement_annuel.cbo_type_charge = "Fonctionnement" Then '
Sheets("acceuil").Activate
Range("b15") = "fonctionnement"


'Condition 2
ElseIf frm_decaissement_annuel.cbo_type_charge = "crédit" Then '
Sheets("acceuil").Activate
Range("b16") = "crédit"

'Condition 3
ElseIf frm_decaissement_annuel.cbo_type_charge = "assurance" Then '
Sheets("acceuil").Activate
Range("b17") = "assurance"

'Condition 4
ElseIf frm_decaissement_annuel.cbo_type_charge = "seji" Then '
Sheets("acceuil").Activate
Range("b18") = "seji"

Else
Sheets("acceuil").Activate

End If

'
End Sub 'pour action bouton ajouter


Quelqu"un aurait une idée de la source du blocage ?

Merci par avance
A voir également:

1 réponse

via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024 2 703
7 août 2017 à 17:24
Bonjour

Pas besoin de 4 conditions puisque le but est le même : ouvrir la feuille accueil et inscrire le choix en colonne B
donc faire plutôt ainsi :
Private Sub btn_ajouter_Click() 'Action bouton Ajouter
Sheets("acceuil").Activate
'Listindex renvoie 0, 1, 2 etc selon l'item choisi donc 15+Listindex donnera 15, 16 etc
x=15+ frm_decaissement_annuel.cbo_type_charge.ListIndex
Range("b" & x) = frm_decaissement_annuel.cbo_type_charge
End Sub


Pour l'utilisation des contrôles dans un userform voir ici :
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-F

Cdlmnt
Via
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
7 août 2017 à 19:44
Bonjour,

les tests en vba sont sensibles aux majuscules et accents. Ca aurait pu une cause.
Si tu pouvais écrire "accueil" et non "acceuil" stp ;-)
eric
0