macro - appliquer formule et resultat

  • Initiateur de la discussion Initiateur de la discussion VBA_DEAD
  • Date de début Date de début

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 !

VBA_DEAD

XLDnaute Occasionnel
Bonjour,

j`ai une formule que j`essaie de coller par macro.
1/ j`arrive pas a coller la formule par macro - je ne vois pas le bug ds mon code?

La formule que j`applique ds mon file:
=SUMPRODUCT(($A$2:$A$4991=$A2)*($C$2:$C$4996=$C2),$M$2:$M$4996)/(SUMIF($C$2:$C$4996,$C2,$M$2:$M$4996))

par macro, j`ai mis le code suivant:

Sub STEP3()
Dim Lig30 As Integer

Sheets("DATA").Activate

With Application
.Calculation = xlManual
.MaxChange = 0.001
End With


'**************************
'Formule SUMPRODUCT

' colonne M est ma colonne de reference ou j`ai des donnees en EURO

Lig30 = Sheets("DATA").Range("m65000").End(xlUp).Row
Set Base4 = Sheets("DATA").Range("m2:m" & Lig30)

For Each Cell In Base4
If Cell.Value <> "" Then
Cell.Offset(0, 2) = "=SUMPRODUCT(($A$2:$A$10000=RC[-12])*($C$2:$C$10000=RC[-10]),$M$2:$M$10000)/SUMIF($C$2:$C$10000,RC[-12],$M$2:$M$10000)"
End If
Next Cell



le code bloque a ce niveau
Cell.Offset(0, 2) = "=SUMPRODUCT(($A$2:$A$10000=RC[-12])*($C$2:$C$10000=RC[-10]),$M$2:$M$10000)/SUMIF($C$2:$C$10000,RC[-12],$M$2:$M$10000)"


2/ puis je plutot avoir le resultat en direct plutot que coller la formule pour eviter d`attendre que le calcul se fasse apres que la macro ait colle la formule.
si j`avais directement le chiffre, ca serait plus rapide et plus professionnel je pense

merci pour votre aide
VBA_DEAD
 
Re : macro - appliquer formule et resultat

bonjour Vba_dead
essaye ce code
j'ai supposé que A1,C1 contenaient les valeurs à traiter
avec un bout de fichier plus facile

Sub STEP3()
Dim Lig30 As Integer

Sheets("DATA").Activate

With Application
.Calculation = xlManual
.MaxChange = 0.001
End With


'**************************
'Formule SUMPRODUCT

' colonne M est ma colonne de reference ou j`ai des donnees en EURO

Lig30 = Range("m65000").End(xlUp).Row
Set Base4 = Range("m2:m" & Lig30)

For Each Cell In Base4
'If Cell.Value <> "" Then
Cell.Offset(0, 2) = Evaluate("SUMPRODUCT(($A$2:$A$" & Lig30 & "=A1)*($C$2:$C$" & Lig30 & "=C1)*$M$2:$M$" & Lig30 & ")/SUMIF($C$2:$C$" & Lig30 & ",A1,$M$2:$M$" & Lig30 & ")")
'End If
Next Cell
End Sub

à bientôt
 
- 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 VBA sur outlook
Réponses
14
Affichages
949
Réponses
0
Affichages
367
  • Question Question
Microsoft 365 îPb code VBA
Réponses
1
Affichages
588
Réponses
7
Affichages
786
Réponses
1
Affichages
1 K
Réponses
3
Affichages
892
Retour