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

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+
 

Victor21

XLDnaute Barbatruc
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é.
 

job75

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
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:

Discussions similaires

Statistiques des forums

Discussions
312 446
Messages
2 088 492
Membres
103 870
dernier inscrit
didiexcel