OVH Cloud OVH Cloud

Formule avec SUBTOTAL en VBA

2 réponses
Avatar
G. L
Bonsoir,

SVP comment remplacer 942 dans :

ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[2]C:R[942]C)"

par ligne ?

Sachant que ligne est la dernière ligne non vide et que ça marche très
bien pour les bordures.

Mes différents essais retournent une erreur 1004

Merci d'avance

Gérard



Extrait de la zone concernée :

ligne = Range("C65536").End(xlUp).Row

Worksheets("essai").Range("B60:O" & ligne).Borders.LineStyle =
xlContinuous

Range("M58").Select

ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[2]C:R[942]C)"

2 réponses

Avatar
Oliv'
G. <sugere~KillPub~@online.fr> que je salut a écrit dans
ubSBb$
Bonsoir,

SVP comment remplacer 942 dans :

ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[2]C:R[942]C)"

par ligne ?

Sachant que ligne est la dernière ligne non vide et que ça marche
très bien pour les bordures.

Mes différents essais retournent une erreur 1004

Merci d'avance

Gérard



Extrait de la zone concernée :

ligne = Range("C65536").End(xlUp).Row

Worksheets("essai").Range("B60:O" & ligne).Borders.LineStyle > xlContinuous

Range("M58").Select

ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[2]C:R[942]C)"




Tu peux essayer plusieurs solutions :
si tu as défini un nom pour une zone
et Si c'est par rapport à une cellule recherchée
Set titre_Prov = Cells.Find(What:="CompagnieProv", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False)
Set debit = Range(titre_Prov, titre_Prov.End(xlDown))
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,Debit)"

ou finalement peut être simplement
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[2]C:R[" & Ligne & "]C)"


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Avatar
G. L
Bonjour "Oliv' "
Merci beaucoup
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[2]C:R[" & Ligne & "]C)"
fonctionne parfaitement.
Je n'avais pas tout essayé ! ( il manquait le 2 ème &)
L'idée de nommer la zone est enregistrée ;)
Cordialement
Gérard

"Oliv'" <(supprimerceci) a écrit dans le
message de news:ey2IX8$

G. <sugere~KillPub~@online.fr> que je salut a écrit dans
ubSBb$
Bonsoir,

SVP comment remplacer 942 dans :

ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[2]C:R[942]C)"

par ligne ?

Sachant que ligne est la dernière ligne non vide et que ça marche
très bien pour les bordures.

Mes différents essais retournent une erreur 1004

Merci d'avance

Gérard



Extrait de la zone concernée :

ligne = Range("C65536").End(xlUp).Row

Worksheets("essai").Range("B60:O" & ligne).Borders.LineStyle > > xlContinuous

Range("M58").Select

ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[2]C:R[942]C)"




Tu peux essayer plusieurs solutions :
si tu as défini un nom pour une zone
et Si c'est par rapport à une cellule recherchée
Set titre_Prov = Cells.Find(What:="CompagnieProv", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False)
Set debit = Range(titre_Prov, titre_Prov.End(xlDown))
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,Debit)"

ou finalement peut être simplement
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[2]C:R[" & Ligne & "]C)"


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~