Ajout d'une ligne dépendante de la position du bouton
Bonjour,
Je travaille sur la simplification d'un fichier de suivi. L'objectif de celui-ci est de répertorier l'ensemble des modifications effectuées sur nos protocoles.
Je souhaiterais donc que lorsque qu'une personne souhaite enregistrer sa modification il soit le plus simple possible pour elle de le faire. J'ai donc voulu créer une macro permettant de simplement cliquer sur un bouton pour insérer une ligne et ainsi l'ajouter à un endroit précis.
Tout fonctionne très bien tant que je joue sur un seul protocole mais dès l'ajout d'un second avec sa macro associé je ne parviens pas à la paramétrer pour toujours insérer des lignes au bon endroit... Je ne sais pas si je suis très claire mais j'ai re-détaillé mon problème dans le fichier joint.
N'hésitez pas à me poser des questions concernant mon objectif si nécessaire
Cordialement,
Pitchounette
Bonjour,
1) Renommer tes boutons : Protocole 1, Protocole 2 (éventuellement d'autres)
2) Affecter la macro ci-dessous à tous les boutons.
Sub AjouterLigne()
Dim prtcl$, n%
prtcl = Application.Caller
With ActiveSheet
On Error GoTo errprtcl
n = WorksheetFunction.Match(prtcl, .Columns("A"), 0) + 1
On Error GoTo 0
.Range("A" & n).Resize(, 9).Insert xlShiftDown, xlFormatFromRightOrBelow
With .Range("A" & n).Resize(, 9).Borders
.LineStyle = xlContinuous
.Weight = xlThin
End With
End With
errprtcl:
End Sub
Ce qui évitera beaucoup de contorsions...
NB- Quand on enregistre du code (le mieux étant de l'écrire directement
Tout d'abord merci beaucoup pour votre rapidité
Je ne maitrise absolument pas les codes pour les macros et je pense qu'il me faudra de longues heures pour décoder un jour votre code. De ce fait je ne parviens pas à comprendre dans qu'elle ligne je dois intervenir pour adapter la macro à "protocole 3" par exemple. J'ai voulu m'entrainer et essayer de comprendre comment elle agissait mais impossible de faire que mon bouton "Protocole 3" ajoute des lignes sous "Protocole 3" il continu de m'en ajouter sous "protocole 2"
Je me permet d'évoquer une autre difficulté sur le positionnement des boutons, est-il possible de les forcer à se décaler lors de l'ajout d'une ligne pour s'assurer qu'il reste en concordance de lecture avec leur protocole.
Encore merci pour votre aide !!!
Tu fais un clic droit sur le bouton, son nom apparaît dans la zone Nom (à gauche de la barre de formule), c'est là que tu le modifies, puis tu valides par Entrée.
Le nom à mettre est Protocole 3, soit la mention qui figure en A25...
La macro est facile à comprendre :
- l'expression Application.Caller renvoie le nom du bouton ou de la forme qui a appelée la macro.
- on récupère ce nom dans une variable (prtcl)
- on utilise cette variable pour rechercher la ligne en colonne A où se trouve cette mention (en utilisant la fonction Excel EQUIV, mais on aurait pu défiler les lignes jusqu'à la trouver...)
- on ajoute +1 puisque l'insertion va se faire à la ligne en-dessous
- il ne reste plus qu'à faire l'insertion : on définit la plage d'insertion avec A(colonne) et n(ligne) qu'on redimensionne sur 9 colonnes, on insère avec le paramètre xlShiftDown (qui indique un déplacement vers le bas des autres lignes) et le paramètre de format (utile contrairement au paramètre par défaut mis par l'enregistreur, car il permet d'aligner le format sur la ligne du dessous...)
- enfin, on place les bordures...
Cordialement.
Super je n'avais pas vu le bouton en haut à gauche, je ne savais pas qu'il existait
C'est sur qu'avec les explications adéquates l'expression informatique de mon besoin est bien plus cohérente que ce que je pensais.
Je suppose que c'est à force de pratiquer et discuter avec les autres que l'on fini par savoir comment retranscrire son besoin en langage excel mais sans les explications les macros me semblent pour l'instant simplement être une suite de chiffres, lettres et symboles plus ou moins organisés
Encore merci pour ton aide et tes explications qui me permettent d'y voir plus clair dans ton travail.
Cordialement,
C'est un langage à apprendre