Vba excel : condition ne semble pas verifier

Résolu/Fermé
renisaac Messages postés 2043 Date d'inscription dimanche 22 août 2004 Statut Contributeur Dernière intervention 15 mai 2021 - 29 sept. 2008 à 18:06
renisaac Messages postés 2043 Date d'inscription dimanche 22 août 2004 Statut Contributeur Dernière intervention 15 mai 2021 - 30 sept. 2008 à 08:33
Bonjour,

Pour le boulot, je suis occuper a faire une macro pour recopier un tableau en eliminant les lignes partiellement vide.
Grace a Eriiic et Lupin, j'ai reussi une macro tres similaire la semaine passee.

Je commence par
If [L56].Offset(a, 0).Value <> 0 Then
, puis je copie certaines valeurs. le probleme, il copie aussi ces valeurs lorsque L* = 0

Mon IT n'a pas su me dire pourquoi.

Le fichier en question est sur http://www.cijoint.fr/cjlink.php?file=cj200809/cijvNcmV4C.xls

La macro qui fonctionne est le module 1 (Sub MakePcTable()) et celle qui ne fonctionne pas est le module 2 (Sub MakeRIfullgraph()), alors que j'utilise la meme condition, mais sur une autre cellule. Les commentaire dans le code sont en mauvais anglais.

Si quelqu'un a une idee la raison de ce probleme, et surtout comment le resoudre.

Renisaac

P.S. desole pour les accents, il n'y en a pas sur les clavier qwerty du boulot.
A voir également:

5 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
29 sept. 2008 à 19:03
Bonsoir renisaac,
tu peux préciser sur quelle cellule tu rencontres ce pb stp ?
J'ai testé jusqu'à L191 sans le constater...
eric
-1
renisaac Messages postés 2043 Date d'inscription dimanche 22 août 2004 Statut Contributeur Dernière intervention 15 mai 2021 138
29 sept. 2008 à 20:38
Salut Eric,
c'est bien la macro MakeRIfullgraph qui me pose problème, la ligne du 25/06/2008 17:10:00 est copiée alors qu'elle ne devrait pas car L77=0.
Testé avec un excel 2000 sp3, tant sous XP que sous Vista et sous office 2007 sous Vista.

Renisaac
-1
Utilisateur anonyme
29 sept. 2008 à 21:21
Bonjour,

J'ai testé sous WindowsXP et Office XP (Excel 2002 sp3) et la ligne 77 n'entre pas dans l'alternative du :

If [L56].Offset(a, 0).Value <> 0 Then

Idée! ... quelques fois je test en ajoutant des parenthèses.

If ( [L56].Offset(a, 0).Value <> 0 ) Then

If ( ( [L56].Offset(a, 0).Value ) <> 0 ) Then

où encore j'utilise l'affectation pour initialiser les bits du registre d'états

ex.:
Dim Contenu as Variant

Contenu = [L56].Offset(a, 0).Value
If ( Contenu <> 0 ) Then


n.b. que ce ne sont que des idées, des suggestions, qui pourrait vous en donner d'autres ...

Lupin
-1
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
29 sept. 2008 à 22:24
re,

Je confirme que le test est bon mais :
If [L56].Offset(a, 0).Value <> 0 Then
                        Worksheets("FRI Plot").Range("M12").Offset(b, 0).Value = [S58].Offset(a, 0).Value 

tu testes la ligne 56 et tu copies 58.
A l'offset 19 tu testes L75 et copie S77 qui est vide.

eric
-1

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

Posez votre question
renisaac Messages postés 2043 Date d'inscription dimanche 22 août 2004 Statut Contributeur Dernière intervention 15 mai 2021 138
30 sept. 2008 à 08:33
bon, faudra que je mette des lunettes.

eric, c'est bien la difference de ligne qui foirait, indispensable dans la premiere macro, inutile ici.

merci

Renisaac
-1