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 :

[excel] Pb de gestion de boutons sur une nouvelle feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 258
    Points : 108
    Points
    108
    Par défaut [excel] Pb de gestion de boutons sur une nouvelle feuille
    Bonjour,

    dans une macro je souhaite ajouter une nouvelle feuille a mon classeur. Jusque là pas de pb. Je voudrais ensuite mettre un bouton d'action dans cette nouvelle feuille. Comme je ne connais pas grand chose, j'ai enregistré une macro qui me faisait tout ca. J'ai cependant 2 pbs:
    • le nom du bouton que je modifie n'est pas pris en compte dans la macro ( la pté Caption n'y apparait pas)
    • Quand on doubleclique sur le bouton en mode création on peut écrire des instructions dans une macro détectant les clics, cette macro étant écrite dans la feuille nouvellement créée. Le problème est que si je réitère ce processsus de création de feuilles et de boutons, les macros sont écrites dans un module et non dans une feuille.

    Ma question pourrait etre la suivante: comment insérer automatiquement (a l'aide d'une macro) les macros présentes sur une feuille à une autre?

    Merci d'avance pour votre aide.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par kenny49
    comment insérer automatiquement (a l'aide d'une macro) les macros présentes sur une feuille à une autre?
    Tu copies la feuille qui contient la macro

    Mais un peu de code nous aiderait à t'aider pour ce qui concerne le Caption de ton bouton. Tu dois utiliser OLEObjets pour accéder aux propriétés d'un bouton créé dans une feuille de calcul (regarde l'aide) et ton code doit se trouver dans la feuille de code de ta feuille de calcul

  3. #3
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 258
    Points : 108
    Points
    108
    Par défaut
    Je ne peux pas copier manuellement la macro de ma feuille 1 sur ma feuille 2 puisque ma feuille 2 n'existe toujours pas. Au départ il n'existe que ma feuil1. Les autres feuilles sont crées sur le clic du bouton d'action:
    Voici un peu de code:

    Dans Module 1:
    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
     
    Sub ProchainMois()
    Sheets.Add
    BoutonMoisProchain
    End Sub
     
    Sub BoutonMoisProchain()
    ' BoutonMoisProchain Macro
        ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
            , DisplayAsIcon:=False, Left:=304.5, Top:=9.75, Width:=72, Height:=24 _
            ).Select
        Selection.ShapeRange.IncrementLeft -67.5
        Selection.ShapeRange.IncrementTop -8.25
        Selection.Verb Verb:=xlPrimary
    ' ici n'apparait pas le nom du bouton: 1er pb
    End Sub
    Dans feuil1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    ProchainMois
    End Sub
    Merci d'avance pour toute aide.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je ne peux pas copier manuellement la macro de ma feuille 1 sur ma feuille 2 puisque ma feuille 2 n'existe toujours pas. Au départ il n'existe que ma feuil1. Les autres feuilles sont crées sur le clic du bouton d'action:
    Voici un peu de code:
    J'avais tout bien compris, alors ne complique pas

    Si ton code est dans la feuille de code de la feuille de calcul alors la copie de cette feuille entraîne la copie du code qu'elle contient.
    Rien ne t'empêche d'effacer les cellules après copie pour avoir une feuille de calcul nickel chrome mais disposant du code.

    Dis-nous ce qui ne te convient pas dans cette solution

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    tu peux tester cette macro


    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
    Dim Ws As Worksheet, Obj As OLEObject
    Dim laMacro As String
    Dim x As Integer
     
    Set Ws = Sheets.Add
     
    Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
    With Obj
        .Left = 50
        .Top = 50
        .Width = 120
        .Height = 30
        .Object.Caption = "le bouton"
    End With
     
    laMacro = "Sub CommandButton1_Click()" & vbCrLf
    laMacro = laMacro & "ProchainMois" & vbCrLf
    laMacro = laMacro & "End Sub"
     
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
        x = .CountOfLines + 1
        .InsertLines x, laMacro
    End With

    bon apres midi
    michel

  6. #6
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 258
    Points : 108
    Points
    108
    Par défaut
    Presque:

    j'ai l'erreur suivante lors de l'exécution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur d'exécution 9:
     
    L'indice n'appartient pas a la selection.
    Et quand je lui demande sur quelle ligne est l'erreur, il m'indique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
    Ou est l'erreur?

    Merci d'avance.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    difficile de repondre sans voir ta procedure

    tu as utilisé la macro tel quel dans un classeur vierge ou tu l'as adapté à ton projet ?


    michel

Discussions similaires

  1. copie sur une nouvelle feuille et la renommer
    Par Tournament dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2015, 18h12
  2. [XL-2003] Impossibilité d'activer un bouton sur une feuille Excel
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 17/03/2015, 12h16
  3. [XL-2003] Si nombre atteint, continu sur une nouvelle feuille
    Par dorko45 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/02/2012, 21h53
  4. basculer des données sur une nouvelle feuille
    Par mary1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/05/2008, 11h47
  5. gestion des boutons d'une manette : relachement
    Par backfire dans le forum DirectX
    Réponses: 1
    Dernier message: 05/01/2005, 10h13

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