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 :

On error goto ne fonctionne pas (Excel 2016) [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 226
    Par défaut On error goto ne fonctionne pas (Excel 2016)
    Bonjour,

    J'essaie de savoir si un "range" nommé existe ou non.
    J'ai vu des discussions sur ce forum relatif à ce problème mais dans les 100% des cas, cela ne les résous pas.

    Appelez la fonction ci-dessous avec un nom n'existant pas. La fonction bloque avec une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function RangeExists(Nrange as string) as Boolean
        Dim test as Range
    
        If Len(Nrange) > 0 Then
            On error Resume Next
            Set test = ActiveSheet.Range(Nrange) ' La fonction s'arrête sur cette instruction avec une erreur (existe pas - code 1004)
            RangeExists = Err.Number = 0
        Else
            RangeExists = False
        End If
    Comme si l’événement "on error" n'était pas géré!

    Quel est mon erreur?
    Y aurait il une option à mettre pour forcer l’événement?

    Merci de votre aide
    Andre

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Je ne vois pas l'intérêt de gérer ici une erreur.
    Il te suffit de balayer les noms et de tester leur égalité avec la valeur du nom à tester.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Option Explicit
     
    Public Function test_nom(lenom As String) As Boolean
     
    Dim nm As Name
     
    test_nom = False
     
    For Each nm In ThisWorkbook.Names
            'Debug.Print nm.Name
            If nm.Name = lenom Then
                    test_nom = True
                    Exit For
            End If
    Next nm
     
    End Function

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 226
    Par défaut Solution trouvée !...
    Bonjour,
    Meilleurs vœux pour 2019.
    Merci également pour votre réaction rapide et efficace.

    Cela fonctionne très bien.
    Super

    André

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Moralité.
    La gestion On Error Resume Next ne doit s'employer, à mon humble avis, qu'en dernier recours.

    Pour information, tu peux consulter ce tutoriel sur la gestion des erreurs

    N'oublie pas de positionner cette discussion en mode "Résolue".

    Bonne continuation.

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

Discussions similaires

  1. [XL-2016] Problème macro qui fonctionne que en pas à pas sous Excel 2016
    Par Gorzyne dans le forum Excel
    Réponses: 3
    Dernier message: 01/02/2018, 11h58
  2. [XL-2016] ScreenUpdating=False ne fonctionne pas sur Excel 2016
    Par choumahm dans le forum Excel
    Réponses: 7
    Dernier message: 31/01/2017, 13h54
  3. pourquoi on error goto ne fonctionne qu'une seule fois ?
    Par alsimbad dans le forum Général VBA
    Réponses: 9
    Dernier message: 05/09/2014, 12h09
  4. [XL-2003] On error goto ne fonctionne pas
    Par tioch dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/08/2011, 09h52
  5. [AC-2000] On error goto ne marche pas
    Par B-CAB dans le forum VBA Access
    Réponses: 5
    Dernier message: 20/05/2010, 13h34

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