Evenement worksheet_change

roro145

XLDnaute Nouveau
Bonjour à tous, voilà, j'ai deux problème avec l'utilisation de l'évènement Worksheet_change :
- j'ai 2 feuilles excel sur lesquelles j'applique (sur chacune) l'évènement en question. Lorsque je modifie la première, l'évènement associé modifie la seconde feuille, jusque là tout va bien, mais voila, la seconde feuille se trouvant modifiée (automatiquement par ma macro), son évènement va se mettre à son tour en action, or je voudrais que ce dernier ne soit actif que pour des modifications manuelles et non 'automatiques'... Comment puis-je faire ?

- Toujours pour l'évènement worksheet_change, lorsqu'il est appliqué à une feuille et que l'on 'vide' une case de cette feuille avec la touche 'suppr', la macro se met en erreur, j'ai réussi à contourner le problème avec un instruction 'on error goto', mais cela me parait bizare qu'il n'y ai que cette solution là, y'en a-t-il une autre ?

si quelqu'un pouvait m'aider, en vous remerciant par avance, ++
 

Hervé

XLDnaute Barbatruc
bonjour roro

il va te falloir passer par un boolean public;

essaye ces codes dans un classeur vierge :

Dans le module de la feuille 1

Private Sub Worksheet_Change(ByVal Target As Range)
bon =
False
Sheets('feuil2').Range(Target.Address) = 'toto'
End Sub


dans le module de la feuille 2
Private Sub Worksheet_Activate()
bon =
True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If bon Then Target.Interior.ColorIndex = 3
End Sub

Private Sub Worksheet_Deactivate()
bon =
False
End Sub

dans un module standard :

Public bon As Boolean

toute modification de la feuille 1 modfiie la feuille 2 sans déclencher la macro de cette meme feuille 2.

salut
 

Hervé

XLDnaute Barbatruc
bonjour roro, le forum

de rien roro :)

pour ton souci de on error, le bug doit venir du fait que la macro atteint une seule cellule (target) et que tu lui envoie une selection multiple.

problème classique facilement gérable en testant en début de macro le nombre de cellules sélectionnées. Si tu as plus d'une cellule alors on sort de la macro :

If Target.Count > 1 Then Exit Sub


salut
 

Discussions similaires

Réponses
4
Affichages
337

Statistiques des forums

Discussions
312 502
Messages
2 089 022
Membres
104 006
dernier inscrit
CABROL