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. 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
    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 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, merci du retour et bonne continuation.
          0