Renvoi de valeurs de cellules

Résolu/Fermé
polinjer Messages postés 3 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 14 novembre 2012 - 12 nov. 2012 à 15:40
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 14 nov. 2012 à 11:06
Bonjour.

Je suis sous Excel 2007 Windows XP Pro.

J'aimerais afficher dans la feuille "Préparation", dans les colonnes "I62" à "I72", les numéros des "Phase de travail" de la feuille "mode_opératoire" associé aux "Risques spécifiques".
Je m'explique :
- Dans la feuille "mode_opératoire", j'ai des numéros de "phase de travail" d'un chantier (cellules A13 à A36). Lors d'une même phase de travail, je peux avoir plusieurs risques spécifiques.
- Dans la feuille "Préparation", j'aimerais que dans les cases I62 à I72 figurent tous les numéros des phases de travail du risque spécifique.
Par exemple, pour le Risque ELECTRIQUE, dans la case I62 de la feuille "Préparation", la valeur retournée serait : " 1 + 4 + 5 "
Pour le risque INDUCTION, en I63, la valeur " 2 + 4 ", pour le risque PRESSION, en I71, la valeur " " (car pas de risque de Pression répertorié dans aucune phase de travail de la feuille "mode_opératoire")

https://www.cjoint.com/?BKmpL5JUUuL

J'espère avoir été "clair" ! lol
Merci d'avance.
Jérôme.

1 réponse

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
12 nov. 2012 à 16:52
Bonjour,

tu as beaucoup de fiches à faire ?
Parce que là il n'y a plus que 4 résultats à mettre...

eric
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
12 nov. 2012 à 17:16
une petite fonction personnalisée :
Function cumulCodes(Libellé As String, plageCodes As Range, Optional séparateur As String) As String
    ' colonne 1 de plageCodes : codes
    ' colonne 3 de plageCodes : libellés
    Dim lig As Long
    If IsMissing(séparateur) Then séparateur = "; "
    For lig = 1 To plageCodes.Rows.Count
        If plageCodes(lig, 3) = Libellé Then cumulCodes = cumulCodes & séparateur & plageCodes(lig, 1)
    Next lig
    cumulCodes = Mid(cumulCodes, Len(séparateur) + 1)
End Function


Ex syntaxe :
=cumulCodes(GAUCHE(A62;CHERCHE(" ";A62)-1);mode_opératoire!$A$13:$E$24;" + ")
Tes libellés doivent être exacts et en 1 mot : ajouter les _. Ex : PLAIN_PIED

https://www.cjoint.com/?BKmrp16IZsF

eric
0
polinjer Messages postés 3 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 14 novembre 2012
14 nov. 2012 à 10:29
Merci Eric :)

Mais où dois-je créer cette fonction cumulCodes ? Dans une autre feuille Excel ? Je n'ai jamais fait de programmation :/
Merci beaucoup
Jérôme
0
polinjer Messages postés 3 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 14 novembre 2012
14 nov. 2012 à 10:46
C'est bon, j'ai trouvé ! Avec Visual Basic Editor ;)
Et çà fonctionne super bien !!!
Un grand merci Eric !!!
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
14 nov. 2012 à 11:06
ok :-)
Je met en résolu pour toi (en haut vers ton titre pour la prochaine fois)
eric
0