Erreur de compilation sur FormulaLocal en 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 !

Webperegrino

XLDnaute Accro
Supporter XLD
Bonsoir Le Forum,
Je bloque sur un Code qui m’annonce le message suivant :
« Erreur de compilation : Attendu Fin d’Instruction »

Pouvez-vous me venir en aide sachant que, dans le code suivant, l’erreur indiquée se produit sur la ligne centrale Range("K" & x).FormulaLocal = (pour être précis sur les 😉 ?

Pouvez-vous aussi me dire laquelle des deux tentatives suivantes sera la meilleure et la plus rapide ?
'Objectif : placer la formule en K
'en K26 puis suivantes :
'=SI(J26="";"";SOMMEPROD(($H$26:$H$33=J26)*$I$26:$I$33))
' adaptée en
'"=IF("J" & x ="";"";SUMPRODUCT(($H$26:$H" & m= J" & x)*$I$26:$I" & m))"


VB:
'---
'tentative 1
m = Cells(26, 9).End(xlDown).Row 'analysera des valeurs en colonne I
For x = 26 To m
  Range("K" & x).FormulaLocal = "=IF(J" & x ="""";"""";SUMPRODUCT(($H$26:$H" & m= J" & x)*$I$26:$I" & m))"
Next x

ou bien celle -ci :

VB:
'tentative 2
m = Cells(26, 9).End(xlDown).Row 'analysera des valeurs en colonne I
 For Each Cellule In Range(Cells(26, 11), Cells(x, 11))
   With Cellule
     .Formula =  "=IF(J" & x ="""";"""";SUMPRODUCT(($H$26:$H" & m= J" & x)*$I$26:$I" & m))"
     .Value = .Value
   End With
 Next Cellule
'---

J'y planche depuis 24 heures et j'en attrape un mal de tête à force d'arrêts de la macro sur ces lignes.
Merci à l'avance pour votre aide,
Webperegrino
 
Re : Erreur de compilation sur FormulaLocal en VBA

Bonjour Webperegrino

Code:
m = Cells(26, 9).End(xlDown).Row 'analysera des valeurs en colonne I
For x = 26 To m
  'Range("K" & x).FormulaLocal = "=IF(J" & x & "="""";"""";SUMPRODUCT(($H$26:$H" & m & "=J" & x & ")*$I$26:$I" & m & "))"
  Range("K" & x).FormulaLocal = "=SI(J" & x & "="""";"""";SOMMEPROD(($H$26:$H" & m & "=J" & x & ")*$I$26:$I" & m & "))"
Next x

A+
 
Re : Erreur de compilation sur FormulaLocal en VBA

Bonsoir.
Moi, pour plus de rapidité, je le ferais plutôt en une fois sur toute la plage mais en R1C1:
VB:
With Range(Cells(26, 11), Cells(m, 11))
   .FormulaR1C1 = "=IF(RC10="""","""",SUMPRODUCT((R26C8:R" & m & "C8=RC10)*R26C9:R" & m & "C9))"
   .Value = .Value
   End With
 
Dernière édition:
Re : Erreur de compilation sur FormulaLocal en VBA

Bonjour Le Forum,
Bonjour BrunoM45 et bonjour Dranreb,
C'est parfait : vos deux solutions fonctionnent à merveille !
Me voilà maintenant avec l'embarras du choix( pour cette formule qui découle d'un choix justement dans ma macro générale).
Vous me comblez : ça va tourner du feu de dieu dans mon application !
Merci et excellente journée à vous.
Webpereregrino
 
- 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

Réponses
4
Affichages
179
Réponses
5
Affichages
563
Réponses
0
Affichages
460
Réponses
17
Affichages
2 K
Réponses
7
Affichages
620
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Retour