Excel Downloads
Forum

Précédent   Excel Downloads Forums > Archives > Forum Excel Downloads - Archives

Advertisement

 
 
LinkBack Outils de la discussion
Vieux 25/01/2005, 03h43   #1 (permalink)
Xtian (du Québec)
Guest
 
Messages: n/a
Par défaut Private Sub Worksheet_Change(ByVal Target As Range)

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)
@+++
 
ANNONCES
Vieux 25/01/2005, 07h05   #2 (permalink)
galopin01
Guest
 
Messages: n/a
Par défaut Re: Private Sub Worksheet_Change(ByVal Target As Range)

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+
 
Vieux 25/01/2005, 08h53   #3 (permalink)
michel_m
Guest
 
Messages: n/a
Par défaut Re: Private Sub Worksheet_Change(ByVal Target As Range)

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
 
Vieux 25/01/2005, 23h12   #4 (permalink)
Xtian (du Québec)
Guest
 
Messages: n/a
Par défaut Re: Private Sub Worksheet_Change(ByVal Target As Range)

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.
 
ANNONCES
 

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 11h19.


(C) 2006 Excel Downloads