Vba excel : condition ne semble pas verifier

Résolu
renisaac Messages postés 2051 Date d'inscription   Statut Contributeur Dernière intervention   -  
renisaac Messages postés 2051 Date d'inscription   Statut Contributeur Dernière intervention   -
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
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 2051 Date d'inscription   Statut Contributeur Dernière intervention   139
 
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
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
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 2051 Date d'inscription   Statut Contributeur Dernière intervention   139
 
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