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

  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
    Points : 1
    Points
    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 éclairé

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    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 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 781
    Points : 3 034
    Points
    3 034
    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).
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

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