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

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 Impliqué
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
3
Affichages
442
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
Réponses
5
Affichages
474
Réponses
0
Affichages
367
Réponses
2
Affichages
371
Réponses
17
Affichages
1 K
Réponses
7
Affichages
533
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…