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

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
 
C

Compte Supprimé 979

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

Dranreb

XLDnaute Barbatruc
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:

Webperegrino

XLDnaute Impliqué
Supporter XLD
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
 

Discussions similaires

Réponses
0
Affichages
303
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…