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 :

Problème d'affectation code vba à bouton


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Par défaut Problème d'affectation code vba à bouton
    Bonjour à tous!
    Peut-être ai-je trouvé le forum qui va me sauver la vie ?
    Voilà mon problème.
    Je crée actuellement une interface de gestion de projets. Celle-ci propose à l'utilisateur de décomposer son projet en période. Il y a 10 périodes déjà présentes par défaut sur ma feuille composée chacune de plusieurs lignes qui permet a l'utilisateur de rentrer des détails sur ses périodes.

    Question automatisation, il doit être possible d'ajouter des lignes pour chaque période. J'ai crée ça pour chaque période par défaut à l'aide de bouton. Jusque là pas de problème. Voici le code attribué aux boutons.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub CommandButton2_Click()
     
    Range(CommandButton2.TopLeftCell.Address).EntireRow.Insert
    Par contre, l'utilisateur doit aussi pouvoir ajouter des périodes. Et pour ces périodes il doit tjs être possible d'y ajouter des lignes. Ici j'ai choisi de copier-coller la dernière (bouton ajout de ligne y compris) et d'ajouter ça à la suite.

    Voici mon code pour cette partie :

    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
     
       'Copie de la période
     
       Cells(Rows.Count, 1).End(xlUp).Select
       ligne = ActiveCell.Row
       ligne2 = ligne + 6
       Rows(ligne & ":" & ligne2).Select
       Selection.Copy
       Cells(Rows.Count, 1).End(xlUp).Select
       Cells(ligne + 10, 1).Select
       ActiveSheet.Paste
     
            'Création bouton
       Sheets("BDR").Activate
       X = ActiveSheet.OLEObjects.Count
       Z = X - 1
       ActiveSheet.OLEObjects(Z).Select
       Selection.Copy
       Cells(Rows.Count, 1).End(xlUp).Select
       ActiveCell = ActiveCell + 1
       ActiveCell.Offset(0, 4) = DateAdd("m", 1, ActiveCell.Offset(0, 4))
       ActiveCell.Offset(3, 1).Select
       ActiveSheet.Paste
       End Sub
    Ca marche bien sauf pour le bouton. Problème classique d'affectation de macro au bouton. J'ai parcouru toute l'aprem d'hier le net pour trouver des pistes. J'ai retenu la solution de créer moi même (au lieu de copier coller) un bouton. Le problème est que ça dépasse le champs de mes compétences dans le sens où pour chaque nouvelle période ajouté, le bouton aura une position (donc une adresse) différente sur ma feuille.
    C'est pour ça que le copier coller m'arrangeait bien question position du bouton. Mais pour affecter la macro sur un bouton copié coller, je ne sais pas faire. D'autant plus que, comme vous avez pu le voir, mon code pour le bouton "add a row" dépend du nom du bouton. J'ai testé le fameux Application.Caller mais ça ne fonctionne pas avec mes boutons initiaux (que j'ai créer avec Excel 2003, et là je suis avec 2007, j'ai lu sur le net que ça pouvait être la cause).

    Voilà le truc c'est que j'ai un niveau débutant en vba. Donc j'ai beaucoup de mal. Je vous mets une impression écran (je sais que le site demande de limiter l'upload mais je pense pas que mes explications permettent du bien visualiser ce que je veux). Si quelqu'un se sent avoir le courage de m'aider un peu.

    Un grand merci d'avance...

    Images attachées Images attachées  

  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
    Bienvenue au forum
    Sujet identique juste en dessous http://www.developpez.net/forums/d92...-ajout-bouton/
    La FAQ est très intéressante.
    Bonne lecture

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Par défaut
    Merci mercatog.

    En fait j'avais déjà regardé et je suis sur la FAQ également.
    Dans le principe je comprends comment créer le bouton et y associer le code.
    Le truc c'est que pour la variable Top (Left est constante dans mon cas), elle sera pas constante pour chacun de mes boutons.

    Peut-être est-il possible d'écrire un truc du genre :

    Top =Top du bouton d'au dessus + Constante

    ?

  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
    Un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Ctrl As Object
    Const RowH = 12.75  'hauteur des lignes
     
    Set Ctrl = ActiveSheet.OLEObjects(1) 'à adapter selon ton contrôle
    'Ctrl.Select  'Sans Select
    Ctrl.Top = RowH * (Target.Row - 1)  'dans Target, la cellule où on veut déplacer le bouton
    Edit: sans le select

Discussions similaires

  1. Problème avec un code VBA
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/08/2008, 13h57
  2. Problème avec un code Vba Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/10/2007, 16h43
  3. Problème d'un Code VBA pour créer un répertoire
    Par cfidko dans le forum VBA Access
    Réponses: 24
    Dernier message: 26/06/2007, 14h30
  4. Problème SQL dans code VBA
    Par benjisan dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 15/05/2007, 13h22
  5. Affectation code VBA dans une feuille xls
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2007, 13h52

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