Ecrire formule en vba [Fermé]

Signaler
Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
-
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
-
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

Messages postés
8087
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 avril 2020
1 358
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
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3 927
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 & ")"

Messages postés
305
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
2
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.
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3 927
Bonjour, merci du retour et bonne continuation.