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 :

associer un code à un commandbutton par VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 20
    Par défaut Insérer du code dans une autre feuille
    Bonjour et merci d'avance pour celui ou celle qui me proposera une solution.
    Je fais une macro VBA qui crée un nouveau fichier contenant un bouton et je cherche à programmer ce bouton. En utilisant la fonction Insertline bla bla bla j'arrive à insérer des lignes de commances mais dans le code du fichier principal alors que je veux que ces lignes de commande soient insérées dans la feuille (ce qu'on appelle VBE je pense) du nouveau workbook.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.VBE.CodePanes("nom du fichier").CodeModule.InsertLines 1, "Sub CommandButton2_Click()" & vbCrLf
    Je comprends pas pourquoi les instructions s'insèrent en haut de la page courante

    C'est vraiment urgent, merci pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Adapte le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Workbooks("Classeur1").VBProject.VBComponents("Feuil1").CodeModule
        .InsertLines 1, "Sub CommandButton2_Click()"
    End With

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 20
    Par défaut associer un code à un commandbutton par VBA
    Salut les gars, j'ai posté il y a quelques jours une question à laquelle j'ai pas eu de réponses alors que c'est urgent pour moi
    Je voudrais associer automatiquement un code VBA à un commandbuton que j'ai déjà crée. Je voudrais que tout ceci se fait par un code VBA. Je vous envoie le petit bout de code que j'ai fait, j'attends vos retours pour me dire ce qui ne va pas?

    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
     Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
        With Obj
            .Left = 0 'position horizontale
            .Top = 0 'position verticale
            .Width = 300 'largeur
            .Height = 35 'hauteur
            .Object.BackColor = RGB(100, 100, 200) 'Couleur de fond
            .Object.Caption = "Graphics"
            End With
     
        laMacro = "Sub CommandButton1_Click()" & vbCrLf
        laMacro = laMacro & "MsgBox(tonto)" & vbCrLf
        laMacro = laMacro & "End Sub"
     
     
        With Workbook("path" &Filename).VBProject.VBComponents(Activesheet.codename).CodeModule
            x = .CountOfLines + 1
            .InsertLines x, laMacro
        End With
    Lors de l'execution ca me donne une erreur au niveau de la ligne With workbook.........
    C'est vraiment très urgent, milles mercis à celui ou celle qui pourra m'aider
    Merci de me répondre sur le forum et non pas en MP

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Par défaut
    Si le commandbutton est déjà créé, pourquoi essayé d'écrire une macro en automatique.

    Souvent j'utilise un procédé différent.
    Le bouton existe et je le rend visible ou invisible en fonction des cas avec la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commandbutton1.visible =True
    par exemple

    Ca peut etre adaptable à ton cas?

    Ou alors,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Workbook("path" &Filename)...
    devrait etre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Workbook(thisworkbook.path & "/" & Filename)...
    globalement le path devrait etre explicite ou noté dans une variable monchemin par exemple.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut Et pourquoi pas un xlButtonControl
    Je sais pas si c'est absolument nécessaire que ça soit un CommandButton, mais avec un bouton de contrôle tu as une propriété dédiée.

    Exemple de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set Obj1 = ActiveSheet.Shapes.AddFormControl(xlButtonControl, ActiveSheet.Cells(1, 1).Left, ActiveSheet.Cells(1, 1).Top, ActiveSheet.Cells(1, 1).Width, ActiveSheet.Cells(1, 1).Height)
    Obj1.TextFrame.Characters.Caption = "Nom"
    Obj1.OnAction = "TaMacro"

    De plus pour l'erreur ne manque-t-il pas un S à workbookS ?

  6. #6
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Par défaut
    Bonjour, en complément :

    avec la syntaxe 'workbooks .. , on précise le nom du fichier et pas le path

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks( Filename)...

Discussions similaires

  1. [XL-2007] Code de Commandbutton par macro
    Par Bklein51 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/04/2015, 09h59
  2. [AC-2010] Associer un ruban à l'application par VBA
    Par OliVin dans le forum IHM
    Réponses: 2
    Dernier message: 10/06/2011, 08h35
  3. Réponses: 0
    Dernier message: 11/09/2009, 09h45
  4. [PPT-03] - Modifier le code par VBA
    Par Daejung dans le forum VBA PowerPoint
    Réponses: 8
    Dernier message: 30/11/2008, 18h18
  5. Réponses: 8
    Dernier message: 05/03/2007, 15h56

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