Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro événementielle lors de suppression / ajout de ligne

  • Initiateur de la discussion Initiateur de la discussion Legolas
  • 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 !

Legolas

XLDnaute Occasionnel
Bonjour aux Excelnautes !

Je souhaite créer une macro événementielle qui s'active lors de la suppression ou de l'ajout d'une ligne.
Je n'ai pas trouvé l'instruction répondant à ce besoin... est-ce que cela existe ?
Merci pour votre aide.

A+
 
Re : Macro événementielle lors de suppression / ajout de ligne

Bonjour, Legolas.

Je ne connais pas d'événement détectable lors de l'ajout ou la suppression de lignes. Mais on peut contourner :
En-dessous de la zone utilisée de votre feuille, une cellule contenant =ligne() changera de valeur si vous supprimez ou insérez une ligne. Et ce changement peut être intercepté.
 
Re : Macro événementielle lors de suppression / ajout de ligne

Bonjour Legolas, Patrick,

Voici une manière de détecter la suppression de lignes entières sélectionnées.

Mettez ces 4 macros dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
On Error Resume Next 'si la sélection n'est pas un Range
If Selection.Columns.Count = Columns.Count Then Selection.Name = "cible"
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next 'si la sélection n'est pas un Range
If Selection.Columns.Count = Columns.Count Then Selection.Name = "cible"
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
If Selection.Columns.Count = Columns.Count Then Selection.Name = "cible"
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
If Selection.Columns.Count = Columns.Count Then
  Dim a As String
  On Error Resume Next
  a = Range("cible").Address
  If a = "" Then MsgBox "Ligne(s) supprimée(s)"
  Selection.Name = "cible"
End If
End Sub
A+
 
Dernière édition:
Re : Macro événementielle lors de suppression / ajout de ligne

Bonjour Job75,

Je viens de tester ta proposition et ça marche très bien.
Par contre, je ne comprends pourquoi il y a besoin de 4 macros pour y arriver...

A+
 
Re : Macro événementielle lors de suppression / ajout de ligne

Bonjour Legolas,

Les 2 premières macros ne sont pas strictement indispensables mais faites un test :

- supprimez les 2 premières macros, Open et SheetActivate

- sélectionnez une ligne dans la feuille active

- supprimez le nom défini "cible"

- enregistrez, fermez puis rouvrez le fichier

- EFFACEZ (sans la supprimer - touche Suppr) la ligne déjà sélectionnée...

Je reconnais que c'est du pinaillage, et si bon vous semble supprimez les 2 premières macros.

A+
 
Dernière édition:
- 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

Discussions similaires

Réponses
4
Affichages
222
  • Question Question
Microsoft 365 Excel - Macro
Réponses
14
Affichages
795
Réponses
5
Affichages
648
Deleted member 453598
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…