Executer Worksheet_Change qu'a la fin ...

carlos

XLDnaute Impliqué
Supporter XLD
Bonsoir au forum

J'ai une feuille excel qui execute cette macro a chaque changement de valeur de cellule de la plage ci dessous.

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range('d4:d57, f4:f57, l4:n57, l4:n57')) Is Nothing Then

MacroAExecuter

end sub


Je dois copier cette feuille et effacer les valeurs contenues dans la plage pour pouvoir en saisir de nouvelles.

Le probleme est que Worksheet_Change s'execute à chaque fois qu'une cellule est effacée, ce qui est tres tres lonnnnnnnnnnnng.

Est il possible de n'executer Worksheet_Change qu'une fois la copie effectuée et que toutes les cellules seront éffacées ??????

Merci

Carlos
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Carlos, bonsoir le forum,

Je te propose de rajouter une ligne de code (plutôt deux) à ta macro :


Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range('d4:d57, f4:f57, l4:n57, l4:n57')) Is Nothing Then

If Target.Value = '' Then Exit Sub 'si la cellule est éffacée, sort de la procédure
MacroAExecuter
End If 'sans ce End If ta propre macro devait buger...
End sub

Message édité par: Robert, à: 21/10/2005 22:13
 

carlos

XLDnaute Impliqué
Supporter XLD
Bonjour Robert
Bonjour le forum

Ta proposition me renvoit un message d'erreur dès la premiere cellule éffacée :

Erreur 13 , incompatibilité de type sur: If Target.Value = ''

Serait il possible de supprimer carrement ce code de la feuille Vba , le temps que je copie , éfface .
Puis de le Recoller..??

Merci

Carlos
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Carlos, bonjour le forum,

Je ne comprends pas pourquoi ce bug, en tous cas chez moi je ne l'ai pas (Windows XP et Office 2003).

Tu peux ouvrir ton classeur sans Activer les macros, faire ton copier/coller, sauver, fermer ton classeur, puis le rouvrir en Activant les macros.
 

Statistiques des forums

Discussions
312 242
Messages
2 086 536
Membres
103 244
dernier inscrit
lavitzdecreu