Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…