Renvoi de valeurs de cellules

Résolu
polinjer Messages postés 3 Statut Membre -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

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

    eric
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    2. polinjer Messages postés 3 Statut Membre
       
      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
    3. polinjer Messages postés 3 Statut Membre
       
      C'est bon, j'ai trouvé ! Avec Visual Basic Editor ;)
      Et çà fonctionne super bien !!!
      Un grand merci Eric !!!
      0
    4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      ok :-)
      Je met en résolu pour toi (en haut vers ton titre pour la prochaine fois)
      eric
      0