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 :

Ajouter du code par le code [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut Ajouter du code par le code
    Bonjour,

    Je ne comprends pas, je n'arrive pas à faire fonctionner ce code qui doit
    être lancé sur clique bouton.
    J'ai le message sur la ligne 29
    l'indice n'appartient pas à la sélection.
    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
    Dim Ws As Worksheet
        Dim Obj As OLEObject
        Dim laMacro As String
        Dim x As Integer
     
        'Ajout feuille
          Sheets.Add After:=Sheets("Bon de Commande")
          Set Ws = ActiveSheet
          Debug.Print "Feuille en cours etape 1" & Ws.Name
        'Ajout CommandButton dans la feuille
        Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
        With Obj
            .Left = 50 'position horizontale
            .Top = 50 'position verticale
            .Width = 140 'largeur
            .Height = 30 'hauteur
            .Object.BackColor = RGB(235, 235, 200) 'Couleur de fond
            .Object.Caption = "Action"
        End With
     
        'Paramètres pour la création de la macro:
        '(suppression contenu cellules)
        laMacro = "Sub CommandButton1_Click()" & vbCrLf
        laMacro = laMacro & "Msgbox Ok" & vbCrLf
        laMacro = laMacro & "End Sub"
     
        'ActiveSheet.Name = "Fiche Tarifaire Valideur"
        Debug.Print "Feuille en cours etape 2" & Ws.Name
        With ActiveWorkbook.VBProject.VBComponents(Ws.Name).CodeModule
            x = .CountOfLines + 1
            .InsertLines x, laMacro
        End With
     
       ' ActiveSheet.Name = "Fiche Tarifaire Valideur"
     
    End Sub
    Bizarrement il m'ajoute des nouvelles feuilles comme demandé mais dont le nom est Feuil33 alors que j'ai supprimé des feuilles précédentes. ( Feuil31,Feuil32)

    Merci d'avance de vos idées ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 764
    Par défaut feuilXX
    Salut,

    Lorsque tu ajoute une feuille à ton classeur, et que tu n'en définis pas le nom, le nom sera automatique et composé du mot "Feuil" (ou "Sheet" selon la langue) auquel on ajoute un chiffre donné par un compteur qui est incrémenté à chaque fois que tu ajoutes une feuille. Donc même si tu en efface une, le compteur te donnera de toute manière le N° suivant.

  3. #3
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,
    Remarque extraite de ce tutoriel :

    Remarque:
    Lorsque vous devez spécifier le nom d'une feuille dans la propriété VBComponents, il s'agit du CodeName et pas le nom de l'onglet.
    Par conséquent, essaye : [NON TESTE]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveWorkbook.VBProject.VBComponents(Ws.CodeName).CodeModule

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Super, ca marche. Deux heures que je m'arrache les cheveux sur le truc...

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

Discussions similaires

  1. problème ajout d'éléments par le code
    Par xav2303 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/04/2009, 21h28
  2. Ajout de variable (par le code) dans les Paramètres d'application
    Par hellspawn_ludo dans le forum Windows Forms
    Réponses: 13
    Dernier message: 31/07/2007, 16h50
  3. [VBA-E] Ajouter une reference par le code
    Par mustang-ffw02 dans le forum Installation, Déploiement et Sécurité
    Réponses: 12
    Dernier message: 21/11/2006, 19h28
  4. [VBA Excel] Ajouter un AddIn par du code
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/11/2006, 17h30
  5. Ajouter une colonne (par du code) dans Listview
    Par __fabrice dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2005, 17h39

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