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 :

Bug insertion feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut Bug insertion feuille
    Salut,

    Je viens de m'apercevoir d'un bug, pas très gênant dans les classeurs mais problématique pour les macros.
    Quand j'insère une nouvelle feuille celle-ci prend le nom de feuil2 mais quand je regarde dans l'éditeur VBA, le nom Feuil2 est associé à Feuil1 et nom Feuil1 est associé à Feuil2. Si j'avais inséré une troisième et une quatrième feuille j'aurais eu Feuil1(Feuil4), Feuil2(Feuil3), Feuil3(Feuil2), Feuil4(Feuil1) et ainsi de suite jusqu'au moment où j'ouvre l'éditeur VBA et là, c'est magique, la numérotation reprend correctement pour les feuilles suivantes.
    Ça me pose problème dans les macros car j'ai l'impression qu'Excel est perdu dans sa numérotation et quand je veux adresser une feuille en particulier
    avec l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        With WS.Parent.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
            .InsertLines .CountOfLines + 1, mCode
        End With
    j'ai une erreur 9: l'indice n'appartient pas à la sélection, erreur que je n'ai pas lorsque les feuilles sont ordonnées correctement.

    Avez-vous déjà rencontré ce problème?
    Merci de votre aide,
    Jean

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Mets ton code en entier

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut
    Salut Mercatog,

    Voici mon code en entier.
    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
    Sub ajoutFeuille()
     
        Dim WS As Worksheet
        Dim NomComposant As String
        Dim mCode As String
        Dim x As Integer
     
        Set WS = Sheets.Add
        NomComposant = WS.CodeName
     
        x = Sheets.Count
        WS.Move After:=Sheets(x)
     
        Set BtnRtr = WS.OLEObjects.Add("Forms.CommandButton.1")
        With BtnRtr
            .Name = "BtnRtr1"
            .Left = 200 
            .Top = 40 
            .Width = 50 
            .Height = 20
            .Object.Caption = "Retour"
        End With
     
     
        mCode = "Sub BtnRtr1_Click()" & vbCrLf
        mCode = mCode & "Cells.Clear" & vbCrLf
        mCode = mCode & "End Sub"
     
        With WS.Parent.VBProject.VBComponents(NomComposant).CodeModule
            .InsertLines .CountOfLines + 1, mCode
        End With
     
    End Sub
    Merci de ton aide,
    Jean

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour,
    J'ai testé ton code et je n'ai rencontrée aucun souci (sur un même classeur du moins)
    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
    Sub ajoutFeuille()
    Dim WS As Worksheet
    Dim BtnRtr As OLEObject
    Dim mCode As String
     
    Set WS = Sheets.Add(after:=Sheets(Sheets.Count))
    With WS
        Set BtnRtr = .OLEObjects.Add("Forms.CommandButton.1")
        With BtnRtr
            .Name = "BtnRtr1"
            .Left = 200
            .Top = 40
            .Width = 50
            .Height = 20
            .Object.Caption = "Retour"
        End With
     
        mCode = "Sub BtnRtr1_Click()" & vbCrLf
        mCode = mCode & "Cells.Clear" & vbCrLf
        mCode = mCode & "End Sub"
     
        With ThisWorkbook.VBProject.VBComponents(.CodeName).CodeModule
            .InsertLines .CountOfLines + 1, mCode
        End With
    End With
    End Sub

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 237
    Par défaut
    Quelle version d'excel?

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    2007

Discussions similaires

  1. Excel 2007-numerotation insertion feuille
    Par RECY2000 dans le forum Conception
    Réponses: 1
    Dernier message: 01/03/2010, 21h26
  2. Réponses: 2
    Dernier message: 01/04/2009, 17h42
  3. Réponses: 1
    Dernier message: 19/11/2008, 12h17
  4. Bug insertion objet
    Par Tueur_a_gage dans le forum Word
    Réponses: 10
    Dernier message: 15/06/2007, 11h07

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