A voir également:
- Correction de fonction
- Correction manuel - Forum Études / Formation High-Tech
- Fonction si et - Guide
- Fonction si avec date ✓ - Forum Excel
- Ajout snap par la fonction - Forum Snapchat
- Fonction find vba - Astuces et Solutions
4 réponses
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
8 avril 2019 à 14:40
8 avril 2019 à 14:40
Bonjour,
Pour commencer, merci à l'avenir d'utiliser les balises de code pour poster ton code sur le forum
explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, dans ta fonction tu passes en parametre
Range au plurièl ? Que lui envoies tu au juste ... une seule plage de cellules ou plusieurs voir même.. une seule cellule ??
Car si tu ne passes qu'une seule cellule... c'est RANGE au singulier qu'il faut utiliser.
Sans compter que si ta plage contenait plusieurs cellules.. il faudrait boucler dessus...
Et pour finir.. pourquoi faire un -1 pour ton calcul ??
Pour commencer, merci à l'avenir d'utiliser les balises de code pour poster ton code sur le forum
explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite, dans ta fonction tu passes en parametre
(Cell As Ranges)
Range au plurièl ? Que lui envoies tu au juste ... une seule plage de cellules ou plusieurs voir même.. une seule cellule ??
Car si tu ne passes qu'une seule cellule... c'est RANGE au singulier qu'il faut utiliser.
Sans compter que si ta plage contenait plusieurs cellules.. il faudrait boucler dessus...
Et pour finir.. pourquoi faire un -1 pour ton calcul ??
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
8 avril 2019 à 14:46
8 avril 2019 à 14:46
Bonjour,
Tu as l'embarras du choix:
http://www.xavierdupre.fr/blog/2013-01-26_nojs.html
https://www.formuleexcel.com/compter-les-cellules-selon-leur-couleur-sur-excel/
https://www.commentcamarche.net/faq/46274-vba-excel-nombre-de-cellules-selon-leur-couleur
Tu as l'embarras du choix:
http://www.xavierdupre.fr/blog/2013-01-26_nojs.html
https://www.formuleexcel.com/compter-les-cellules-selon-leur-couleur-sur-excel/
https://www.commentcamarche.net/faq/46274-vba-excel-nombre-de-cellules-selon-leur-couleur
Kalissi
Messages postés
218
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
15 juillet 2019
20
8 avril 2019 à 15:01
8 avril 2019 à 15:01
Bonjour,
Tel que décrit par mes prédécesseurs, la signature de la méthode est douteuse.
Utiliser un mot qui ressemble à un mot réservé est périlleux.
Cell ~ Cells
Le mot Cells est un mot réservé à ne jamais utiliser comme nom de variable.
Le mot Cell ... pas vraiment une bonne idée.
Jordane à spécifié l'erreur de Ranges au lieu de Range.
Une définition comme suit serait préférable :
note : Cellules est au pluriel car il pourrait y avoir plus d'une cellule
Exemple :
K
Tel que décrit par mes prédécesseurs, la signature de la méthode est douteuse.
Public Function NB_Couleurs(Cell As Ranges) As Integer
Utiliser un mot qui ressemble à un mot réservé est périlleux.
Cell ~ Cells
Le mot Cells est un mot réservé à ne jamais utiliser comme nom de variable.
Le mot Cell ... pas vraiment une bonne idée.
Jordane à spécifié l'erreur de Ranges au lieu de Range.
Une définition comme suit serait préférable :
Public Function NB_Couleurs(ByVal Cellules As Range) As Integer
note : Cellules est au pluriel car il pourrait y avoir plus d'une cellule
Exemple :
Option Explicit
'
Public Sub Test()
Dim Target As Range
Dim Retour As Integer
Set Target = Range("A1:D10")
Retour = NB_Couleurs(Target)
MsgBox Retour
End Sub
'
Public Function NB_Couleurs(ByVal Cellules As Range) As Integer
Dim colec As New Collection
Dim Cible As Range
Application.Volatile
On Error Resume Next
For Each Cible In Cellules
colec.Add Item:=Cible.Interior.ColorIndex, Key:=CStr(Cible.Interior.ColorIndex)
Next Cible
NB_Couleurs = colec.Count - 1
End Function
K