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

Boucle sur colonne

4 réponses
Avatar
Alex
Re Bonjour =E0 tous,

Quelqu'un pourrait il m'aider pour mettre ces lignes de commandes dans
une boule sur colonne (de la colonne B =E0 la colonne BL), moi je n'y
arrive pas :

'Colonne B
'=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
'Somme Vert
'=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Range("B3:B367").Select
total =3D 0
For Each C In Selection
If C.Interior.ColorIndex =3D 43 Then
total =3D total + C.Value
End If
Next C
Range("B371").Value =3D ""
Range("B371") =3D total
total =3D 0
'Somme rose Rose
'=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
For Each C In Selection
If C.Interior.ColorIndex =3D 38 Then
total =3D total + C.Value
End If
Next C
Range("B373").Value =3D ""
Range("B373") =3D total

total =3D 0
'Somme Rouge
'=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
For Each C In Selection
If C.Interior.ColorIndex =3D 3 Then
total =3D total + C.Value
End If
Next C
Range("B374").Value =3D ""
Range("B374") =3D total


Merci par avance de votre aide
Alex

4 réponses

Avatar
Jacky
Bonjour,

Si les cellules en question sont peinturlurées par la mise en forme conditionnelle, on ne peut (sauf à monter
une usine à gaz) faire le total des cellules coloriées.
Utiliser la condition qui est utilisée dans la MFC pour faire le total.
--
Salutations
JJ


"Alex" a écrit dans le message de news:

Re Bonjour à tous,

Quelqu'un pourrait il m'aider pour mettre ces lignes de commandes dans
une boule sur colonne (de la colonne B à la colonne BL), moi je n'y
arrive pas :

'Colonne B
'================================================================================== 'Somme Vert
'========================================== Range("B3:B367").Select
total = 0
For Each C In Selection
If C.Interior.ColorIndex = 43 Then
total = total + C.Value
End If
Next C
Range("B371").Value = ""
Range("B371") = total
total = 0
'Somme rose Rose
'======================================= For Each C In Selection
If C.Interior.ColorIndex = 38 Then
total = total + C.Value
End If
Next C
Range("B373").Value = ""
Range("B373") = total

total = 0
'Somme Rouge
'=========================== For Each C In Selection
If C.Interior.ColorIndex = 3 Then
total = total + C.Value
End If
Next C
Range("B374").Value = ""
Range("B374") = total


Merci par avance de votre aide
Alex
Avatar
Alex
Bonjour,

Merci pour ta réponse.
La formule fonctionne bien, et fait bien la somme des cellules
coloriees (sans mise en forme conditionnelle).
Mon souci est d'écrire :
Range("B3:B367").Select avec le numéro de colonne en varible.
Si j'ai la selection en variable, je pense résoudre le problème, mais
malheureusement, j'ai beau trituré dans tous les sens mon Range, ca
beug systhèmatiquement dessus.
Ex range(cells(j,3),cells(j,367)).select cela ne fonctonne pas ?

Merci par avance de ton aide
Alex
Avatar
Jacky
Re...
Essaie comme ceci
'------------
Sub jj()
[B371] = "": [b373] = "": [b374] = ""
Application.ScreenUpdating = False
Set plage = Range("b1", Cells(367, Range("B1").CurrentRegion.Columns.Count + 1))
For Each c In [plage]
If c.Interior.ColorIndex = 43 Then Range("B371") = Range("B371") + 1
If c.Interior.ColorIndex = 38 Then Range("b373") = Range("b373") + 1
If c.Interior.ColorIndex = 3 Then Range("b374") = Range("b374") + 1
Next
End Sub
'-------------------
Voir ici
http://www.cijoint.fr/cjlink.php?file=cj201007/cijX12IJTT.xls

--
Salutations
JJ


"Alex" a écrit dans le message de news:

Bonjour,

Merci pour ta réponse.
La formule fonctionne bien, et fait bien la somme des cellules
coloriees (sans mise en forme conditionnelle).
Mon souci est d'écrire :
Range("B3:B367").Select avec le numéro de colonne en varible.
Si j'ai la selection en variable, je pense résoudre le problème, mais
malheureusement, j'ai beau trituré dans tous les sens mon Range, ca
beug systhèmatiquement dessus.
Ex range(cells(j,3),cells(j,367)).select cela ne fonctonne pas ?

Merci par avance de ton aide
Alex
Avatar
Jacky
Re...
Ou plus simplement, comme la dernière colonne est connue (bl)
'------------------
Sub jj()
[B371] = "": [b373] = "": [b374] = ""
Application.ScreenUpdating = False
For Each c In Range("b1:bl367")
If c.Interior.ColorIndex = 43 Then [B371] = [B371] + 1
If c.Interior.ColorIndex = 38 Then [b373] = [b373] + 1
If c.Interior.ColorIndex = 3 Then [b374] = [b374] + 1
Next
End Sub
"---------------------
--
Salutations
JJ