traduire une formule excel en vba

  • Initiateur de la discussion Initiateur de la discussion albert
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

albert

Guest
Bonsoir à tous, forumiens, forumiennes,

Je cherche à traduire en vba une formule excel qui fonctionne à merveille :

=SI(L4="Achat";EQUIV("Clôture A";AA5:AA3000;0);"")
j’obtiens en U30 : 1, U33 : 5, U39 : 3, U44 : 2, U47 : 1


le code vba suivant donne en U30, 33, 39, 44, 47 le même chiffre : 7

Sub U()
i = Cells(1, 8)
For r = 4 To i
cherche = WorksheetFunction.Match("Clôture A", Range("AA3:AA3000"), 0)
If Cells(r, 12) = "achat" Then
Cells(r, 21) = cherche
End If
'SI(L4="Achat";EQUIV("Clôture A";AA5:AA3000;0);"")
Next
End Sub


merci d'avance à qui saura me mettre sur la voie

albert
 

Pièces jointes

Bonjour,

A 1° vue, le pb vient de ce que tu cherches toujours dans le m^me espace AA3:AA3000 donc cherche te renvoie toujours la même valeur (la 1° trouvée)
il faut donc que tu décales ton espace de la valeur trouvée.

Excuses moi, mais je dois partir

a tester ?
cherche =0
cherche=...........range(cells(4,27).offset(cherche,0), cells(3000,27))

A+

Michel
 
j'ai trouvé!!! c'est un peu comme de l'alchimie
yengre05.gif

Sub U()
i = Cells(1, 8)
For r = 4 To i
s = i + r
cherche = WorksheetFunction.Match("Clôture A", Range(Cells(r, 27), Cells(s, 27)), 0) - 1

If Cells(r, 12) = "achat" Then
Cells(r, 21) = cherche
End If
'SI(L4="Achat";EQUIV("Clôture A";AA5:AA3000;0);"")
Next
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour