Question facile

cs_tweeder Messages postés 172 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 19 juin 2009 - 13 juin 2003 à 17:52
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 13 juin 2003 à 20:54
j'ai un petit macro qui fait des vérifications dans 2 colonnes

Public Sub verif()
n = 1
Do While Range("K" & n) <> ""
If Range("K" & n) > 0 And Range("L" & n) > 0 Then Range("M" & n) = "champion"
If Range("K" & n) > 0 And Range("L" & n) < 0 Then Range("M" & n) = "contre-performant"
If Range("K" & n) < 0 And Range("L" & n) > 0 Then Range("M" & n) = "résistant"
If Range("K" & n) < 0 And Range("L" & n) < 0 Then Range("M" & n) = "déclin"If Range("K" & n) "" Or Range("L" & n) "" Then Range("M" & n) = "n.d"If Range("K" & n) "DIV/0!" Or Range("L" & n) "#DIV/0!" Then Range("M" & n) = "impossible"
n = n + 1
Loop
End Sub

malheureusement il y a 2 petit problème
1- il arrête aussitôt que j'ai rien dans la cellule K le macro arrête..pourtant ca marche quand j'ai rien dans la cellule L
2-il a pas l'air à aimer le ""#DIV/0!" pouvez vous me dire pkoi ?

merci

4 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
13 juin 2003 à 18:20
salut

tu as mis :
Do While Range("K" & n) <> ""
donc dès que Kn ne contient rien ta boucle s'arrete

tu devrais d'ailleur mettre .text apres tous tes ranges et .value pour tous tes range < ou > 0

pour #... ca devrait mieux marcher avec .text

voila

ShareVB
0
cs_tweeder Messages postés 172 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 19 juin 2009
13 juin 2003 à 19:05
il me sort un "argument not optionnal"
pkoi ??

Public Sub verif()
n = 1
Do While n = 100
If Range.Value("K" & n) > 0 And Range.Value("L" & n) > 0 Then Range.Text("M" & n) = "champion"
If Range.Value("K" & n) > 0 And Range.Value("L" & n) < 0 Then Range.Text("M" & n) = "contre-performant"
If Range.Value("K" & n) < 0 And Range.Value("L" & n) > 0 Then Range.Text("M" & n) = "résistant"
If Range.Value("K" & n) < 0 And Range.Value("L" & n) < 0 Then Range.Text("M" & n) = "déclin"If Range.Text("K" & n) "" Or Range.Text("L" & n) "" Then Range.Text("M" & n) = "n.d"If Range.Text("K" & n) "DIV/0!" Or Range.Text("L" & n) "#DIV/0!" Then Range.Text("M" & n) = "impossible"
n = n + 1
Loop
End Sub
0
cs_tweeder Messages postés 172 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 19 juin 2009
13 juin 2003 à 19:06
il me sort un "argument not optionnal"
pkoi ??

Public Sub verif()
n = 1
Do While n = 100
If Range.Value("K" & n) > 0 And Range.Value("L" & n) > 0 Then Range.Text("M" & n) = "champion"
If Range.Value("K" & n) > 0 And Range.Value("L" & n) < 0 Then Range.Text("M" & n) = "contre-performant"
If Range.Value("K" & n) < 0 And Range.Value("L" & n) > 0 Then Range.Text("M" & n) = "résistant"
If Range.Value("K" & n) < 0 And Range.Value("L" & n) < 0 Then Range.Text("M" & n) = "déclin"If Range.Text("K" & n) "" Or Range.Text("L" & n) "" Then Range.Text("M" & n) = "n.d"If Range.Text("K" & n) "DIV/0!" Or Range.Text("L" & n) "#DIV/0!" Then Range.Text("M" & n) = "impossible"
n = n + 1
Loop
End Sub
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
13 juin 2003 à 20:54
salut

désolé je me suis mal exprimé :
voila ton code corrigé
toutefois le probleme de :
1- il arrête aussitôt que j'ai rien dans la cellule K le macro arrête..pourtant ca marche quand j'ai rien dans la cellule L

c normal : Do While Range("K" & n).Text <> ""
ca fait que quand Range("K" & n).Text ne contient rien ("") alors la boucle s'arrete. tu devrais prendre une autre colonne au lieu de K pour la condition de boucle

Public Sub verif()
n = 1
Do While Range("K" & n).Text <> ""
If IsError(Range("K" & n).Value) Or IsError(Range("L" & n).Value) Then
Range("M" & n).Value = "impossible"
Else
If Range("K" & n).Value > 0 And Range("L" & n).Value > 0 Then Range("M" & n).Value = "champion"
If Range("K" & n).Value > 0 And Range("L" & n).Value < 0 Then Range("M" & n).Value = "contre-performant"
If Range("K" & n).Value < 0 And Range("L" & n).Value > 0 Then Range("M" & n).Value = "résistant"
If Range("K" & n).Value < 0 And Range("L" & n).Value < 0 Then Range("M" & n).Value = "déclin"If Range("K" & n).Text "" Or Range("L" & n).Text "" Then Range("M" & n).Value = "n.d"
End If
n = n + 1
Loop
End Sub

voila

ShareVB
0
Rejoignez-nous