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 :

[E-03] detection de l'existence d'un range par son nom


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Par défaut [E-03] detection de l'existence d'un range par son nom
    Bonjour
    j'ai du construire une petite macro qui lit les noms dans un fichier excel.
    Le probleme est le suivant : il me rapporte bien tous les noms existants. Seulement dans ceux là, il existe des noms qui n'existe plus (et dont excel marque l'erreur Ref par le gestionnaire de nom).
    Or dans un passage de mon code j'utilise un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range(StleNomDansLaFeuille)
    Mais dans ce cas quand le nom a une erreur de réference il me met un global failed.
    J'ai pensé utiliser un IsError() en vain, et faire un test avec cverr(xlerrref), mais rien n'y fait.

    Je ne vois pas comment faire.

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Un truc de ce style ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
    Dim N As Name, Nom As String
     
    Nom = "LeNom"
     
    For Each N In ThisWorkbook.Names
        If N.Name = Nom And Right(N, 5) <> "#REF!" Then
            MsgBox Range(Nom).Name
        End If
    Next
    End Sub
    [EDIT]
    Pour nettoyer les noms qui ne servent plus, tu peux exécuter cette procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test_nom()
    Dim N As Name
     
    For Each N In ThisWorkbook.Names
        If Right(N, 5) = "#REF!" Then
            If MsgBox("le nom " & N.Name & " n'est plus attribué." & vbLf _
                        & "Voulez-vous le supprimer ?", vbQuestion + vbYesNo, "Vérification des noms de cellules") = vbYes Then
                N.Delete
            End If
        End If
    Next
    End Sub

Discussions similaires

  1. Vérifier l'existence de mes enregistrements par un SELECT
    Par boutmos dans le forum Langage SQL
    Réponses: 6
    Dernier message: 18/09/2010, 00h17
  2. Réponses: 11
    Dernier message: 07/02/2009, 02h31
  3. Tester l'existence d'un enregistrement avant son ouverture
    Par Fredo67 dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/01/2008, 18h15
  4. Tester existence d'un SELECT par une fonction ?
    Par ctobini dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 04/10/2007, 11h28
  5. Detection de la mollete de la souris par le systeme.
    Par méphistopheles dans le forum Windows XP
    Réponses: 7
    Dernier message: 24/07/2005, 13h04

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