VBA

Bonjour,

je voudrai remplacer #N/A par NON dans ma colonne excel, un code VBA est peut être utile
Merci

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. For i = 1 to Range("A65536").End(xlUp).Row 'Remplacer le 1 par la premiere ligne à remplacer. Et le A de Range("A65535") par la lettre de la colonne souhaité
        If Cells(i,1).value = #N/A  then 'Remplacer le 1 par le numero de la colonne
            Cells(i,1).value = "NON" 'idem
        end if
    Next


    Voila
    1. Modérateur
      Salut,
      A mon avis, on ne devrait jamais remplacer une formule qui renvoie une erreur par macro...
      Ca n'est pas comme cela que l'on gère les erreurs sous excel...
    2. Voui, mais il a demandé un code VBA... La, il perdra ses formules. Le seul moyens de les garder, c'est comme ce que tu as fait en dessou, une formule excel.
    3. Modérateur
      Oui il a demandé un code VBA parce qu'il ne sait pas gérer une erreur excel. Si on lui montre tout de suite la "bonne" méthode c'est mieux n'est-il pas?
      La, il perdra ses formules Ben oui et c'est pas ce qu'il y a de mieux pour son classeur.
      Notre rôle ici est aussi d'aiguiller le demandeur vers une solution alternative lorsque celle ci s'avère "meilleure" pour le résultat escompté. Après, attendons, ta solution peux en effet solutionner son problème.
    4. Il perdra ses formules, mais une fois le calcul fait, il n'ets peut-etre pas forcé de les garder....
  2. Modérateur
    Bonjour,
    La gestion des erreurs sous excel ne devrait pas être réalisée comme tu le souhaites.
    Ton erreur #N/A peux être gérée différemment. Il faut nous en dire davantage...
    En cas d'erreur suite à une formule de calcul, on peux traiter l'erreur directement dans la formule.
    Fais ce test :
    Ouvre un classeur excel, en A1 écris 10, en A2 écris 0 et en A3 la formule :
    =A1/A2
    Tu as une erreur #DIV/0, logique!
    Maintenant, remplace en A2 : 0 par : 1 et écris en A3
    =SI(ESTERREUR(A1/A2);"NON";A1/A2)
    remplace à nouveau A2 par 0 pour finir ce petit test...
    Tu dis, si tu souhaites que l'on gère ton erreur directement dans la formule...