XL 2016 Calculs ou "If" imbriqués ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

halecs93

XLDnaute Impliqué
J'ai manqué à tous mes devoirs.....

Bien entendu, je dis bonjour ou bonsoir 😉

Je me mélange les pinceaux..il y a de quoi....

Grâce aux bons conseils du forum, le fichier s'est construit peu à peu....

Mais, dans la fonction de calcul je ne retrouve pas toutes mes possibilités

Function CalcPoints(P1$, P2$, P3$, P4$, P5$, P6$) 'CalcPoints(valeurB5=mode de transport, valeurC5=Nb de personnes, valeurD5=territoire, valeurE5=type de trajet, valeurF5=Nb de km, valeurG5=Nb de trajets)
Dim Points
Points = 0
Select Case P1
Case "Co-voiturage"
Select Case P4
Case "Trajet domicile - travail"
If CInt(P2) = 2 Then
Points = 0
ElseIf CInt(P2) = 3 Then
Points = 1
ElseIf CInt(P2) = 4 Then
Points = 2
Else
Points = 0
End If
If P5 = "- de 10" Then
Points = Points + 2
ElseIf P5 = "de 10 à 20" Then
Points = Points + 3
ElseIf P5 = "+ de 20" Then
Points = Points + 4
Else
GoTo Probleme
End If
Case "Temps de travail dont formation"
If CInt(P2) = 2 Then
Points = 0.5
ElseIf CInt(P2) = 3 Then
Points = 1
ElseIf CInt(P2) = 4 Then
Points = 2
Else
Points = 0
End If
If P5 = "- de 10" Then
Points = Points + 2
ElseIf P5 = "de 10 à 20" Then
Points = Points + 3
ElseIf P5 = "+ de 20" Then
Points = Points + 4
Else
GoTo Probleme
End If
End Select
Case "Vélo électrique"
Select Case P4
Case "Trajet domicile - travail"
If P5 = "- de 10" Then
Points = Points + 3
ElseIf P5 = "de 10 à 20" Then
Points = Points + 4
ElseIf P5 = "+ de 20" Then
Points = Points + 5
Else
GoTo Probleme
End If
Case "Temps de travail dont formation"
If P3 = "intra muros" Then
Points = Points + 2
ElseIf P3 = "extra muros" Then
Points = Points + 3
Else
GoTo Probleme
End If
End Select
Case "Vélo classique"
Select Case P4
Case "Trajet domicile - travail"
If P5 = "- de 10" Then
Points = Points + 4
ElseIf P5 = "de 10 à 20" Then
Points = Points + 5
ElseIf P5 = "+ de 20" Then
Points = Points + 6
Else
GoTo Probleme
End If
Case "Temps de travail dont formation"
If P3 = "intra muros" Then
Points = Points + 3
ElseIf P3 = "extra muros" Then
Points = Points + 4
Else
GoTo Probleme
End If
End Select
Case "Multi mobilité"
Select Case P4
Case "Trajet domicile - travail"
If P5 = "- de 10" Then
Points = Points + 2
ElseIf P5 = "de 10 à 20" Then
Points = Points + 3
ElseIf P5 = "+ de 20" Then
Points = Points + 4
Else
GoTo Probleme
End If
Case "Temps de travail dont formation"
If P5 = "- de 10" Then
Points = Points + 2
ElseIf P5 = "de 10 à 20" Then
Points = Points + 3
ElseIf P5 = "+ de 20" Then
Points = Points + 4
Else
GoTo Probleme
End If
End Select
Case "Marche"
Select Case P4
Case "Trajet domicile - travail"
If P5 = "Moins de 2 km" Then
Points = Points + 4
ElseIf P5 = "De 2 à 5 km" Then
Points = Points + 5
ElseIf P5 = "5 km et +" Then
Points = Points + 6
Else
GoTo Probleme
End If
Case "Temps de travail dont formation"
If P3 = "intra muros" Then
Points = Points + 3
ElseIf P3 = "extra muros" Then
Points = Points
Else
GoTo Probleme
End If
End Select
End Select
Points = Points * CInt(P6)
CalcPoints = Points
Exit Function
Probleme:
MsgBox "Calcul impossible, données manquantes", vbOKOnly
CalcPoints = 0
End Function


Et voici l'ensemble des conditions (54, je sais 😉 )

Si P1 = "Co-voiturage" et P2 = 2 et et P3 = "Trajet domicile - travail" et P4 = "- de 10", alors le nombre de points est 2 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 2 et et P3 = "Trajet domicile - travail" et P4 = "de 10 à 20", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 2 et et P3 = "Trajet domicile - travail" et P4 = "+ de 20", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 2 et et P3 = "Temps de travail dont formation" et P4 = "- de 10", alors le nombre de points est 2,5 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 2 et et P3 = "Temps de travail dont formation" et P4 = "de 10 à 20", alors le nombre de points est 3,5 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 2 et et P3 = "Temps de travail dont formation" et P4 = "+ de 20", alors le nombre de points est 4,5 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 3 et et P3 = "Trajet domicile - travail" et P4 = "- de 10", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 3 et et P3 = "Trajet domicile - travail" et P4 = "de 10 à 20", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 3 et et P3 = "Trajet domicile - travail" et P4 = "+ de 20", alors le nombre de points est 5 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 3 et et P3 = "Temps de travail dont formation" et P4 = "- de 10", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 3 et et P3 = "Temps de travail dont formation" et P4 = "de 10 à 20", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 3 et et P3 = "Temps de travail dont formation" et P4 = "+ de 20", alors le nombre de points est 5 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 4 et et P3 = "Trajet domicile - travail" et P4 = "- de 10", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 4 et et P3 = "Trajet domicile - travail" et P4 = "de 10 à 20", alors le nombre de points est 5 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 4 et et P3 = "Trajet domicile - travail" et P4 = "+ de 20", alors le nombre de points est 6 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 4 et et P3 = "Temps de travail dont formation" et P4 = "- de 10", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 4 et et P3 = "Temps de travail dont formation" et P4 = "de 10 à 20", alors le nombre de points est 5 multiplié par le nombre de kilometres"
Si P1 = "Co-voiturage" et P2 = 4 et et P3 = "Temps de travail dont formation" et P4 = "+ de 20", alors le nombre de points est 6 multiplié par le nombre de kilometres"
Si P1 = "Vélo électrique" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "- de 10", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Vélo électrique" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "de 10 à 20", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Vélo électrique" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "+ de 20", alors le nombre de points est 5 multiplié par le nombre de kilometres"
Si P1 = "Vélo électrique" et et Intra Muros et P3 = "Temps de travail dont formation" et , alors le nombre de points est 2 multiplié par le nombre de kilometres"
Si P1 = "Vélo électrique" et et Extra Muros et P3 = "Temps de travail dont formation" et , alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Vélo classique" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "- de 10", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Vélo classique" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "de 10 à 20", alors le nombre de points est 5 multiplié par le nombre de kilometres"
Si P1 = "Vélo classique" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "+ de 20", alors le nombre de points est 6 multiplié par le nombre de kilometres"
Si P1 = "Vélo classique" et et Intra Muros et P3 = "Temps de travail dont formation" et , alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Vélo classique" et et Extra muros et P3 = "Temps de travail dont formation" et , alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "- de 10", alors le nombre de points est 2 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "de 10 à 20", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "+ de 20", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Intra Muros et P3 = "Temps de travail dont formation" et P4 = "- de 10", alors le nombre de points est 2 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Intra Muros et P3 = "Temps de travail dont formation" et P4 = "de 10 à 20", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Intra Muros et P3 = "Temps de travail dont formation" et P4 = "+ de 20", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Marche" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "Moins de 2 km", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Marche" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "De 2 à 5 km", alors le nombre de points est 5 multiplié par le nombre de kilometres"
Si P1 = "Marche" et et Intra Muros et P3 = "Trajet domicile - travail" et P4 = "5 km et +", alors le nombre de points est 6 multiplié par le nombre de kilometres"
Si P1 = "Marche" et et Intra Muros et P3 = "Temps de travail dont formation" et P4 = "intra muros", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Vélo électrique" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "- de 10", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Vélo électrique" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "de 10 à 20", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Vélo électrique" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "+ de 20", alors le nombre de points est 5 multiplié par le nombre de kilometres"
Si P1 = "Vélo classique" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "- de 10", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Vélo classique" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "de 10 à 20", alors le nombre de points est 5 multiplié par le nombre de kilometres"
Si P1 = "Vélo classique" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "+ de 20", alors le nombre de points est 6 multiplié par le nombre de kilometres"
Si P1 = "Marche" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "Moins de 2 km", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Marche" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "De 2 à 5 km", alors le nombre de points est 5 multiplié par le nombre de kilometres"
Si P1 = "Marche" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "5 km et +", alors le nombre de points est 6 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "- de 10", alors le nombre de points est 2 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "de 10 à 20", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Extra Muros et P3 = "Trajet domicile - travail" et P4 = "+ de 20", alors le nombre de points est 4 multiplié par le nombre de kilometres"
Si P1 = "Marche" et et Extra Muros et P3 = "Temps de travail dont formation" et P4 = "intra muros", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Extra Muros et P3 = "Temps de travail dont formation" et P4 = "- de 10", alors le nombre de points est 2 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Extra Muros et P3 = "Temps de travail dont formation" et P4 = "de 10 à 20", alors le nombre de points est 3 multiplié par le nombre de kilometres"
Si P1 = "Multi mobilité" et et Extra Muros et P3 = "Temps de travail dont formation" et P4 = "+ de 20", alors le nombre de points est 4 multiplié par le nombre de kilometres"



J'ai tenté une autre approche, uniquement basée sur des "If"... mais je bloque totalement...

.
Merci... beacoup !!!
 

Pièces jointes

Dernière édition:
Re
@Dranreb Merci pour les précisions 😉

@halecs93
En testant ton userform en prenant par exemple vélo électrique puis validant l’ensemble des combobox qui apparaissent, il me semble qu’il ne prends pas en compte ces cas … ce qui ferait plus de 54 conditions,
donc je me demande si tu n'as pas oublié des conditions ou si dans le déroulement de userform tu as pas généralisé le choix dans les combobox qui ajoutent des conditions qui ne devraient pas être.
 
Ça me fait penser que, bien entendu, mon ComboBoxLiée ne propose dans les listes des ComboBox prises en charge restant à renseigner que les éléments compatibles avec celles qui le sont déjà. Dès que les choix n'aboutissent plus qu'a une seule ligne les non renseignées sont assumés automatiquement. Tous changement est signalé à l'UserForm via évènements fournissant notamment le ou les numéros de lignes du tableau où les valeurs y existent.
 
@halecs93, bonjour.
Ne manquez pas de joindre une version de votre classeur munie de votre version du tableau des points si vous voulez que je l'équipe des modules de service permettant l'utilisation d'un objet ComboBoxLiées et, dans l'UserForm, des instructions qui le mettent en œuvre en utilisant ce tableau.
 
Re @halecs93

j'ai modifié le fichier Make conditions pour coller au texte que tu avais écris, par contre je suis pas sur pour la dernière colonne

le pbm est que tu fais :
Si P1 = "Co-voiturage" et P2 = 2 et et P3 = "Temps de travail dont formation" …

puis pour TERRITOIRE tu fais :
Si P1 = "Vélo électrique" et et Extra Muros et P3 = "Trajet domicile - travail"

et dans le code du post#1;
VB:
' … code
    If P3 = "intra muros" Then
    Points = Points + 3
    ElseIf P3 = "extra muros" Then
' … code

??????

VB:
    Select Case P4
    Case "Trajet domicile - travail"
        ' code …
    Case "Temps de travail dont formation"
        ' code …
    End Select

????
y a des incohérences … non … ?
 

Pièces jointes

Dernière édition:
Re @halecs93

j'ai modifié le fichier Make conditions pour coller au texte que tu avais écris, par contre je suis pas sur pour la dernière colonne

le pbm est que tu fais :


puis pour TERRITOIRE tu fais :


et dans le code du post#1;
VB:
' … code
    If P3 = "intra muros" Then
    Points = Points + 3
    ElseIf P3 = "extra muros" Then
' … code

??????

VB:
    Select Case P4
    Case "Trajet domicile - travail"
        ' code …
    Case "Temps de travail dont formation"
        ' code …
    End Select

????
y a des incohérences … non … ?
Je ne sais pas.... mais les points m'ont été communiqués comme ça
 
Re @halecs93

j'ai modifié le fichier Make conditions pour coller au texte que tu avais écris, par contre je suis pas sur pour la dernière colonne

le pbm est que tu fais :


puis pour TERRITOIRE tu fais :


et dans le code du post#1;
VB:
' … code
    If P3 = "intra muros" Then
    Points = Points + 3
    ElseIf P3 = "extra muros" Then
' … code

??????

VB:
    Select Case P4
    Case "Trajet domicile - travail"
        ' code …
    Case "Temps de travail dont formation"
        ' code …
    End Select

????
y a des incohérences … non … ?
Ouais en effet... la logique et moi...on doit être fâché
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
1 K
Réponses
1
Affichages
923
Retour