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 [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2011
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 80
    Par défaut On error goto ne fonctionne pas
    Bonjour à tous,

    j'ai un probleme à propos d'un On Error Goto avec ce code suivant
    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
    18
    19
    Application.DisplayAlerts = False
    Application.EnableEvents = False
     
    For Each Nm In nclasseur.Names
     
     
             On Error GoTo erreur1
            If classeur.Worksheets("DT CC").Range(Nm.Name).HasFormula = True Then
            Else:
            classeur.Worksheets("Feuil1").Range(Nm.Name).Value = nclasseur.Worksheets("Feuil1").Range(Nm.Name).Value
     
            End If
     
    erreur1:
     
    Next Nm
     
    Application.EnableEvents = True
    Application.DisplayAlerts = True
    En gros je voudrais que lorsque il y a une erreur dans le If ou dans le Else, ca ne fasse rien et que ca passe au Nm suivant pour finir la boucle.

    J'utilise pour la premieère fois un On error goto donc je dois surement mal l'utiliser. Par exemple faut-il le déclarer dans les variables?

    Merci de votre aide toujours aussi précieuse.

    Tioch

  2. #2
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Bonjour,

    Je pense (pas testé) que pour ton cas On Error Resume Next me parrait suffisant, en cas d'erreur, il continu le code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Application.DisplayAlerts = False
    Application.EnableEvents = False
     
    On Error Resume Next
    For Each Nm In nclasseur.Names
    	If classeur.Worksheets("DT CC").Range(Nm.Name).HasFormula = True Then
    	Else:
    		classeur.Worksheets("Feuil1").Range(Nm.Name).Value = nclasseur.Worksheets("Feuil1").Range(Nm.Name).Value
    	End If
    Next Nm
     
    Application.EnableEvents = True
    Application.DisplayAlerts = True
    Devrai faire l'affaire.. De plus ton if est vraiment bizarre...
    Pourquoi tester si c'est VRAI et rien faire et passer dans else et pas tester si c'est faux? j’émets juste une hypothèse plus logique à mon sens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Application.DisplayAlerts = False
    Application.EnableEvents = False
     
    On Error Resume Next
    For Each Nm In nclasseur.Names
    	If classeur.Worksheets("DT CC").Range(Nm.Name).HasFormula = False Then
    		classeur.Worksheets("Feuil1").Range(Nm.Name).Value = nclasseur.Worksheets("Feuil1").Range(Nm.Name).Value
    	End If
    Next Nm
     
    Application.EnableEvents = True
    Application.DisplayAlerts = True
    Tiens moi au jus

    Bon courage,

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2011
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 80
    Par défaut
    Merci c'est ca pour le error goto
    et merci pour la synthaxe

  4. #4
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Pas de quoi, il faut toujours essayer d'aller au plus simple et mettre le moins de condition possible (quand tu peux bien sur )

    Donc si tu as une structure comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if toto=1 then
    else
     CODE
    Il y a un problème passe plutot par un différent (<>) que égale... etc
    Et si tu as beaucoup de condition et tu ne peux pas faire autrement j'aime bien le Case pour sa lisibilité:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select Case toto
    case 1: 'si toto=1
    CODE
    case 2:
    CODE
    case 3:
    CODE
    case else: 'sinon
    CODE
    end select
    Je trouve cela beaucoup plus lisible

    Et pour les erreurs "On error", essaye de t'en servir le moins possible et surtout les GOTO après c'est le gros bazar dans ton code préfère par exemple mettre une condition exemple:

    Tu veux ouvrir un fichier problème il existe une fois sur 2 donc d'aura une fois sur 2 une erreur bas code toi une fonction FICHIEREXIST test si le fichier existe si oui tu l'ouvre sinon tu ZAP.

    Bon courage,

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

Discussions similaires

  1. 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
  2. [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
  3. On Error GoTo qui ne fonctionne qu'une fois
    Par bernard0828 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/08/2007, 07h39
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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