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.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub CommandButton2_Click() Range(CommandButton2.TopLeftCell.Address).EntireRow.Insert
Voici mon code pour cette partie :
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.
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
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...
![]()
Partager