comment traduire SI(AV4;DECALER(AO4;AV4;-36)-E4;"")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 et à toutes,

J’ai tenté de comprendre la formule excel pour la traduire en vba
=SI(ESTNUM(AV4);DECALER(AO4;AV4;-36)-E4;"")
j’ai trouvé
=SI(AV4;DECALER(AO4;AV4;-36)-E4;"")

SI() = IF()
DECALER() = Offset()
C’est bien jusque là, mais que veut dire AV4 après SI
Et pourquoi AO4 :AV4 ???

... je patauge depuis un moment

Merci d'avance à qui me sortira de là

albert
 

Pièces jointes

Merci Jean-Marie, je me prenais les pieds dans l’tapis, je ne suis pas très à l’aise avec les formules excel
Maintenant ça marche

Sub colO()
'if (AV4 > 0, range("AO4").offset(AV4, -36) - range("E4"), "")
'AV=48
'AO=41
'--------installe un compteur en A1---------
c = Range("E4", Range("E4").End(xlDown)).Count
d = Cells(1, 1) - 4
For R = 4 To d
If Cells(R, 48) > 0 Then

Cells(R, 51) = Cells(R, 41).Offset(R, -37) - Cells(R, 5)

End If
Next
End Sub
 
Bonjour

Dans ma traduction il y a une erreur
Iif (Range("AV4") > 0, range("AO4").offset(range("AV4"), -36) - range("E4"), "")
Ce qui a provoqué ton erreur.

Remplace donc la ligne par celle ci.
Cells(R, 51) = Cells(R, 41).Offset(Cells(R, 48), -37) - Cells(R, 5)

@+Jean-Marie
 
J’ai bien écrit, comme tu le proposes
Cells(R, 51) = Cells(R, 41).Offset(Cells(R, 48), -37) - Cells(R, 5)
Iif (Range("AV4") > 0, range("AO4").offset(range("AV4"), -36) - range("E4"), "")
Ça semble correspondre à la formule excel
Mais dans la colonne AX, je n’obtiens pas le même résultat qu’en AO ou AX …

Tu crois qu’il y a une solution ???
 

Pièces jointes

Jean-Marie, ta formule fonctionne bien :

Sub test()
If Range("AV6") > 0 Then
Range("AW6") = Range("AO6").Offset(Range("AV6"), -36) - Range("E22")
End If
End Sub

il ne me reste plus qu'à faire des boucles

merci du coup d'main !

(tu as dû remarquer mon niveau nul en excel)

albert
 
ce qui donne :

Sub test()
AV = 48
'AO=41
AW = 49
'--------installe un compteur en A1---------
c = Range("E4", Range("E4").End(xlDown)).Count
Cells(1, 1) = c
d = Cells(1, 1) - 4
For R = 4 To d + 4
If Cells(R, 48) > 0 Then
Cells(R, 49) = Cells(R, 41).Offset(Cells(R, 48), -36) - Cells(R, 5)
End If
Next
End Sub

ce fut laborieux, mais j'y suis arrivé !
 
- 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.

Discussions similaires

Retour