![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
bonsoir à tous et à toutes, forumiens, forumiennes,
avec cette formule excel, '=SI(AZ782<>"";SI(AZ782-DECALER(AQ782;P782;-38);SI(P782<R782;AZ782-DECALER(AQ782;P782;-38);""));"") je tente de traduire en vba. Dans la pièce jointe, il y a une tentative d'écriture de code; Dans ce code vba, après Then, je dois mettre une valeur dans une cellule. Je suppose qu’il s’agit de Cells(782, 43) = 0, puisque à la fin des conditions dans la formule excel, il y a ;"") ce qui donne : If Cells(782, 48) <> 0 Then Cells(782, 43) = 0 ElseIf Cells(782, 48) - Cells(782, 43).Offset(Cells(782, 16), -38) Then Cells(782, 43) = 0 ElseIf Cells(782, 16) < Cells(782, 18) Then Cells(782, 43) = 0 ElseIf Cells(782, 48) - Cells(782, 43).Offset(Cells(782, 16), -38) Then Cells(782, 43) = 0 End If --- En AQ782, j’obtiens 0.00, alors que je devrais avoir –3, comme en BA782 ---- mille mercis d'avance à qui saura me sortir de là (pour trouver -3 en AQ782) ...sans vouloir abuser... (encore un drôle de challenge) albert |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir albert, le forum,
Si tes informations sont toujours aux mêmes places dans ta feuille, utilise plutôt Range("AQ782") = QuelqueChose pour alimenter la cellule, ou pour tester son contenu, ou QuelqueChose = Range ("AQ782") pour récupérer le contenu de la cellule AQ782 et en faire ce que tu veux. If Range ("AZ782") <>"" Then ... Essaie avec ça et dis nous si cela convient mieux. En espérant que cela te dépanne. Abel |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir Abel, le forum,
Je veux bien utiliser Range(), mais ça ne résoud rien. Mon PB est de comprendre la formule excel pour l’exploiter. Or, j’ai supposé qu’après Then, il fallait mettre Cells(782, 43) = 0 Et il semble que cette supposition soit fausse puisque le résultat est =0 Il faut donc que je comprenne ce « QuelqueChose = Range ("AQ782") » (je suis nul en formules excel) |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
EUREKA!!
en fait il ne fallait pas utiliser elseif Sub ColAQ3() If Range("AZ782") <> 0 Then Range("AQ782") = Range("AZ782") - Range("AQ782").Offset(Range("P782"), -38) 'deuxième condition If Range("P782") < Range("R782") Then Range("AQ782") = Range("AZ782") - Range("AQ782").Offset(Range("P782"), -38) End If End If End Sub |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|