Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 insérer dans une cellule une formule avec pour variable une plage de donnée (VBA)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mikado08

XLDnaute Nouveau
Bonjour,

Je cherche par le biais d'une InputBox à selectionner une plage de cellule qui doit s'inserer dans ma formule SOUS.TOTAL... mais ca ne fonctionne pas


VB:
Public Sub cmdsst_Click()
'sst
Selection.EntireRow.Insert
Range("A27:R27").Copy Range("A" & ActiveCell.Row)
'rempli la cellule du nom
nom = Application.InputBox("selection le titre du paragraphe", type8)
ActiveSheet.Cells(ActiveCell.Row, 5).Value = "SOUS-TOTAL : " & nom

'NE FONCTIONNE PAS
Plage = Application.InputBox("selection la plage colonne R de la somme à faire", "PLAGE COLONNE R", , , , , , type8)
Plageconv = Application.ConvertFormula(Plage, fromReferenceStyle:=xlR1C1, toReferenceStyle:=xlA1)
ActiveSheet.Cells(ActiveCell.Row, 17).FormulaLocal = "=SOUS.TOTAL(109;" & Plageconv & ")"

Si vous avez des suggestions je suis preneur !! 🙂
 
Bonjour.
Presque ça. Essayez comme ça :
VB:
Public Sub cmdsst_Click()
   Dim Rng As Range
   Set Rng = Application.InputBox("Selectionnez la plage à sommer", Type:=8)
   ActiveSheet.Cells(ActiveCell.Row, 17).Formula = "=SUBTOTAL(109," & Rng.Address & ")"
   End Sub
 
Essayez aussi ça :
VB:
Public Sub cmdsst_Click()
   Dim Rng As Range
   Selection.EntireRow.Insert
   Range("A27:R27").Copy Range("A" & ActiveCell.Row)
   On Error Resume Next
   Set Rng = Application.InputBox("selectionnez le titre du paragraphe", Type:=8)
   If Err Then Exit Sub
   ActiveSheet.Cells(ActiveCell.Row, 5).Value = "SOUS-TOTAL " & Rng.Value & ":"
   ActiveSheet.Cells(ActiveCell.Row, 17).FormulaR1C1 = "=SUBTOTAL(109,R" & Rng.Row + 1 & "C:R[-1]C)"
   End Sub
 
Dernière édition:
@Dranreb merci beaucoup ca fonctionne quasi à la perfection 🙂

VB:
ActiveSheet.Cells(ActiveCell.Row, 17).FormulaR1C1 = "=SUBTOTAL(109,R" & Plage.Row & "C:R[-1]C)"

la seule chose qui me bloque encore c'est que j'écris en colonne 17 (soit Q) une plage que je somme en R mais il ne prend pas en compte dans la formule la colonnes R juste la plage de lignes...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…