Vba excel : condition ne semble pas verifier

Résolu
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.
Configuration: Windows XP
Internet Explorer 7.0

5 réponses

  1. Contributeur
    Bonsoir renisaac,
    tu peux préciser sur quelle cellule tu rencontres ce pb stp ?
    J'ai testé jusqu'à L191 sans le constater...
    eric
    1. Contributeur
      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. 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. Contributeur
          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. Contributeur
            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