Problème de saisie Cellule d'une feuille

Bonjour,

J'ai un problème d'erreur de compilation

Le code ci-dessous fonctionne.

For MOIS = 1 To 11 'On s'arrête à 11 car la formule ci-dessous précise MOIS + 1 donc pour le mois de décembre la formule est erronée car il n'existe pas de mois N° 13

Sheets("Primes PRDT").Range("I" & (MOIS) + 439 + (MOIS)).FormulaR1C1 = "=SUMPRODUCT((PRIME_NATURE=""Terme"")*(PRIME_MT>0) *(PRIME_MOIS_FACT>=DATEVALUE(""01/" & (MOIS) & "/" & (ANNEE_PREC) & """))*1*(PRIME_MOIS_FACT<DATEVALUE(""01/" & (MOIS) + 1 & "/" & (ANNEE_PREC) & """))*1*(LEFT(CODE_PRDT,3)<>""ASS""))"

Next

Pour mon calcul, j'ai besoin d'ajouter, la valeur d'une cellule d'un autre tableau. Je reprend la formule ci-dessus et j'ajoute la valeur de la cellule souhaitée:

Sheets("Primes PRDT").Range("I" & (MOIS) + 439 + (MOIS)).FormulaR1C1 = "=SUMPRODUCT((PRIME_NATURE=""Terme"")*(PRIME_MT>0) *(PRIME_MOIS_FACT>=DATEVALUE(""01/" & (MOIS) & "/" & (ANNEE_PREC) & """))*1*(PRIME_MOIS_FACT<DATEVALUE(""01/" & (MOIS) + 1 & "/" & (ANNEE_PREC) & """))*1*(LEFT(CODE_PRDT,3)<>""ASS"")) +Sheets("Primes PRDT").Range("CM" & (MOIS) + 439 + (MOIS))"

L'erreur de compilation vient de

+Sheets("Primes PRDT").Range("CM" & (MOIS) + 439 + (MOIS))"

Quelqu'un saurait comment écrire cette formule ? (il doit certainement s'agir d'un problème de ( ) ou " ")

Merci de votre aide.

Bonjour

Comme je ne sais pas ce que tu cherches à faire

Au moins cette formule n'a pas de message d'erreur

Sheets("Primes PRDT").Range("I" & (MOIS) + 439 + (MOIS)).FormulaR1C1 = _
"=SUMPRODUCT((PRIME_NATURE=""Terme"")*(PRIME_MT>0) *(PRIME_MOIS_FACT>=DATEVALUE(""01/" & (MOIS) & "/" & (ANNEE_PREC) & """))*1*(PRIME_MOIS_FACT<DATEVALUE(""01/" & (MOIS) + 1 & "/" & (ANNEE_PREC) & """))*1*(LEFT(CODE_PRDT,3)<>""ASS""))+'Primes PRDT'!CM" & MOIS + 439 + MOIS

En clair cela donne

=SOMMEPROD((PRIME_NATURE="Terme")*(PRIME_MT>0) *(PRIME_MOIS_FACT>=DATEVAL("01/10/2013"))*1*(PRIME_MOIS_FACT<DATEVAL("01/11/2013"))*1*(GAUCHE(CODE_PRDT;3)<>"ASS"))+'Primes PRDT'!'CM459'

avec MOIS = 10 et ANNEE_PREC = 2013

Bonjour,

Si tu es sûr de ta formule ça serait :

.Range("CM" & MOIS + 439 + MOIS)"

mais ça fait MOIS*2 + 439(?)

Si pas ça donne des exemple de ligne à atteindre selon les mois.

eric

Bonjour,

Merci pour vos réponse, mais à priori elles ne fonctionnent pas.

En pièce jointe un fichier simplifié reprenant mon problème.

En cliquant le bouton, vous aurez le message d'erreur.

Je souhaite que la colonne B, de la feuille Tableau recap, fasse le total des produits A et B par mois, sachant qu'il y a un tableau spécifique pour le produit B .

On pourrait faire le sommeprod total directement, mais je pensais qu'il n'y aurait pas de souci en faisant l'addition.

J'aimerais donc connaitre la bonne syntaxe

21essai.zip (10.94 Ko)

Bonjour

A tester

Sub TOTAL_PRDT_AB()
Dim ANNEE As Integer
Dim MOIS As Integer

  ANNEE = 2014

  For MOIS = 1 To 11 'On s'arrête à 11 car la formule ci-dessous précise MOIS + 1 donc pour le mois de décembre la formule est erronée car il n'existe pas de mois N° 13
    Sheets("Tableau recap").Range("C" & (MOIS) + 2 + (MOIS)).Formula = _
            "=SUMPRODUCT((PRODUIT=""A"")*(MONTANT)*(OPERATION_DATE>=DATEVALUE(""01/" & (MOIS) & "/" & (ANNEE) & """))*1*(OPERATION_DATE<DATEVALUE(""01/" & (MOIS) + 1 & "/" & (ANNEE) & """))*1)+'Tableau recap'!I" & MOIS + 2 + MOIS
  Next
End Sub

Bonjour,

J'avais essayé cette syntaxe suite au précédent message.

Pas moyen de trouver la bonne...

J'ai mis le code tel que tu l'indiques dans le fichier ci-joint.

Peut être que le message d'erreur peut aider à trouver la solution.

Merci pour ton aide.

11essai.zip (10.95 Ko)

Bonjour

Pourquoi la macro que je t'ai faite n'est pas présente dans le fichier ?

A quoi ça sert que Banzai64 se décarcasse ? (les vieux plus âgés comprendront)

La macro que je t'ai fourni fonctionne

Bonjour Banzai64,

Désolé, j'étais tellement obsédé par la syntaxe à écrire que je n'avais pas fait attention à la modification de la méthode R1C1.

Merci pour ton aide.

Rechercher des sujets similaires à "probleme saisie feuille"