XL 2019 Pack fonctions XLP

cytise95

XLDnaute Junior
Bonsoir,
J'ai entendu qu'il y avait un Pack de fonctions XLP permettant d'avoir une fonction : nb.si.couleur($H$4:$H$24;NO.COULEUR(AH10)).
Je ne trouve rien dans les compléments Microsoft. Je trouve des liens de téléchargement -non officiel- donc je reste prudent.
La recherche dans excel downloads est vaine.
Quelqu'un aurait une infos sur ce kit ?
Cordialement
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bosoir @cytise95 :)

Si ça n'existe pas alors on le fait (fonction personnalisée en VBA). Voir formules en colonne H.

Attention ! Quand on change la couleur d'un fond, la fonction n'est pas recalculée. Il faut forcer le re-calcul de la feuille.

Placer dans un module, le code suivant :
VB:
Function NbrSiRefCoul&(xplage As Range, xRef As Range)
Dim ref, x, n&
   ref = xRef.Interior.Color
   For Each x In xplage: n = n - (x.Interior.Color = ref): Next
   NbrSiRefCoul = n
End Function
 

Pièces jointes

  • cytise95- Nbr cellule couleur fond- v1.xlsm
    16.8 KB · Affichages: 7
Dernière édition:

cytise95

XLDnaute Junior
Bosoir @cytise95 :)

Si ça n'existe pas alors on le fait (fonction personnalisée en VBA). Voir formules en colonne H.

Attention ! Quand on change la couleur d'un fond, la fonction n'est pas recalculée. Il faut forcer le re-calcul de la feuille.

Placer dans un module, le code suivant :
VB:
Function NbrSiRefCoul&(xplage As Range, xRef As Range)
Dim ref, x, n&
   ref = xRef.Interior.Color
   For Each x In xplage: n = n - (x.Interior.Color = ref): Next
   NbrSiRefCoul = n
End Function
Désolé je n'avais pas vu votre réponse
Je vais essayer dans mon fichier
 

patricktoulon

XLDnaute Barbatruc
bonsoir
il me semble l'avoir téléchargé dans le temps et il y avait un mot de passe vba alors poubelle directe

mais je me demande bien comment l'auteur sur excel pratique a pu coder ça en vba pour avoir une fonction
s'exprimant par fonction . condition . sujet dans une formule
je fait référence aux points dans ma question

j'ai deja tenté l'aventure avec des variable type ou des fonction get property et let property
mais je n'ai jamais trouvé
la je suis vraiment curieux 🤔;)
 

cytise95

XLDnaute Junior
Désolé je n'avais pas vu votre réponse
Je vais essayer dans mon fichier

Bosoir @cytise95 :)

Si ça n'existe pas alors on le fait (fonction personnalisée en VBA). Voir formules en colonne H.

Attention ! Quand on change la couleur d'un fond, la fonction n'est pas recalculée. Il faut forcer le re-calcul de la feuille.

Placer dans un module, le code suivant :
VB:
Function NbrSiRefCoul&(xplage As Range, xRef As Range)
Dim ref, x, n&
   ref = xRef.Interior.Color
   For Each x In xplage: n = n - (x.Interior.Color = ref): Next
   NbrSiRefCoul = n
End Function
J'ai essayé mais sans résultat.
Il y a aussi une condition il faut que les colonnes correspondent à un nom
 

Pièces jointes

  • Test_Planning.xlsm
    33.4 KB · Affichages: 5

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Enfin un fichier : ça c'est intéressant.

Je vous déconseille de faire de dénombrement avec comme critère les couleurs de fond. Pour des raisons que je détaillerai pas (couleurs identiques à l’œil mais en réalité différentes, la changement de couleur ne déclenche aucun événement qu'on peut intercepter, complication de repérer les couleurs issues de MFC, ...)

Il vaut mieux utiliser un tableur pour ce qu'il est : la gestion des valeurs des cellules.

Dans le fichier joint, il y a une fonction :
VB:
NBQuiQuoi ( xPlageQui As Range , xQui , xPlageQuoi As Range , xQuoi)

Voir la formule en cellule AH5 à copier vers la droite et vers le bas.

Le code est dans module1 (et doit être dans un module indépendant et non dans un module de feuille) :
VB:
Function NBQuiQuoi(xPlageQui As Range, xQui, xPlageQuoi As Range, xQuoi)
Dim j&, y, n&
   ' Quelques vérifs  sur les plages
   If xPlageQui.Column <> xPlageQuoi.Column Then NBQuiQuoi = CVErr(xlErrRef): Exit Function
   If xPlageQui.Columns.Count <> xPlageQuoi.Columns.Count Then NBQuiQuoi = CVErr(xlErrRef): Exit Function
   ' Dénombrement
   For j = 1 To xPlageQui.Columns.Count
      If xPlageQui(1, j) = xQui Then
         For Each y In xPlageQuoi.Columns(j).Cells
            If y = xQuoi Then n = n + 1
         Next y
      End If
   Next j
   NBQuiQuoi = n
End Function
 

Pièces jointes

  • Tcytise95- est_Planning- v1.xlsm
    37.1 KB · Affichages: 4
Dernière édition:

Statistiques des forums

Discussions
312 329
Messages
2 087 327
Membres
103 518
dernier inscrit
hbenaoun63