IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

tester si cellules vides


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Points : 11
    Points
    11
    Par défaut tester si cellules vides
    Sur certaines feuilles j'ai des cellules vides à compléter par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range("A7:C7").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.FormulaR1C1 = "=R[-1]C"
    çà plante (bien sûr) sur la troisième ligne quand dans ma sélection il n'y a pas de cellules vides.
    Comment tester avant d'appliquer cette ligne.

    D'avance, merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    Voilà bien l'un des rares cas où le traitement par gestion d'erreur est plus intéressant que la mise en place d'un contrôle en amont...

    SpecialCells(xlCellTypeBlanks) est censé retourner une plage (un objet Range)...
    Si aucune cellule ne correspond (pas de "blanks") la plage, donc l'objet Range n'existe pas (is nothing) et donc toute propriété ou méthode s'y appliquant provoqueraient inévitablement une erreur ...

    La solution (hélàs) la moins chère est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    dim plage as range
    on error resume next
    set plage = ..SpecialCells(xlCellTypeBlanks)
    on error goto 0
     
    if not plage  is nothing then
    ...' et le reste du code...
    end if
    Il est possible d'éviter ce On error resume next (que je n'aime généralement pas)... mais là... le prix à payer (une boucle) serait vraiment élevé ... et on pourrait alors se demander pourquoi ne pas saisir l'analyse faite dans la boucle, dans ce cas ... et oublier la sélection des "blanks"...

    Alors là oui ===>> gestion d'erreur (tant pis...) comme vu plus haut...

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Remerciements
    à ucfoutu
    merci pour ta réponse rapide et efficace

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tester cellule vide excel
    Par maxos75 dans le forum ASP
    Réponses: 1
    Dernier message: 14/09/2005, 17h02
  2. Excel - Cellule vide en effectuant la somme
    Par spopo dans le forum Excel
    Réponses: 14
    Dernier message: 31/08/2005, 16h05
  3. tester si champ vide
    Par trialrofr dans le forum ASP
    Réponses: 2
    Dernier message: 07/03/2005, 19h26
  4. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 08h42
  5. [XSL-FO] Table avec cellule vide
    Par JustAGphy dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 12/05/2004, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo