IF target = Plusieurs conditions

Alban.aktisea

XLDnaute Nouveau
Bonjour,

J'ai une macro que je n'arrive pas à faire fonctionner si j'ajoute plusieurs conditions... Voici le bout de macro qui me pose problème, je n'ai pas de message d'erreur à l’exécution mais rien ne se passe.

Ai-je bien écrit les Or est-ce compatible??

Merci pour vos réponses.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = Range("N4:N20000").Column Then
Application.EnableEvents = False 'Permet d'accelerer le fichier

'les codes à + 120 jours

If Target = "RDV" Or Target = "BONUS" Or Target = "Déjà vu" Then
Target.Offset(0, 1) = Date + 120
Target.Offset(0, 10) = Date
Target.Offset(0, 11) = Time
Target.Offset(0, 9) = Range("A1")
Target.Offset(0, 1) = Target.Offset(0, 1) + 1

... Ensuite j'ai d'autre If.Target = et les End.if
 

camarchepas

XLDnaute Barbatruc
Re : IF target = Plusieurs conditions

Bonjour ,

il faut peut être voir avec :

select case target
case "RDV","BONUS","Déjà vu" :

Target.Offset(0, 1) = Date + 120
Target.Offset(0, 10) = Date
Target.Offset(0, 11) = Time
Target.Offset(0, 9) = Range("A1")
Target.Offset(0, 1) = Target.Offset(0, 1) + 1
case "Autre" :

'Autres actions

end select
 

chris

XLDnaute Barbatruc
Re : IF target = Plusieurs conditions

Bonjour

Déjà "If Target.Column = Range("N4:N20000").Column" peut être remplacé par "If Target.Column = 14"

Si tu utilises des IF successifs il faut des "Else if" mais une structure SELECT CASE est souvent plus propre.


Edit : Coucou camarchepas :)
 

Alban.aktisea

XLDnaute Nouveau
Re : IF target = Plusieurs conditions

Ca marche pas, ça marche !! :cool:

Merci au top, tout fonctionne et select case me semble bien plus adapté en effet.

Chris j'ai modifié, le if target.column. pourquoi est-il préférable de mettre des numéros de colonne?

Un grand merci, vous me faites gagner un temps fou.
 

chris

XLDnaute Barbatruc
Re : IF target = Plusieurs conditions

Re

C'est un détail mais, sauf à comparer avec une plage nommée dont la colonne peut avoir changé, autant donner directement la colonne.

On utilise une plage pour INTERSECT afin de ne pas traiter d'autres cellules de la colonne N d'où peut-être ton approche...
 

camarchepas

XLDnaute Barbatruc
Re : IF target = Plusieurs conditions

Re ,

Et non en fait tu regardes uniquement le numéro de la colonne et pas ce qu'il y a dedans , donc bien plus simple à écrire , et à éxécuter du même coup .

que du bénef , et donc l'on dit un grand Merci à Chris
 

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 996
Membres
103 423
dernier inscrit
Guyom GIL