Private Sub Worksheet_Change(ByVal Target As Range)

  • Initiateur de la discussion Initiateur de la discussion Xtian (du Québec)
  • 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 !

X

Xtian (du Québec)

Guest
Bonjour le forum

j'ai un fichier qui recherche les doublons dans la plage A1:Y90 avec le code suivant:
Sub Doublon()
Dim StartValue As String
Dim CelEnd As String
Dim CelDep As String

If ActiveCell = "" Then
ActiveCell.Select
Else
StartValue = ActiveCell.Value
CelDep = ActiveCell.Address
Range("A1:Y90").Cells.Find(What:=(StartValue), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
CelEnd = ActiveCell.Address
If CelEnd <> CelDep Then
MsgBox StartValue & " est présentement utilisé, faire un autre choix."
Range(CelEnd).Select
Range(CelEnd).Show
Else
Range(CelDep).Select
End If
End If
End Sub

J'utilise la fonction
Private Sub Worksheet_Change(ByVal Target As Range)
Call Doublon
End Sub

pour rechercher les doublons chaque fois que qu'un changement a lieu dans la feuille. Tout fonctionne parfaitement.

Mon problème, j'aimerais que mon sub Doublon() ne soit exécuté SEULEMENT lorsqu'il y a des changements dans la plage A1:Y90. J'aimerais savoir ce qu'il faut ajouter à mon code pour que l'action ne s'exécute seulement lorsque des changements sont effectués dans la plage choisie au lieu de toute la feuille.

Merci de votre aide

Xtian (du Québec)
@+++
 
Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
Dim z$, isect as variant
z = ActiveCell.Address
Set isect = Application.Intersect(Range(z), Range("A1:Y90"))
If Not isect Is Nothing Then Doublon
End Sub

A+
 
Bonjour Galopin, Xthian

Autre solution possible sans nouvelles variables

Private Sub Worksheet_Change(ByVal Target As Range)
If intersect(target,range("A1:Y90")) is nothing then: exit sub
doublon
end sub


A+
Michel
 
Hey hey le Forum !!!
C'est fantastique. Je savais que je pouvais obtenir cette information par l'entremise du forum...
C'est exactement ce que je cherchais...Tout fonctionne parfaitement...

Merci beaucoup galopin01 et michel_m.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
410
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
410
Réponses
2
Affichages
335
Retour