Valeur >0 ou valeur<0

clef01 Messages postés 8 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 6 novembre 2007 - 5 nov. 2007 à 21:01
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 8 nov. 2007 à 11:53
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

Brosske Messages postés 98 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 12 août 2010 1
5 nov. 2007 à 21:27
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.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
6 nov. 2007 à 02:33
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²
0
Brosske Messages postés 98 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 12 août 2010 1
6 nov. 2007 à 06:54
;)

F.M.
0
clef01 Messages postés 8 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 6 novembre 2007
6 nov. 2007 à 13:06
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Brosske Messages postés 98 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 12 août 2010 1
6 nov. 2007 à 13:43
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.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
7 nov. 2007 à 23:58
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²
0
Brosske Messages postés 98 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 12 août 2010 1
8 nov. 2007 à 07:39
a oui, j'avais compris toutes les 3 lignes ;)

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

F.M.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
8 nov. 2007 à 11:53
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²
0
Rejoignez-nous