Ecrire formule en vba

max850 Messages postés 304 Date d'inscription   Statut Membre Dernière intervention   -  
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   -
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.


A voir également:

4 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
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
max850 Messages postés 304 Date d'inscription   Statut Membre Dernière intervention   3
 
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
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour, merci du retour et bonne continuation.
0