Ecrire formule en vba

Bonsoir le forum

=SOMMEPROD((GAUCHE(D6:D21;2)="60")*(J6:J21)*1)


je voudrais ecrire la formule ci-dessus en vba en remplacant d21 par une variable et j21 par une variable
j'ai bien écris
dim dernl as integer
dim dern as integer 

dernl = Range("d" & Rows.Count).End(xlUp).Row
dern = Range("k" & Rows.Count).End(xlUp).Row
range("M10") = sommeprod((gauche("d6:d" & dernl),2))="70")* ("k6:k" & dern)*1)


mais cela ne fonctionne pas

Pouvez vous m'aider

merci

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.


4 réponses

  1. Contributeur
    Bonjour, merci du retour et bonne continuation.
    0
    1. Bonjour Patrice33740 et gbinforme
      vos deux formules fonctionnent parfaitement merci
      mais je conserve celle de gbinforme car inutile de déclarer deux variables puisque les deux colonnes seront toujours de la même longueur.
      j'aurais du y penser avant
      merci pour vos conseils et bonne journée.
      0
      1. Contributeur
        Bonjour,

        Il faut que tes plages soient identiques et donc une seule dernière ligne.
        Ta formule doit être en format local pour fonctionner. Utilises long car sinon tu ne vas pas jusqu'à la taille des feuilles.
        Dim dern As Long
        dern = Range("D" & Rows.Count).End(xlUp).Row
        Range("M10").FormulaLocal = "=SOMMEPROD((GAUCHE(D6:D" & dern & ";2)=""70"")*K6:K" & dern & ")"

        0
        1. Bonjour,

          Essaies :
          Option Explicit
          Sub xxx()
          Dim frm As String
          Dim dLd As Long
          Dim dLk As Long
            With Worksheets("Feuil1")  'à adapter au nom de la feuille
              dLd = .Cells(.Rows.Count, "D").End(xlUp).Row
              dLk = .Cells(.Rows.Count, "K").End(xlUp).Row
              frm = "=SOMMEPROD((GAUCHE(D6:D" & dLd & ";2)=""60"")*(J6:J" & _
                    dLk & ")*1)"
              .Range("M10").FormulaLocal = frm
            End With
          End Sub
          0