Déclencher macro par événement : insertion ligne

  • Initiateur de la discussion Initiateur de la discussion lyna
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

lyna

Guest
Bonjour à tout le forum;
Merci pour toute personne pouvant m'aider pour sésoudre mon pb :
Comment peut-on déclencher une macro après insertion d'une ligne ?
Plus précisément, comment peut-t-on intercepter l'évenement insertion de ligne?
Merci d'avance.
 
Re : Déclencher macro par événement : insertion ligne

bonjour dixit
Le but est de copier un certain nombre de formule par macro à chaque insertion de ligne .
je sais que je peux faire ça par un bouton, mais je ne veux pas que les utilisateurs insère des lignes à partir d'uhn bouton, car ils ont le reflexe d'utiliser les fonctionalité basique d'excel : insertion ligne et du coup les formule que je souhaite copier elles seront pas copier.
 
Re : Déclencher macro par événement : insertion ligne

Salut,

Tu peux détecter l'insertion de ligne avec l'évènement Worksheet_Change.
Par exemple :

Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Row
End Sub

Là, Target.Row donne le numéro de la ligne insérée. Tu peux donc te baser sur lui pour définir les cellules que tu veux dans cette ligne.

A+
Horatio
 
Re : Déclencher macro par événement : insertion ligne

re
sans connaître le contexte, c'est difficile de donner un avis mais je vais le faire :
pourquoi insérer une ligne "à la main" alors qu'on peut insérer cela dans la macro ?
en plus, si les utilisateurs peuvent insérer une ligne c'est qu'ils travaillent sur une feuille non protégée ou qu'ils peuvent déprotéger : à proscrire absolument à mon avis : c'est le meilleur moyen de se retrouver avec des formules disparues ou modifiées par erreur.
donc je verrais bien un bouton qui insère la ligne là où est la cellule active (ou sur autre critère) et qui copie les formules dans la foulée.
 
Re : Déclencher macro par événement : insertion ligne

Salut,

Tu peux détecter l'insertion de ligne avec l'évènement Worksheet_Change.
Par exemple :

Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Row
End Sub

Là, Target.Row donne le numéro de la ligne insérée. Tu peux donc te baser sur lui pour définir les cellules que tu veux dans cette ligne.

A+
Horatio

Bonjour monsieur Horatio,

Est-ce que je réponds à un message de 2007 ? Ouf, c'est Google qui m'a amené ici parce que, en 2017, je me pose de semblables questions.

J'ai essayé votre méthode et ça marche. Ça marche pour les insertions et les suppressions (c'est ce qui m'intéresse) mais ça marche aussi pour un millier d'autres événements. Ce qui me cause problème, bien sûr.

Mon besoin serait de surveiller uniquement les insertions et suppressions de ligne afin de renuméroter une colonne.

Y a-t-il moyen d'isoler ces deux événements ?

Merci de votre attention,

Pierre Cloutier

---
 
Bonjour Pierre,

Effectivement... ça c'est du gros déterrage de post 😛

Pour isoler l'insertion ou la suppression de ligne ou colonne entière, voici ce qu'il te faut
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Rows.Count = Application.Rows.Count Then
    MsgBox "Colonne entière"
  End If
  If Target.Columns.Count = Application.Columns.Count Then
    MsgBox "Ligne entière"
  End If
End Sub

Perso, je préfère utiliser des boutons prévus à cet effet 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2021 Macro
Réponses
6
Affichages
241
Réponses
2
Affichages
182
Réponses
15
Affichages
610
Retour