Calcul fonction de la selection des profiles d’entrée&sortie

Résolu/Fermé
tutu974 Messages postés 3 Date d'inscription dimanche 25 décembre 2016 Statut Membre Dernière intervention 26 décembre 2016 - 25 déc. 2016 à 13:45
tutu974 Messages postés 3 Date d'inscription dimanche 25 décembre 2016 Statut Membre Dernière intervention 26 décembre 2016 - 26 déc. 2016 à 00:18
Bonjour,

Je développe actuellement des formations avec des temps associés pour 3 types de profile d’entrée différents avec choix multiples de profile de sortie par addition de modules de formation (que j'appelle TC de 1 à 9), environ une dizaine de possibilités de formation possible par profile d’entrée.
Ce que je souhaite, c'est de pouvoir choisir depuis 2 cellules Excel avec listes déroulantes, les profils d’entrée et les profils de sortie et de faire calculer automatiquement à Excel le temps de formation total par addition de temps des TC à accomplir.
J'ai essayé cela mais ça ne fonctionne déjà pas à la deuxième condition :
=SI(ET(D52="ALPHA";D53="TC1");G34;SI(ET(D52="ALPHA";D53="TC1+TC7");G34+G40;..ETC,ETC POUR LE PREMIER PROFILE D'ENTRÉE...PUIS A LA SUITE POUR LE DEUXIÈME PROFILE D'ENTRÉE ET LE TROISIEME: SI(ET(D52="BRAVO";D53="TC2");G35;SI(ET(D52="BRAVO";D53="TC2+TC7");G34+G40;"0")))...ETC,
ETC.

Merci beaucoup de votre aide et bonne fête à tous.
Laurent.
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 25/12/2016 à 18:38
proposition avec une fonction personnalisée

Option Explicit
'-------------------------------------------------------------------------------
Function Duree_form(Cellule As Range) As Integer
Dim Nbre As Byte, T_form, Cptr As Integer
Nbre = Application.CountIf(Cellule, "*+*") 'présence de "+"
If Nbre > 0 Then 'si pls modules formation
T_form = Split(Replace(Cellule, "+", " ")) 'enlève les caractères + remplacé par des espaces
pour dissocier les modules formation
For Cptr = 0 To UBound(T_form)
Duree_form = Duree_form + Columns("B").Find(T_form(Cptr), Range("B33")).Offset(0, 5)
Next 'trouve la durée module à 5 colonnes à droite de la ligne du module
Else
Duree_form = Columns("B").Find(Cellule, Range("B33")).Offset(0, 5)
End If
End Function


ton classeur en retour
https://mon-partage.fr/f/ddG7IHLo/

 Michel
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
25 déc. 2016 à 14:46
Bonjour,
sans voir le classeur...
Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message

Dans l’attente
0
tutu974 Messages postés 3 Date d'inscription dimanche 25 décembre 2016 Statut Membre Dernière intervention 26 décembre 2016
25 déc. 2016 à 16:09
Bonjour,

Merci beaucoup de votre aide.
Ci-joint le lien vers le fichier: https://mon-partage.fr/f/PfDB81n3/
Bien cordialement.
Laurent.
0
tutu974 Messages postés 3 Date d'inscription dimanche 25 décembre 2016 Statut Membre Dernière intervention 26 décembre 2016
26 déc. 2016 à 00:18
Bonsoir,

Merci beaucoup...!
Il va me falloir un peu de temps pour tout comprendre mais au moins cela fonctionne.
Passez de bonnes fêtes.
Merci encore de votre aide.

Laurent.
0