Empêcher une macro lors d'une suppression

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

Aimedjie

XLDnaute Occasionnel
Bonjour,

J'ai créé une macro qui copie des formules lorsqu'une nouvelle ligne est utilisée. Par contre, j'ai un problème lorsque je veux supprimer des lignes. Effectivement, lorsque je supprime une ligne, la macro considère qu'il s'agit d'une nouvelle ligne et colle les formules, mais je veux supprimer la ligne sans coller les forumles. Voici ma macro :

Option Explicit

'Variable pour activer/désactiver l'événement Change
Public booChangeActif As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)

'==========================================================================
'Coller les formules originales si une nouvelle ligne est utilisée.
'--------------------------------------------------------------------------
'booChangeActif : Variable qui indique s'il y a une macro en cours.
'Target : Cellule modifiée
'cellModifie : Chaque cellule modifiée
'IDcell : Numéro de la cellule dans laquelle se trouve la formule.
'nouvelleLigne : Variable indoquant s'il s'agit d'une nouvelle ligne.
'--------------------------------------------------------------------------
'==========================================================================

Dim cellModifie As Range
Dim IDcell As Long
Dim nouvelleLigne As Boolean

'Valider s'il y a déjà une macro en cours.
If Not booChangeActif Then

booChangeActif = True

'Valider si les données sont inscrites

For IDcell = 1 To 5
nouvelleLigne = True
If Not IsEmpty(Cells(Target.Row, Feuil1.Range("formule" & IDcell).Column).Value) Or _
nouvelleLigne = False Or IsEmpty(Target.Value) Then nouvelleLigne = False
Next IDcell

'Copier les formules s'il s'agit d'une nouvelle ligne.
If nouvelleLigne = True Then

For IDcell = 1 To 5
Feuil1.Range("formule" & IDcell).Copy
Feuil1.Cells(Target.Row, Feuil1.Range("formule" & IDcell).Column).Select
ActiveSheet.Paste Destination:=Selection
Application.CutCopyMode = False
Next IDcell

End If

booChangeActif = False

End If

End Sub


Pouvez m'aide à modifier ma macro pour me permettre de supprimer des ligne sans qu'elle colle mes formules?

Merci.
 
Re : Empêcher une macro lors d'une suppression

Bonjour Aimedjie 🙂,
J'ai créé une macro qui copie des formules lorsqu'une nouvelle ligne est utilisée. Par contre, j'ai un problème lorsque je veux supprimer des lignes. Effectivement, lorsque je supprime une ligne, la macro considère qu'il s'agit d'une nouvelle ligne et colle les formules, mais je veux supprimer la ligne sans coller les forumles.
Si je te lit bien, ta macro se déclenche quand tu valides une cellule, et tu souhaites qu'elle ne se déclenche pas quand tu supprimes des lignes, donc quand ce sont des lignes qui sont sélectionnées.
Donc en début de macro
Code:
If Target.Count > 1 Then Exit Sub
devrait faire l'affaire.
Bonne journée 😎
 
- 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
5
Affichages
909
Réponses
7
Affichages
366
Réponses
4
Affichages
586
Retour