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 :

Erreur d'execution '9' [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 132
    Points : 59
    Points
    59
    Par défaut Erreur d'execution '9'
    Bonjour,

    J'ai une erreur, comme le stipule le titre :

    "erreur d'execution '9'
    L'indice n'appartient pas à la selection
    Et voici mon code :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Private Sub Del_Click()
     
        'calcul l'emplacement du premier onglet
        onglet1 = premier_onglet(onglet1)
     
     
        If LocalName.Value = "" Then
     
            MsgBox "Veuillez renseigner le nom du local à supprimer, svp !!"
     
            Unload Me
            UserFormDelLocal.Show
     
        Else
     
            For i = onglet1 To Sheets.Count
     
                If LocalName.Value = Sheets(i).Name Then
     
                    Unload Me
     
                    Application.DisplayAlerts = False
                    Worksheets(i).Delete
                    Application.DisplayAlerts = True
     
                    'del_local_TabRecap (UserFormDelLocal.LocalName)
     
                    i = Sheets.Count
     
                ElseIf i = Sheets.Count And LocalName.Value <> Sheets(i).Name Then
     
                        MsgBox "Local introuvable !!"
     
                        Unload Me
                        UserFormDelLocal.Show
     
                End If
     
            Next i
     
        End If
     
    End Sub
    En gros ce code supprime un onglet.
    Je renseigne le nom de l'onglet dans un userform puis lorsque j'appuie sur le bouton "ok", l'onglet ce supprime mais ce message apparait également.
    Pourquoi ??

    Codialement
    Benjamin

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Points : 617
    Points
    617
    Par défaut
    Salut
    Commence tra boucle for ...to...par le dernier Onglet (sheets.count) et remonte (step - 1) vers le 1er

  3. #3
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    Ok je vais essayer mais pourquoi le faire comme ca ? (c'est juste pour comprendre ce que je vais faire ... )

    Benjamin

  4. #4
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    Ok c'est bon ca marche !!

    Mais j'aimerais savoir quand même pourquoi ca ne marchais pas.

    Merci de ton aide

    Benjamin

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut Benjycool et le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = onglet1 To Sheets.Count
    pour I = onglet1 à nombre de feuilles. Mais si tu en supprimes une, le nombre de feuilles réel est inférieur de 1 à celui qui est stocké en variable.
    Je n'ai pas lu la macro,mais tu pourrais peut-être simplement sortir de la macro une fois la feuille supprimée.
    A+

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Points : 617
    Points
    617
    Par défaut
    salut Gorfael,
    sans compter le fait que l'on peut toujours directement supprimer un onglet (ici l'onglet "voila") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("voila").delete
    . Et associer au besoin à une gestion d'erreur (pour le cas où l'onglet n'existerait pas).
    Mais aucune de ces deux méthodes n'est à mon sens vraiment souhaitable. La meilleure serait de ne pas laisser l'utilisateur saisir un nom d'onglet. Une simple listbox alimentée (for each) par les onglets existants est idoine. L'utilisateur y choisirait l'onglet à supprimer.

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

Discussions similaires

  1. erreur d'execution 3704, ...:objet n'est pas ouvert
    Par cari dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 29/11/2005, 15h44
  2. [ERREUR D'EXECUTION] Segmentation Fault
    Par CestPasMoi dans le forum C++
    Réponses: 3
    Dernier message: 26/11/2005, 17h38
  3. Réponses: 3
    Dernier message: 03/11/2005, 18h41
  4. [LDAP][Interface Winldap.h] Erreur d'execution
    Par -=Spoon=- dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 10/03/2005, 17h10
  5. [javamail] erreur d'execution
    Par bibx dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 05/12/2003, 11h04

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