Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

compter cellules meme apres fusion

9 réponses
Avatar
mik
Bonjour je parcours un tableau a une colonne pour regarder quelle est la
couleur à l'intérieur des cellules, j'ai parfois des cellules fusionnees et
je voudrais que la fusion n'ait aucune incidence sur mon calcul (1 cellule
résultat de 3 cellules fusionnées doit compter pour 3 cellules dans mon
calcul).

Y'a t-il un moyen de forcer excel a raisonner en cellules "réel"??

merci d'avance de votre aide,
mik


code:

Function fSomCoul(Plage As Range, ref As Range) As Double
Dim Coulplage As Integer, Cellplage As Range, coulref As Integer, cellref
As Range, tarifref As Double, Lsomme As Double


For Each Cellplage In Plage
Coulplage = Cellplage.Interior.ColorIndex
For Each cellref In ref
coulref = cellref.Interior.ColorIndex
tarifref = 0
If coulref = Coulplage Then
tarifref = cellref.Value
Exit For
End If
Next

Lsomme = Lsomme + tarifref

Next
fSomCoul = Lsomme
End Function

9 réponses

Avatar
isabelle
bonjour mik,

je crois bien qu'il n'y a pas d'autre choix que de selectionner au
préalable,
x = Range(Selection.Address).Count

isabelle

mik a écrit :
Bonjour je parcours un tableau a une colonne pour regarder quelle est la
couleur à l'intérieur des cellules, j'ai parfois des cellules fusionnees et
je voudrais que la fusion n'ait aucune incidence sur mon calcul (1 cellule
résultat de 3 cellules fusionnées doit compter pour 3 cellules dans mon
calcul).

Y'a t-il un moyen de forcer excel a raisonner en cellules "réel"??

merci d'avance de votre aide,
mik


code:

Function fSomCoul(Plage As Range, ref As Range) As Double
Dim Coulplage As Integer, Cellplage As Range, coulref As Integer, cellref
As Range, tarifref As Double, Lsomme As Double


For Each Cellplage In Plage
Coulplage = Cellplage.Interior.ColorIndex
For Each cellref In ref
coulref = cellref.Interior.ColorIndex
tarifref = 0
If coulref = Coulplage Then
tarifref = cellref.Value
Exit For
End If
Next

Lsomme = Lsomme + tarifref

Next
fSomCoul = Lsomme
End Function



Avatar
Caetera
"mik" a écrit dans le message de news:

Bonjour je parcours un tableau a une colonne pour regarder quelle est la
couleur à l'intérieur des cellules, j'ai parfois des cellules fusionnees et
je voudrais que la fusion n'ait aucune incidence sur mon calcul (1 cellule
résultat de 3 cellules fusionnées doit compter pour 3 cellules dans mon
calcul).



**********************************

For Each c In [A1:A10]
x = x + c.MergeArea.Count
Next
MsgBox x


Etc
Avatar
mik
Merci Isabelle,

mais je dois regarder sur chaque cellule son fond de couleur et dans ta
solution je ne fais que COMPTER le nb réel de cellules.
N'y a t-il pas un moyen de palier à ce pb?

Bonne journée,
mik

"isabelle" wrote:

bonjour mik,

je crois bien qu'il n'y a pas d'autre choix que de selectionner au
préalable,
x = Range(Selection.Address).Count

isabelle

mik a écrit :
> Bonjour je parcours un tableau a une colonne pour regarder quelle est la
> couleur à l'intérieur des cellules, j'ai parfois des cellules fusionnees et
> je voudrais que la fusion n'ait aucune incidence sur mon calcul (1 cellule
> résultat de 3 cellules fusionnées doit compter pour 3 cellules dans mon
> calcul).
>
> Y'a t-il un moyen de forcer excel a raisonner en cellules "réel"??
>
> merci d'avance de votre aide,
> mik
>
>
> code:
>
> Function fSomCoul(Plage As Range, ref As Range) As Double
> Dim Coulplage As Integer, Cellplage As Range, coulref As Integer, cellref
> As Range, tarifref As Double, Lsomme As Double
>
>
> For Each Cellplage In Plage
> Coulplage = Cellplage.Interior.ColorIndex
> For Each cellref In ref
> coulref = cellref.Interior.ColorIndex
> tarifref = 0
> If coulref = Coulplage Then
> tarifref = cellref.Value
> Exit For
> End If
> Next
>
> Lsomme = Lsomme + tarifref
>
> Next
> fSomCoul = Lsomme
> End Function
>



Avatar
Daniel.C
Bonjour.
Une fois que tu as fusionné les cellules, seule la première cellule a
une couleur, les autres sont sans couleur.
Daniel

Merci Isabelle,

mais je dois regarder sur chaque cellule son fond de couleur et dans ta
solution je ne fais que COMPTER le nb réel de cellules.
N'y a t-il pas un moyen de palier à ce pb?

Bonne journée,
mik

"isabelle" wrote:

bonjour mik,

je crois bien qu'il n'y a pas d'autre choix que de selectionner au
préalable,
x = Range(Selection.Address).Count

isabelle

mik a écrit :
Bonjour je parcours un tableau a une colonne pour regarder quelle est la
couleur à l'intérieur des cellules, j'ai parfois des cellules fusionnees et
je voudrais que la fusion n'ait aucune incidence sur mon calcul (1 cellule
résultat de 3 cellules fusionnées doit compter pour 3 cellules dans mon
calcul).

Y'a t-il un moyen de forcer excel a raisonner en cellules "réel"??

merci d'avance de votre aide,
mik


code:

Function fSomCoul(Plage As Range, ref As Range) As Double
Dim Coulplage As Integer, Cellplage As Range, coulref As Integer, cellref
As Range, tarifref As Double, Lsomme As Double


For Each Cellplage In Plage
Coulplage = Cellplage.Interior.ColorIndex
For Each cellref In ref
coulref = cellref.Interior.ColorIndex
tarifref = 0
If coulref = Coulplage Then
tarifref = cellref.Value
Exit For
End If
Next

Lsomme = Lsomme + tarifref

Next
fSomCoul = Lsomme
End Function








Avatar
mik
donc ma demande est infaisable??

"Daniel.C" wrote:

Bonjour.
Une fois que tu as fusionné les cellules, seule la première cellule a
une couleur, les autres sont sans couleur.
Daniel

> Merci Isabelle,
>
> mais je dois regarder sur chaque cellule son fond de couleur et dans ta
> solution je ne fais que COMPTER le nb réel de cellules.
> N'y a t-il pas un moyen de palier à ce pb?
>
> Bonne journée,
> mik
>
> "isabelle" wrote:
>
>> bonjour mik,
>>
>> je crois bien qu'il n'y a pas d'autre choix que de selectionner au
>> préalable,
>> x = Range(Selection.Address).Count
>>
>> isabelle
>>
>> mik a écrit :
>>> Bonjour je parcours un tableau a une colonne pour regarder quelle est la
>>> couleur à l'intérieur des cellules, j'ai parfois des cellules fusionnees et
>>> je voudrais que la fusion n'ait aucune incidence sur mon calcul (1 cellule
>>> résultat de 3 cellules fusionnées doit compter pour 3 cellules dans mon
>>> calcul).
>>>
>>> Y'a t-il un moyen de forcer excel a raisonner en cellules "réel"??
>>>
>>> merci d'avance de votre aide,
>>> mik
>>>
>>>
>>> code:
>>>
>>> Function fSomCoul(Plage As Range, ref As Range) As Double
>>> Dim Coulplage As Integer, Cellplage As Range, coulref As Integer, cellref
>>> As Range, tarifref As Double, Lsomme As Double
>>>
>>>
>>> For Each Cellplage In Plage
>>> Coulplage = Cellplage.Interior.ColorIndex
>>> For Each cellref In ref
>>> coulref = cellref.Interior.ColorIndex
>>> tarifref = 0
>>> If coulref = Coulplage Then
>>> tarifref = cellref.Value
>>> Exit For
>>> End If
>>> Next
>>>
>>> Lsomme = Lsomme + tarifref
>>>
>>> Next
>>> fSomCoul = Lsomme
>>> End Function
>>>
>>





Avatar
Daniel.C
C'est à toi de voir. Quand des cellules sont groupées, seule la
première est éventuellement colorée, tout comme elle est la seule à
avoir une valeur.
Daniel

donc ma demande est infaisable??

"Daniel.C" wrote:

Bonjour.
Une fois que tu as fusionné les cellules, seule la première cellule a
une couleur, les autres sont sans couleur.
Daniel

Merci Isabelle,

mais je dois regarder sur chaque cellule son fond de couleur et dans ta
solution je ne fais que COMPTER le nb réel de cellules.
N'y a t-il pas un moyen de palier à ce pb?

Bonne journée,
mik

"isabelle" wrote:

bonjour mik,

je crois bien qu'il n'y a pas d'autre choix que de selectionner au
préalable,
x = Range(Selection.Address).Count

isabelle

mik a écrit :
Bonjour je parcours un tableau a une colonne pour regarder quelle est la
couleur à l'intérieur des cellules, j'ai parfois des cellules fusionnees
et je voudrais que la fusion n'ait aucune incidence sur mon calcul (1
cellule résultat de 3 cellules fusionnées doit compter pour 3 cellules
dans mon calcul).

Y'a t-il un moyen de forcer excel a raisonner en cellules "réel"??

merci d'avance de votre aide,
mik


code:

Function fSomCoul(Plage As Range, ref As Range) As Double
Dim Coulplage As Integer, Cellplage As Range, coulref As Integer,
cellref As Range, tarifref As Double, Lsomme As Double


For Each Cellplage In Plage
Coulplage = Cellplage.Interior.ColorIndex
For Each cellref In ref
coulref = cellref.Interior.ColorIndex
tarifref = 0
If coulref = Coulplage Then
tarifref = cellref.Value
Exit For
End If
Next

Lsomme = Lsomme + tarifref

Next
fSomCoul = Lsomme
End Function















Avatar
mik
est-ce que je peux tester pour chaque cellule si elle est "normale" ou si
elle est le résultat d'une fusion,
si résultat d'une fusion, ma valeur multiplié par
Range(Selection.Address).Count devrait résoudre mon pb?

Merci à tous de votre aide,
mik

"Daniel.C" wrote:

C'est à toi de voir. Quand des cellules sont groupées, seule la
première est éventuellement colorée, tout comme elle est la seule à
avoir une valeur.
Daniel

> donc ma demande est infaisable??
>
> "Daniel.C" wrote:
>
>> Bonjour.
>> Une fois que tu as fusionné les cellules, seule la première cellule a
>> une couleur, les autres sont sans couleur.
>> Daniel
>>
>>> Merci Isabelle,
>>>
>>> mais je dois regarder sur chaque cellule son fond de couleur et dans ta
>>> solution je ne fais que COMPTER le nb réel de cellules.
>>> N'y a t-il pas un moyen de palier à ce pb?
>>>
>>> Bonne journée,
>>> mik
>>>
>>> "isabelle" wrote:
>>>
>>>> bonjour mik,
>>>>
>>>> je crois bien qu'il n'y a pas d'autre choix que de selectionner au
>>>> préalable,
>>>> x = Range(Selection.Address).Count
>>>>
>>>> isabelle
>>>>
>>>> mik a écrit :
>>>>> Bonjour je parcours un tableau a une colonne pour regarder quelle est la
>>>>> couleur à l'intérieur des cellules, j'ai parfois des cellules fusionnees
>>>>> et je voudrais que la fusion n'ait aucune incidence sur mon calcul (1
>>>>> cellule résultat de 3 cellules fusionnées doit compter pour 3 cellules
>>>>> dans mon calcul).
>>>>>
>>>>> Y'a t-il un moyen de forcer excel a raisonner en cellules "réel"??
>>>>>
>>>>> merci d'avance de votre aide,
>>>>> mik
>>>>>
>>>>>
>>>>> code:
>>>>>
>>>>> Function fSomCoul(Plage As Range, ref As Range) As Double
>>>>> Dim Coulplage As Integer, Cellplage As Range, coulref As Integer,
>>>>> cellref As Range, tarifref As Double, Lsomme As Double
>>>>>
>>>>>
>>>>> For Each Cellplage In Plage
>>>>> Coulplage = Cellplage.Interior.ColorIndex
>>>>> For Each cellref In ref
>>>>> coulref = cellref.Interior.ColorIndex
>>>>> tarifref = 0
>>>>> If coulref = Coulplage Then
>>>>> tarifref = cellref.Value
>>>>> Exit For
>>>>> End If
>>>>> Next
>>>>>
>>>>> Lsomme = Lsomme + tarifref
>>>>>
>>>>> Next
>>>>> fSomCoul = Lsomme
>>>>> End Function
>>>>>
>>>>
>>
>>
>>





Avatar
Daniel.C
Utilise le code d'Isabelle ou celui de Caetera.
Daniel

est-ce que je peux tester pour chaque cellule si elle est "normale" ou si
elle est le résultat d'une fusion,
si résultat d'une fusion, ma valeur multiplié par
Range(Selection.Address).Count devrait résoudre mon pb?

Merci à tous de votre aide,
mik

"Daniel.C" wrote:

C'est à toi de voir. Quand des cellules sont groupées, seule la
première est éventuellement colorée, tout comme elle est la seule à
avoir une valeur.
Daniel

donc ma demande est infaisable??

"Daniel.C" wrote:

Bonjour.
Une fois que tu as fusionné les cellules, seule la première cellule a
une couleur, les autres sont sans couleur.
Daniel

Merci Isabelle,

mais je dois regarder sur chaque cellule son fond de couleur et dans ta
solution je ne fais que COMPTER le nb réel de cellules.
N'y a t-il pas un moyen de palier à ce pb?

Bonne journée,
mik

"isabelle" wrote:

bonjour mik,

je crois bien qu'il n'y a pas d'autre choix que de selectionner au
préalable,
x = Range(Selection.Address).Count

isabelle

mik a écrit :
Bonjour je parcours un tableau a une colonne pour regarder quelle est
la couleur à l'intérieur des cellules, j'ai parfois des cellules
fusionnees et je voudrais que la fusion n'ait aucune incidence sur
mon calcul (1 cellule résultat de 3 cellules fusionnées doit compter
pour 3 cellules dans mon calcul).

Y'a t-il un moyen de forcer excel a raisonner en cellules "réel"??

merci d'avance de votre aide,
mik


code:

Function fSomCoul(Plage As Range, ref As Range) As Double
Dim Coulplage As Integer, Cellplage As Range, coulref As Integer,
cellref As Range, tarifref As Double, Lsomme As Double


For Each Cellplage In Plage
Coulplage = Cellplage.Interior.ColorIndex
For Each cellref In ref
coulref = cellref.Interior.ColorIndex
tarifref = 0
If coulref = Coulplage Then
tarifref = cellref.Value
Exit For
End If
Next

Lsomme = Lsomme + tarifref

Next
fSomCoul = Lsomme
End Function






















Avatar
isabelle
salutatous,

celui de Caetera est mieux, y a pas besoin de selectionner la cellule,

c.MergeArea.Count

isabelle


Daniel.C a écrit :
Utilise le code d'Isabelle ou celui de Caetera.
Daniel

est-ce que je peux tester pour chaque cellule si elle est "normale"
ou si elle est le résultat d'une fusion, si résultat d'une fusion, ma
valeur multiplié par Range(Selection.Address).Count devrait résoudre
mon pb?

Merci à tous de votre aide,
mik

"Daniel.C" wrote:

C'est à toi de voir. Quand des cellules sont groupées, seule la
première est éventuellement colorée, tout comme elle est la seule à
avoir une valeur.
Daniel

donc ma demande est infaisable??

"Daniel.C" wrote:

Bonjour.
Une fois que tu as fusionné les cellules, seule la première
cellule a une couleur, les autres sont sans couleur.
Daniel

Merci Isabelle,

mais je dois regarder sur chaque cellule son fond de couleur et
dans ta solution je ne fais que COMPTER le nb réel de cellules.
N'y a t-il pas un moyen de palier à ce pb?

Bonne journée,
mik

"isabelle" wrote:

bonjour mik,

je crois bien qu'il n'y a pas d'autre choix que de selectionner
au préalable,
x = Range(Selection.Address).Count

isabelle

mik a écrit :
Bonjour je parcours un tableau a une colonne pour regarder
quelle est la couleur à l'intérieur des cellules, j'ai parfois
des cellules fusionnees et je voudrais que la fusion n'ait
aucune incidence sur mon calcul (1 cellule résultat de 3
cellules fusionnées doit compter pour 3 cellules dans mon
calcul).
Y'a t-il un moyen de forcer excel a raisonner en cellules "réel"??

merci d'avance de votre aide,
mik


code:

Function fSomCoul(Plage As Range, ref As Range) As Double Dim
Coulplage As Integer, Cellplage As Range, coulref As Integer,
cellref As Range, tarifref As Double, Lsomme As Double
For Each Cellplage In Plage Coulplage =
Cellplage.Interior.ColorIndex For Each cellref In ref
coulref = cellref.Interior.ColorIndex
tarifref = 0 If coulref = Coulplage Then
tarifref = cellref.Value Exit For
End If Next Lsomme = Lsomme +
tarifref Next fSomCoul = Lsomme End Function