Problème de l'utilisation de la fonction somcool

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 !

benjiii369

XLDnaute Nouveau
Bonjour,

Dans mon fichier de notation par couleur, j’utilise la fonction somcool.
Elle fonctionne lorsque je l'écris sous la forme =SomCool('nom de l'éleve'!B:B;"rouge")
seulement je souhaite ne pas recopier le nom de chaque élève mais que ce nom d'élève qui correspond à une feuille fasse référence au nom inscrit dans une cellule.

Comment faire ?

Merci d'avance ! 🙂
 

Pièces jointes

Re : Problème de l'utilisation de la fonction somcool

Bonjour,

Votre classeur a des liaisons avec d'autres et, de ce fait, nous n'avons pas toutes les infos pour comprendre votre problématique.
Pouvez-vous construire un classeur sans liaison pour l'illustrer ?
 
Re : Problème de l'utilisation de la fonction somcool

Bonjour,

J'ai 2 pistes à vous proposer (dans l'exemple, voir la feuille "Prépa_Pro_Troisième_")

1) Function SomCool_pmo(NomFeuille As Range, Zone As Range, Couleur As String) As Long
Elle s'écrit =SomCool_pmo(B6;B17:E100;"rouge")
Le troisième argument est de type String

OU

2) Function SomCool_pmo2(NomFeuille As Range, Zone As Range, Cellule_Couleur As Range) As Long
Elle s'écrit =SomCool_pmo2(B6;B17:E100;E29)
Le troisième argument est de type Range et transmet sa propriété Interior.ColorIndex

A vous de choisir.

Code:
Function SomCool_pmo(NomFeuille As Range, Zone As Range, Couleur As String) As Long
Dim C As Range
'---
Application.Volatile True
Select Case Couleur
  Case "rouge"
    Couleur = 3
  Case "bleu"
    Couleur = 5
  Case "orange"
    Couleur = 44
  Case "vert clair"
    Couleur = 35
  Case "vert"
    Couleur = 4
End Select
'---
For Each C In Sheets(NomFeuille.Value).Range(Zone.Address)
  If WorksheetFunction.And(C.Interior.ColorIndex = Couleur) Then _
      SomCool_pmo = SomCool_pmo + 1
Next C
End Function

'#################

Function SomCool_pmo2(NomFeuille As Range, Zone As Range, Cellule_Couleur As Range) As Long
Dim C As Range
'---
Application.Volatile True
'---
For Each C In Sheets(NomFeuille.Value).Range(Zone.Address)
  If WorksheetFunction.And(C.Interior.ColorIndex = Cellule_Couleur.Interior.ColorIndex) Then _
      SomCool_pmo2 = SomCool_pmo2 + 1
Next C
End Function
 

Pièces jointes

- 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
507
Retour