Gestion d'une formule SUMIFS dans EXCEL 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 !

LucWalraf

XLDnaute Nouveau
Bonjour,

Je cherche à inscrire dans une feuille une formule "somme.si.ens" (SUMIFS) composée par la macro.

Ca fonctionne pour des cas simples mais ça me renvoie une erreur dès que je raffine la formule.

Quelqu'un a une idée pour régler ça ? Merci !

Exemple 1 (ça marche avec la première définition de toto mais pas avec la deuxième) :

VB:
Sub Test()
 
Dim toto As String
 
'toto = "sdf"
toto = "3 fjfj"
 
Cells(1, 1).FormulaR1C1 = "=SUMIFS(C[1],C[2]," & toto & ")"
 
End Sub


Exemple 2 (ça marche dans les 2 premiers cas mais pas dans le 3ème) :

VB:
Sub Test2()
 
origine1 = ActiveSheet.Name
origine2 = ThisWorkbook.Name
 
'Cells(1, 1).FormulaR1C1 = "=SUMIFS(C[1],C[2],RC[3])"
'Cells(1, 1).FormulaR1C1 = "=SUMIFS([Classeur1]Feuil1!C2,[Classeur1]Feuil1!C1,RC[3])"
Cells(1, 1).FormulaR1C1 = "=SUMIFS([" & origine2 & "]" & origine1 & "!C2,[" & origine2 & "]" & origine1 & "!C1,RC[3])"
 
End Sub
 
Bonjour,

Peut-être des espaces dans les noms de feuille ou classeur. Alors tester:
VB:
"=SUMIFS('[" & origine2 & "]" & origine1 & "'!C2,[" & origine2 & "]" & origine1 & "!C1,RC[3])"
En vous laissant repérer ce qui a été ajouté.
Cordialement
 
J'ai trouvé l'ajout ! 🙂 ( ' )
Je vais tester, merci.
Mais la logique voudrait de rajouter les ' dans la deuxième référence aussi, non ?
Ca donnerait :
"=SUMIFS('[" & origine2 & "]" & origine1 & "'!C2,'[" & origine2 & "]" & origine1 & "'!C1,RC[3])"
 
Bonjour,

Il doit y avoir des crochets en trop. Mais comme il n'y a toujours pas de classeur exemple, je m'en tiendrai là, mais en vous donnant toutefois une astuce:

Tapez dans une cellule votre formule fonctionnelle. Gardez la cellule sélectionnée. Allez dans l'éditeur de Macro et dans la fenêtre Excécution (CTRL+G si elle n'est pas affichée) tapez : '?ActiveCell.Formula' ou '?ActiveCell.FormulaR1C1' puis validez. Vous aurez un modèle parfait pour votre VBA.

Cordialement
 
Bonjour LucWalraf, Roblochon,

Vraiment pas besoin de fichier, pour le 1er problème :
VB:
Sub Test()
Dim toto As String
'toto = "sdf"
toto = "3 fjfj"
Cells(1, 1).FormulaR1C1 = "=SUMIFS(C[1],C[2],""" & toto & """)"
End Sub
Pour le 2ème problème la formule du post #3 est correcte :
Code:
Sub Test2()
origine1 = ActiveSheet.Name
origine2 = ThisWorkbook.Name
'Cells(1, 1).FormulaR1C1 = "=SUMIFS(C[1],C[2],RC[3])"
'Cells(1, 1).FormulaR1C1 = "=SUMIFS('[Classeur1]Feuil1'!C2,'[Classeur1]Feuil1'!C1,RC[3])"
Cells(1, 1).FormulaR1C1 = "=SUMIFS('[" & origine2 & "]" & origine1 & "'!C2,'[" & origine2 & "]" & origine1 & "'!C1,RC[3])"
End Sub
Le guillemet anglais ' est placé avant le point d'exclamation alors qu'au post #5 il est placé après...

A+
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 macro vba sumifs
Réponses
5
Affichages
597
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
78
Réponses
4
Affichages
721
Retour