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

gestion des erreurs pour Private Sub Worksheet_Change(ByVal Target As Range)

satwaf

XLDnaute Occasionnel
bonjour à tous
à chaque jour suffit sa peine, donc me revoila aujourd'hui avec un nouveau probleme
je m'explique, sur une feuille de mon classeur, j'ai mis en place une macro me permettant de surveiller que la cellule que je modifie n'appartient pas a une plage nommée, si tel est le cas une boite de dialogue apparait pour me demander le motif de ma modification, jusque la tout va bien, par contre si je selectionne dans ma feuille plusieurs cellules, et que je veuille les coller sur un autre emplacement, tout se bloque, je suis obligé de fermer excel. je pense que je n'ai pas su gerer les erreurs mais je ne sais pas quel commandes je dois inserer ni ou, alors peu etre que vous pouvez m'aider?



Dim monadresse As String
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
monadresse = ActiveCell.Address
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
monadresse = ActiveCell.Address
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
'verification pour savoir si la cellule qui vient d'être modifiée appartient bien
'à la zone form_zone_modif si oui son numero de colonne ne doit pas etre inférieur
'à 4 pour etre pris en compte
Application.ScreenUpdating = False
If ActiveCell.Column < 4 Then
Exit Sub
Else
Application.ScreenUpdating = False
If Not Application.Intersect(Target, Range("form_zone_modif")) Is Nothing Then
ActiveSheet.Unprotect Password:="bpe2010"
Adresse = ActiveCell.Address
Range("form_cell_active").Value = monadresse
CommandButton1_Click
ActiveSheet.Protect Password:="bpe2010"
End If
End If
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : gestion des erreurs pour Private Sub Worksheet_Change(ByVal Target As Range)

Bonjour,

essaye ceci, à placer au tout début de ta procédure :
Code:
    If Target.Count > 1 Then Exit Sub

bon après midi
@+
 

James007

XLDnaute Barbatruc
Re : gestion des erreurs pour Private Sub Worksheet_Change(ByVal Target As Range)

Bonjour,

Uniquement pour répondre à ta question... la première instruction de ta macro devrait être :
Code:
If Target.Count > 1 Then Exit Sub

A +
 

satwaf

XLDnaute Occasionnel
Re : gestion des erreurs pour Private Sub Worksheet_Change(ByVal Target As Range)

merci pour vos réponses, je viens de tester et cela ne fonctionne pas, j'ai donc mis le code au debut de ma procedure, et si je vais dans ma feuille, je selectionne deux cellules que je copie, je selectionne ensuite une autre cellule, qui ne se trouve pas dans la form_zone_modif, et des que je colle les valeurs, excel plante
 

satwaf

XLDnaute Occasionnel
Re : gestion des erreurs pour Private Sub Worksheet_Change(ByVal Target As Range)

je viens de tester de nouveau, toutes mes excuses, je l'ai mal placé, maintenant tout est ok

merci a vous
encore un petit pas de plus...
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…