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 qui ne fonctionne qu'une fois


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Août 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 1
    Par défaut On Error GoTo qui ne fonctionne qu'une fois
    Voici une petite macro VB6 sous excel 2003 qui pour moi aurait dû créer 10 feuilles de H1 à H10, et qui ne crée que H1 puis le programme plante sur la ligne Sheets("H" & a$).Select, bien qu'elle soit derrière un on error.
    Y a t il quelqu'un qui puisse m'aider ?
    Ce doit être bête comme chou, mais ......Merci d'avance

    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
    For i = 1 To 10
    a$ = i
     
    On Error GoTo feuille
        Sheets("H" & a$).Select
    GoTo feuille_cree
    feuille:
        Sheets.Add
        x$ = ActiveSheet.Name
        Sheets(x$).Name = "H" & a$
        Sheets("H" & a$).Select
    feuille_cree:
     
     
    Next i

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonsoir,

    Pour rester dans ton idée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        On Error GoTo feuille
        For i = 1 To 10
            a = i
            Sheets("H" & a).Select
        Next i
    Exit Sub'Pour eviter la gestion d'erreur si aucune erreur ne se produit
    feuille:
        Sheets.Add
        x = ActiveSheet.Name
        Sheets(x).Name = "H" & a
        Sheets("H" & a).Select
        Resume Next'Pour reprendre apres la ligne ayant causé l'erreur

    Pour faire un peu plus court:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        On Error GoTo feuille
        For i = 1 To 10
            Sheets("H" & i).Select
        Next i
    Exit Sub
    feuille:
        Sheets.Add
        ActiveSheet.Name = "H" & i
        Resume Next

    Et pour faire plus lisible (à mon avis)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        On Error Resume Next
        For i = 1 To 10
            Sheets("H" & i).Select
            If Err.Number <> 0 Then
                Sheets.Add.Name = "H" & i
                Err.Clear
            End If
        Next
    Cordialement,

    Tirex28/

  3. #3
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Citation Envoyé par tirex28 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        On Error Resume Next
        For i = 1 To 10
            Sheets("H" & i).Select
            If Err.Number <> 0 Then
                Sheets.Add.Name = "H" & i
                Err.Clear
            End If
        Next


    Non seulement c'est plus lisible mais c'est surtout plus propre : les GOTO sont à éviter comme la peste car cela fait "programmation spaghetti" (c'est ce qu'on enseigne aux futurs programmeurs).

Discussions similaires

  1. AMFPHP qui ne fonctionne pas une fois mon swf en ligne
    Par Grimdol dans le forum ActionScript 3
    Réponses: 5
    Dernier message: 24/04/2009, 12h20
  2. Réponses: 2
    Dernier message: 08/12/2008, 14h19
  3. [AJAX] IE7 : lien qui ne fonctionne qu'une fois :(
    Par NoobX dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 25/08/2008, 16h34
  4. bouton submit qui ne fonctionne qu'une fois
    Par sam01 dans le forum Langage
    Réponses: 6
    Dernier message: 06/07/2007, 08h19
  5. [AJAX] Méthode sous Ajax qui ne fonctionne qu'une fois?
    Par patrice419 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2007, 13h19

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