1 pièce(s) jointe(s)
Problème d'affectation code vba à bouton
Bonjour à tous!
Peut-être ai-je trouvé le forum qui va me sauver la vie ? :P
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:
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:
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...
:?