Soit le code suivant, qui fonctionne très, et qui sert à additionner des
cellules, suivant leurs couleur de remplissage.
Mais là où cela ne fontionne plus, c'est quand je veux remplacer la ligne:
Couleur_Fond = Range("A1").Interior.Color
par
Couleur_Fond = 3
en sachant que 3 est l'index de la couleur rouge.
Pourquoi ????
Merci
---------------------------------------------
Sub Macro1()
'DÉFINITION
Dim Couleur_Fond As Long
Dim Cel_Test As Range
Dim Total_Cel As Integer 'ou long, double suivant contenu
'MEI : mise à l'état initial
Couleur_Fond = Range("A1").Interior.Color
'Dans mon cas, la couleur de la cellule A1 sert de référence
'Couleur_Fond est une variable, mais tu peux utiliser
'la formule directement
Range("D1:D5").Select
'Si tu sélectionnes des cellules avant de lancer
'ta macro, cette ligne est inutile
'BOUCLE
For Each Cel_Test In Selection 'Début boucle
'Pour chaque cellule de la sélection
If Cel_Test.Interior.Color = Couleur_Fond Then
'Si couleur fond de cellule = Couleur_Fond, on continue
'sinon, on va directement à la ligne End If
'Sans variable en direct on peut écrire :
'If Cel_Test.Interior.Color = Range("A1").Interior.Color
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JB
Avec une fonction (+souple) http://cjoint.com/?hEm5c8M3vW
JB
Bonjour,
Soit le code suivant, qui fonctionne très, et qui sert à additionner des cellules, suivant leurs couleur de remplissage.
Mais là où cela ne fontionne plus, c'est quand je veux remplacer la l igne:
Couleur_Fond = Range("A1").Interior.Color par Couleur_Fond = 3
en sachant que 3 est l'index de la couleur rouge.
Pourquoi ????
Merci
--------------------------------------------- Sub Macro1() 'DÉFINITION Dim Couleur_Fond As Long Dim Cel_Test As Range Dim Total_Cel As Integer 'ou long, double suivant contenu
'MEI : mise à l'état initial
Couleur_Fond = Range("A1").Interior.Color
'Dans mon cas, la couleur de la cellule A1 sert de référence 'Couleur_Fond est une variable, mais tu peux utiliser 'la formule directement
Range("D1:D5").Select 'Si tu sélectionnes des cellules avant de lancer 'ta macro, cette ligne est inutile
'BOUCLE For Each Cel_Test In Selection 'Début boucle 'Pour chaque cellule de la sélection
If Cel_Test.Interior.Color = Couleur_Fond Then 'Si couleur fond de cellule = Couleur_Fond, on continue 'sinon, on va directement à la ligne End If 'Sans variable en direct on peut écrire : 'If Cel_Test.Interior.Color = Range("A1").Interior.Color
Next 'Fin boucle 'Tant que toute la sélection n'est pas testée, 'On retourne à la ligne suivant For Each.... 'sinon, on continue
[A1] = Total_Cel
End Sub ----------------------------------------------
Avec une fonction (+souple) http://cjoint.com/?hEm5c8M3vW
JB
Bonjour,
Soit le code suivant, qui fonctionne très, et qui sert à additionner des
cellules, suivant leurs couleur de remplissage.
Mais là où cela ne fontionne plus, c'est quand je veux remplacer la l igne:
Couleur_Fond = Range("A1").Interior.Color
par
Couleur_Fond = 3
en sachant que 3 est l'index de la couleur rouge.
Pourquoi ????
Merci
---------------------------------------------
Sub Macro1()
'DÉFINITION
Dim Couleur_Fond As Long
Dim Cel_Test As Range
Dim Total_Cel As Integer 'ou long, double suivant contenu
'MEI : mise à l'état initial
Couleur_Fond = Range("A1").Interior.Color
'Dans mon cas, la couleur de la cellule A1 sert de référence
'Couleur_Fond est une variable, mais tu peux utiliser
'la formule directement
Range("D1:D5").Select
'Si tu sélectionnes des cellules avant de lancer
'ta macro, cette ligne est inutile
'BOUCLE
For Each Cel_Test In Selection 'Début boucle
'Pour chaque cellule de la sélection
If Cel_Test.Interior.Color = Couleur_Fond Then
'Si couleur fond de cellule = Couleur_Fond, on continue
'sinon, on va directement à la ligne End If
'Sans variable en direct on peut écrire :
'If Cel_Test.Interior.Color = Range("A1").Interior.Color
Avec une fonction (+souple) http://cjoint.com/?hEm5c8M3vW
JB
Bonjour,
Soit le code suivant, qui fonctionne très, et qui sert à additionner des cellules, suivant leurs couleur de remplissage.
Mais là où cela ne fontionne plus, c'est quand je veux remplacer la l igne:
Couleur_Fond = Range("A1").Interior.Color par Couleur_Fond = 3
en sachant que 3 est l'index de la couleur rouge.
Pourquoi ????
Merci
--------------------------------------------- Sub Macro1() 'DÉFINITION Dim Couleur_Fond As Long Dim Cel_Test As Range Dim Total_Cel As Integer 'ou long, double suivant contenu
'MEI : mise à l'état initial
Couleur_Fond = Range("A1").Interior.Color
'Dans mon cas, la couleur de la cellule A1 sert de référence 'Couleur_Fond est une variable, mais tu peux utiliser 'la formule directement
Range("D1:D5").Select 'Si tu sélectionnes des cellules avant de lancer 'ta macro, cette ligne est inutile
'BOUCLE For Each Cel_Test In Selection 'Début boucle 'Pour chaque cellule de la sélection
If Cel_Test.Interior.Color = Couleur_Fond Then 'Si couleur fond de cellule = Couleur_Fond, on continue 'sinon, on va directement à la ligne End If 'Sans variable en direct on peut écrire : 'If Cel_Test.Interior.Color = Range("A1").Interior.Color
Next 'Fin boucle 'Tant que toute la sélection n'est pas testée, 'On retourne à la ligne suivant For Each.... 'sinon, on continue
[A1] = Total_Cel
End Sub ----------------------------------------------
Daniel
Bonjour. 3 correspond à la propriété "colorindex" Fais : msgbox Range("A1").Interior.Color tu obtiens 255, pas 3. Cordialement. Daniel "Wenlok" a écrit dans le message de news: 44cc8c74$0$1023$
Bonjour,
Soit le code suivant, qui fonctionne très, et qui sert à additionner des cellules, suivant leurs couleur de remplissage.
Mais là où cela ne fontionne plus, c'est quand je veux remplacer la ligne:
Couleur_Fond = Range("A1").Interior.Color par Couleur_Fond = 3
en sachant que 3 est l'index de la couleur rouge.
Pourquoi ????
Merci
--------------------------------------------- Sub Macro1() 'DÉFINITION Dim Couleur_Fond As Long Dim Cel_Test As Range Dim Total_Cel As Integer 'ou long, double suivant contenu
'MEI : mise à l'état initial
Couleur_Fond = Range("A1").Interior.Color
'Dans mon cas, la couleur de la cellule A1 sert de référence 'Couleur_Fond est une variable, mais tu peux utiliser 'la formule directement
Range("D1:D5").Select 'Si tu sélectionnes des cellules avant de lancer 'ta macro, cette ligne est inutile
'BOUCLE For Each Cel_Test In Selection 'Début boucle 'Pour chaque cellule de la sélection
If Cel_Test.Interior.Color = Couleur_Fond Then 'Si couleur fond de cellule = Couleur_Fond, on continue 'sinon, on va directement à la ligne End If 'Sans variable en direct on peut écrire : 'If Cel_Test.Interior.Color = Range("A1").Interior.Color
Next 'Fin boucle 'Tant que toute la sélection n'est pas testée, 'On retourne à la ligne suivant For Each.... 'sinon, on continue
[A1] = Total_Cel
End Sub ----------------------------------------------
Bonjour.
3 correspond à la propriété "colorindex"
Fais : msgbox Range("A1").Interior.Color
tu obtiens 255, pas 3.
Cordialement.
Daniel
"Wenlok" <nopubwenlok@free.fr> a écrit dans le message de news:
44cc8c74$0$1023$ba4acef3@news.orange.fr...
Bonjour,
Soit le code suivant, qui fonctionne très, et qui sert à additionner des
cellules, suivant leurs couleur de remplissage.
Mais là où cela ne fontionne plus, c'est quand je veux remplacer la ligne:
Couleur_Fond = Range("A1").Interior.Color
par
Couleur_Fond = 3
en sachant que 3 est l'index de la couleur rouge.
Pourquoi ????
Merci
---------------------------------------------
Sub Macro1()
'DÉFINITION
Dim Couleur_Fond As Long
Dim Cel_Test As Range
Dim Total_Cel As Integer 'ou long, double suivant contenu
'MEI : mise à l'état initial
Couleur_Fond = Range("A1").Interior.Color
'Dans mon cas, la couleur de la cellule A1 sert de référence
'Couleur_Fond est une variable, mais tu peux utiliser
'la formule directement
Range("D1:D5").Select
'Si tu sélectionnes des cellules avant de lancer
'ta macro, cette ligne est inutile
'BOUCLE
For Each Cel_Test In Selection 'Début boucle
'Pour chaque cellule de la sélection
If Cel_Test.Interior.Color = Couleur_Fond Then
'Si couleur fond de cellule = Couleur_Fond, on continue
'sinon, on va directement à la ligne End If
'Sans variable en direct on peut écrire :
'If Cel_Test.Interior.Color = Range("A1").Interior.Color
Bonjour. 3 correspond à la propriété "colorindex" Fais : msgbox Range("A1").Interior.Color tu obtiens 255, pas 3. Cordialement. Daniel "Wenlok" a écrit dans le message de news: 44cc8c74$0$1023$
Bonjour,
Soit le code suivant, qui fonctionne très, et qui sert à additionner des cellules, suivant leurs couleur de remplissage.
Mais là où cela ne fontionne plus, c'est quand je veux remplacer la ligne:
Couleur_Fond = Range("A1").Interior.Color par Couleur_Fond = 3
en sachant que 3 est l'index de la couleur rouge.
Pourquoi ????
Merci
--------------------------------------------- Sub Macro1() 'DÉFINITION Dim Couleur_Fond As Long Dim Cel_Test As Range Dim Total_Cel As Integer 'ou long, double suivant contenu
'MEI : mise à l'état initial
Couleur_Fond = Range("A1").Interior.Color
'Dans mon cas, la couleur de la cellule A1 sert de référence 'Couleur_Fond est une variable, mais tu peux utiliser 'la formule directement
Range("D1:D5").Select 'Si tu sélectionnes des cellules avant de lancer 'ta macro, cette ligne est inutile
'BOUCLE For Each Cel_Test In Selection 'Début boucle 'Pour chaque cellule de la sélection
If Cel_Test.Interior.Color = Couleur_Fond Then 'Si couleur fond de cellule = Couleur_Fond, on continue 'sinon, on va directement à la ligne End If 'Sans variable en direct on peut écrire : 'If Cel_Test.Interior.Color = Range("A1").Interior.Color
Next 'Fin boucle 'Tant que toute la sélection n'est pas testée, 'On retourne à la ligne suivant For Each.... 'sinon, on continue
[A1] = Total_Cel
End Sub ----------------------------------------------
Wenlok
Merci, c'est meme beaucoup mieux !
"JB" a écrit dans le message de news:
Avec une fonction (+souple) http://cjoint.com/?hEm5c8M3vW
JB
Bonjour,
Soit le code suivant, qui fonctionne très, et qui sert à additionner des cellules, suivant leurs couleur de remplissage.
Mais là où cela ne fontionne plus, c'est quand je veux remplacer la ligne:
Couleur_Fond = Range("A1").Interior.Color par Couleur_Fond = 3
en sachant que 3 est l'index de la couleur rouge.
Pourquoi ????
Merci
--------------------------------------------- Sub Macro1() 'DÉFINITION Dim Couleur_Fond As Long Dim Cel_Test As Range Dim Total_Cel As Integer 'ou long, double suivant contenu
'MEI : mise à l'état initial
Couleur_Fond = Range("A1").Interior.Color
'Dans mon cas, la couleur de la cellule A1 sert de référence 'Couleur_Fond est une variable, mais tu peux utiliser 'la formule directement
Range("D1:D5").Select 'Si tu sélectionnes des cellules avant de lancer 'ta macro, cette ligne est inutile
'BOUCLE For Each Cel_Test In Selection 'Début boucle 'Pour chaque cellule de la sélection
If Cel_Test.Interior.Color = Couleur_Fond Then 'Si couleur fond de cellule = Couleur_Fond, on continue 'sinon, on va directement à la ligne End If 'Sans variable en direct on peut écrire : 'If Cel_Test.Interior.Color = Range("A1").Interior.Color
Next 'Fin boucle 'Tant que toute la sélection n'est pas testée, 'On retourne à la ligne suivant For Each.... 'sinon, on continue
[A1] = Total_Cel
End Sub ----------------------------------------------
Merci, c'est meme beaucoup mieux !
"JB" <boisgontier@hotmail.com> a écrit dans le message de news:
1154257141.531886.231130@m73g2000cwd.googlegroups.com...
Avec une fonction (+souple) http://cjoint.com/?hEm5c8M3vW
JB
Bonjour,
Soit le code suivant, qui fonctionne très, et qui sert à additionner des
cellules, suivant leurs couleur de remplissage.
Mais là où cela ne fontionne plus, c'est quand je veux remplacer la ligne:
Couleur_Fond = Range("A1").Interior.Color
par
Couleur_Fond = 3
en sachant que 3 est l'index de la couleur rouge.
Pourquoi ????
Merci
---------------------------------------------
Sub Macro1()
'DÉFINITION
Dim Couleur_Fond As Long
Dim Cel_Test As Range
Dim Total_Cel As Integer 'ou long, double suivant contenu
'MEI : mise à l'état initial
Couleur_Fond = Range("A1").Interior.Color
'Dans mon cas, la couleur de la cellule A1 sert de référence
'Couleur_Fond est une variable, mais tu peux utiliser
'la formule directement
Range("D1:D5").Select
'Si tu sélectionnes des cellules avant de lancer
'ta macro, cette ligne est inutile
'BOUCLE
For Each Cel_Test In Selection 'Début boucle
'Pour chaque cellule de la sélection
If Cel_Test.Interior.Color = Couleur_Fond Then
'Si couleur fond de cellule = Couleur_Fond, on continue
'sinon, on va directement à la ligne End If
'Sans variable en direct on peut écrire :
'If Cel_Test.Interior.Color = Range("A1").Interior.Color
Avec une fonction (+souple) http://cjoint.com/?hEm5c8M3vW
JB
Bonjour,
Soit le code suivant, qui fonctionne très, et qui sert à additionner des cellules, suivant leurs couleur de remplissage.
Mais là où cela ne fontionne plus, c'est quand je veux remplacer la ligne:
Couleur_Fond = Range("A1").Interior.Color par Couleur_Fond = 3
en sachant que 3 est l'index de la couleur rouge.
Pourquoi ????
Merci
--------------------------------------------- Sub Macro1() 'DÉFINITION Dim Couleur_Fond As Long Dim Cel_Test As Range Dim Total_Cel As Integer 'ou long, double suivant contenu
'MEI : mise à l'état initial
Couleur_Fond = Range("A1").Interior.Color
'Dans mon cas, la couleur de la cellule A1 sert de référence 'Couleur_Fond est une variable, mais tu peux utiliser 'la formule directement
Range("D1:D5").Select 'Si tu sélectionnes des cellules avant de lancer 'ta macro, cette ligne est inutile
'BOUCLE For Each Cel_Test In Selection 'Début boucle 'Pour chaque cellule de la sélection
If Cel_Test.Interior.Color = Couleur_Fond Then 'Si couleur fond de cellule = Couleur_Fond, on continue 'sinon, on va directement à la ligne End If 'Sans variable en direct on peut écrire : 'If Cel_Test.Interior.Color = Range("A1").Interior.Color