Conditions pour déterminer zone à sommer
marie
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai une colonne avec de temps en temps des cellules bleues.
Pour chaque cellule bleue, je veux sommer les 14 cellules qui sont à droite de la cellule bleue sur chaque ligne, depuis celle qui contient la cellule bleue jusqu'à celle qui précède la cellule bleue suivante.
La première cellule bleue est en B18.
J'essaie de faire une boucle pour déterminer les plage de cellules à sommer, puis sommer dans la cellule située de l'autre côté de la plage à sélectionnée et sur la même ligne que la cellule bleue.
J'ai fait de mon mieux pr que ça soit clair mais ça n'est pas évident. However, au cas où, voila ce que j'ai fait:
Range("B18").Select
Dim c As Integer
c = ActiveCell.Row
Do
ActiveCell.Offset(1, 0).Select
Loop Until Selection.Interior.ColorIndex = 49
'soit: je descends sur la colonne B jusqu'à tomber sur une cellule bleue (j'ai vérifié, la référence du bleu est bien 49)
Dim l As Integer
l = ActiveCell.Row
Cells(c, 31).Select
'soit: je me place sur la cellule où je veux le résultat de la somme
Dim s As Integer
s = l - c + 1
ActiveCell.FormulaR1C1 = "=SUM(Cells(c, 2), Cells(s, 30))"
'soit: je détermine la plage de cellules à sommer
Le problème est que dans la cellule où je veux obtelir le résultat j'obtiens #NOM, et il semble qu'il n'arrive pas à définir la plage de données.
Est-ce qu'une bonne âme saurait où est la faille???
Merci!
Marie
J'ai une colonne avec de temps en temps des cellules bleues.
Pour chaque cellule bleue, je veux sommer les 14 cellules qui sont à droite de la cellule bleue sur chaque ligne, depuis celle qui contient la cellule bleue jusqu'à celle qui précède la cellule bleue suivante.
La première cellule bleue est en B18.
J'essaie de faire une boucle pour déterminer les plage de cellules à sommer, puis sommer dans la cellule située de l'autre côté de la plage à sélectionnée et sur la même ligne que la cellule bleue.
J'ai fait de mon mieux pr que ça soit clair mais ça n'est pas évident. However, au cas où, voila ce que j'ai fait:
Range("B18").Select
Dim c As Integer
c = ActiveCell.Row
Do
ActiveCell.Offset(1, 0).Select
Loop Until Selection.Interior.ColorIndex = 49
'soit: je descends sur la colonne B jusqu'à tomber sur une cellule bleue (j'ai vérifié, la référence du bleu est bien 49)
Dim l As Integer
l = ActiveCell.Row
Cells(c, 31).Select
'soit: je me place sur la cellule où je veux le résultat de la somme
Dim s As Integer
s = l - c + 1
ActiveCell.FormulaR1C1 = "=SUM(Cells(c, 2), Cells(s, 30))"
'soit: je détermine la plage de cellules à sommer
Le problème est que dans la cellule où je veux obtelir le résultat j'obtiens #NOM, et il semble qu'il n'arrive pas à définir la plage de données.
Est-ce qu'une bonne âme saurait où est la faille???
Merci!
Marie
A voir également:
- Conditions pour déterminer zone à sommer
- Alternative zone telechargement - Accueil - Outils
- Zone alarm - Télécharger - Pare-feu
- Zone annuaire guru - Accueil - Services en ligne
- Appel data zone franche - Forum Enregistrement / Traitement audio
- La zone de données passée à un appel système est insuffisante ✓ - Forum Windows 10
2 réponses
FormulaR1C1 n'accèpte que les coordonnées relatives par rapport à la cellule active.
Du type:
ActiveCell.FormulaR1C1 = "=SUM(R[-2]C[-2]:R[5]C[-2])"
Bonne cogitation
Du type:
ActiveCell.FormulaR1C1 = "=SUM(R[-2]C[-2]:R[5]C[-2])"
Bonne cogitation
Bonjour,
Exemple type (Testé sous Office 2003):
Lupin
Exemple type (Testé sous Office 2003):
Option Explicit
'
Sub ChercheCellulesAadditionner()
Dim AdresseDebut As String
Dim AdresseFinal As String
Range("B18").Select
AdresseDebut = ActiveCell.Offset(0, 1).Address
' soit: je descends sur la colonne B jusqu'à tomber sur
' une cellule bleue (j'ai vérifié, la référence du bleu est bien 49)
Do
ActiveCell.Offset(1, 0).Select
Loop Until Selection.Interior.ColorIndex = 49
AdresseFinal = ActiveCell.Offset(-1, 1).Address
' Soit: je me place sur la cellule où je veux le résultat de la somme
Cells(18, 31).Select
' Soit: je détermine la plage de cellules à sommer
ActiveCell.Value = "=SUM(" & AdresseDebut & ":" & AdresseFinal & ")"
End Sub
'
Lupin