@salpetier
si c'est pour mon code VBA que tu as demandé une explication, alors la voici :
Dim k As Byte, vx#, dlig&, lig&
: déclare 4 variables ; vx# : idem que vx As Double ; dlig& : idem que dlig As Long
dlig = Cells(Rows.Count, 5).End(3).Row
: idem que dlig = Cells(Rows.Count, "E").End(xlUp).Row
ça retourne donc la dernière ligne utilisée, selon la colonne E ; dans l'exemple : 13
Application.ScreenUpdating = 0
: désactive la mise à jour de l'écran ➯ exécution plus rapide
For lig = 2 To dlig
.. Next lig
: de la ligne 2 à 13 ➯ on balaye toutes les lignes ; pour chaque :
With Cells(lig, 5)
.. End With
: avec la cellule de la ligne lig, colonne E
vx = .Value
: vx contient la valeur de la cellule référencée par With
k = -(vx < 0)
: si vx est négatif, vx < 0 est vrai, et comme vrai vaut -1, -(-1) = 1 ; sinon : faux = 0
.Offset(, 1) = k
: par rapport à la cellule référencée par With, la cellule qui est 1 colonne à droite (donc en colonne F) reçoit la valeur de k : 1 ou 0 (selon le résultat du test vx < 0)
If k = 1 Then .Value = -vx
: si k = 1, ça signifie que la valeur vx était négative, alors on la remplace par -vx
exemple pour E8 qui contient au départ -2,000 : -(-2) = 2 ➯ le nombre négatif est bien devenu positif
merci de me dire si ça te convient.
dhany