Valeur >0 ou valeur<0

Signaler
Messages postés
8
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
6 novembre 2007
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonsoir,
Je débute en VBA excel, je voudrais faire une macro qui me permet de parcourir une ligne.
Si la valeur de la cellule est <0 j dois avoir dans la cellule en dessous le chiffre 0, si val>0 j sois avoir 1.
J suis arrivé à ce qui y a en dessous, mais j'obtien 1 partout ce qui est faux.
Si vous avez des idées...
Merci d'avance.

Dim It As Integer
It = 0
For Each cellule In Range("E10:DT10")
  If (cellule.Value > 0) Then
  It = 1
  Else
  It = 0
  End If
 Range("E11:DT11").Value = It
Next cellule
End Sub

8 réponses

Messages postés
98
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
12 août 2010

Hey
tu y est presque :)

For Each cellule In Range("E10:DT10")
  If (cellule.Value > 0) Then
     range(cellule).offset(1,0).value=1
  Else
     range(cellule).offset(1,0).value=0
  End If
Next cellule

Je n'ai pas testé mais au moins tu sais dans quelle direction il faut chercher :)
F.M.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Salut Brosske,
je pense que cellule sera suffiant comme Range

For Each cellule In Range("E10:DT10")
  If cellule.Value > 0 Then
     cellule.offset(1,0).value=1
  Else
     cellule.offset(1,0).value=0
  End If
Next cellule

MPi²
Messages postés
98
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
12 août 2010

;)

F.M.
Messages postés
8
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
6 novembre 2007

Merci à vous ça marche trés bien. Sauf que j'ai encore une ptite question: Jusque là cette opération ne s'applique que sur la ligne 10 de ma feuille. Si je souhaite refaire la même chose en sautant 3 lignes de mon tableau à chaque fois: càd appliquer la fonction sur la ligne 10,13,16.... etc jusqu'à la fin du tableau.
Messages postés
98
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
12 août 2010

alors , je propose la solution suivante :

range("E10").Select
do
   for colonne=0 to 1
     If activecell.offset(0,colonne).Value > 0 Then
        activecell.offset(0,colonne).value=1
     Else
        activecell.offset(0,colonne).value=0
     End If      
   next
   activecell.offset(3,0).select
loop while activecell.value<>""

F.M.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
La colonne DT = 124

For i = 5 to 124 step 3  ' à partir de E, lire toutes les 3 colonnes suivantes
    If cells(10, i) > 0 then  'lecture de la ligne 10
       '.....
    Else
       '.....

    End If
Next

MPi²
Messages postés
98
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
12 août 2010

a oui, j'avais compris toutes les 3 lignes ;)

je vois que t'es bien lancé ...
a+

F.M.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Je pense m'être perdu en chemin...
Au début, il était question de colonnes, maintenant c'est les lignes,...
S'il faut considérer les 2, ça prend donc une double-boucle. Brosske, ce que tu offres est plus pertinent alors...

MPi²