Ma macro multi conditions (trop peu-être!) ne fonctionne pas

chris6999

XLDnaute Impliqué
Bonjour

Je reviens vers vous car je voudrais comprendre pourquoi ma macro ne fonctionne pas.

La commande est la suivante :
Pour toute modification dans la colonne 19 ETAT DECISION si la cellule est différente de vide
alors dans tous les cas
tu positionnes la date du jour dans la colonne 20 ou T

tu positionnes le code user dans la colonne 27 ou AA


Ensuite
-si La colonne 19 est égale à INSTRUCTION EN COURS
alors positionne dans la colonne U "En cours"
et supprime la valeur dans la colonne q


-Si La valeur saisie dans la colonne 19 est égale à EXAMEN 2ème envoi
alors positionne dans la colonne U "En cours"
et positionne dans la colonne 18 R la date de jour


-si La valeur saisie dans la colonne 19 est égale à ACCORD ou ACCORD TACITE ou REFUS
alors positionne dans la colonne U "Dossier clos"
et supprime la valeur dans la colonne q
et positionne la date du jour dans la colonne 29 ou AC
et dans la colonne 30 AD le mois (correspondant à la date de saisie)
et dans la colonne 31 AE positionne la valeur suivante = 29 AC - 18 R

-si La valeur saisie dans la La colonne 19 contient RETOUR
alors supprime la valeur dans la colonne q
Supprime la valeur dans la colonne 18 R
et positionne dans la colonne 14 N la valeur suivante : date du jour + 45

J'ai commencé à rédiger ma macro en travaillant par palier mais même sur les instructions les plus simples je suis un peu bloquée
car cela ne semble pas fonctionner

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 19 Then
If Target.Value <> "" Then
Range("t" & Target.Row) = Date
Range("aa" & Target.Row) = Application.UserName

If Target.Value = "EXAMEN 2ème ENVOI" Or Target.Value = "EN COURS D'INSTRUCTION" Then Range("u" & Target.Row) = "Dossier en cours"

If Target.Value = "ACCORD" Or Target.Value = "ACCORD TACITE" Or Target.Value = "REFUS" Or Target.Value = "NON GÉRÉ" Then Range("u" & Target.Row) = "Dossier clôs "


If Target.Value = "ACC RETOUR INCOMPLET" Or Target.Value = "RETOUR PARTENAIRE" Or Target.Value = "RETOUR NON CONCERNE" Or Target.Value = "RETOUR INSTRUCTION" Or Target.Value = "RETOUR DOSSIER INCOMPLET" Then Range("u" & Target.Row) = "Attente retour"

End If
End If

End Sub


Merci d'avance pour votre aide
Cordialement
 

Pièces jointes

  • test.xls
    168 KB · Affichages: 67
  • test.xls
    168 KB · Affichages: 70
  • test.xls
    168 KB · Affichages: 70

fanfan38

XLDnaute Barbatruc
Re : Ma macro multi conditions (trop peu-être!) ne fonctionne pas

Bonjour
Une solution...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 19 Then Exit Sub
If Target.Value = "" Then Exit Sub
Range("t" & Target.Row) = Date
Range("aa" & Target.Row) = Application.UserName
Select Case Target.Value
Case Is = "EXAMEN 2ème ENVOI"
Range("u" & Target.Row) = "Dossier en cours"
Case Is = "EN COURS D'INSTRUCTION"
Range("u" & Target.Row) = "Dossier en cours"
Case Is = "ACCORD"
Range("u" & Target.Row) = "Dossier clôs "
Case Is = "ACCORD TACITE"
Range("u" & Target.Row) = "Dossier clôs "
Case Is = "REFUS"
Range("u" & Target.Row) = "Dossier clôs "
Case Is = "NON GÉRÉ"
Range("u" & Target.Row) = "Dossier clôs "
Case Is = "ACC RETOUR INCOMPLET"
Range("u" & Target.Row) = "Attente retour"
Case Is = "RETOUR PARTENAIRE"
Range("u" & Target.Row) = "Attente retour"
Case Is = "RETOUR NON CONCERNE"
Range("u" & Target.Row) = "Attente retour"
Case Is = "RETOUR INSTRUCTION"
Range("u" & Target.Row) = "Attente retour"
Case Is = "RETOUR DOSSIER INCOMPLET"
Range("u" & Target.Row) = "Attente retour"
End Select
End Sub

A+ François
 

Staple1600

XLDnaute Barbatruc
Re : Ma macro multi conditions (trop peu-être!) ne fonctionne pas

Bonsoir à tous


Un autre façon d'écrire le Select Case de François
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 19 Then Exit Sub
If Target.Value = "" Then Exit Sub
Range("t" & Target.Row) = Date
Range("aa" & Target.Row) = Application.UserName
With Range("u" & Target.Row)
    Select Case Target.Value
    Case Is = "EXAMEN 2ème ENVOI", "EN COURS D'INSTRUCTION"
    .Value = "Dossier en cours"
    Case Is ="ACCORD", "ACCORD TACITE", "REFUS", "NON GÉRÉ"
    .Value = "Dossier clôs "
    Case Is ="ACC RETOUR INCOMPLET", "RETOUR PARTENAIRE", "RETOUR NON CONCERNE", "RETOUR INSTRUCTION", "RETOUR DOSSIER INCOMPLET"
    .Value = "Attente retour"
End Select
End With
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu