Macro excel lorsque la cellule ne contient pas une valeur

chris6999

XLDnaute Impliqué
Bonjour

J'ai un problème de rédaction de macro pour lequel je ne trouve pas de solution.
Mon problème est le suivant :

Lorsqu'il existe une valeur dans une cellule de la colonne 21 (colonne U) la macro exécute les commandes suivantes
effacer la valeur saisie dans la colonne q
mettre la date du jour dans la colonne v
mettre le nom utilisateur dans la colonne z
mettre le nom du mois correspondant à la date dans la colonne ab
mettre le nom de jour entre la date saisie dans AC et celle saisie dans e

Par contre je souhaiterais qu'il y ait une condition sur la valeur saisie dans la cononne 21 (U) à savoir
Si la valeur saisie dans la colonne U contient le mot "Retour" (je précise qu'il ya différents types de retours possibles)
alors tu inscris dans la colonne S "Retour"
Pour tout autre valeur saisie dans la colonne 21(U) tu inscris "Clôturé" dans la colonne S

C'est là dessus que je bloque...



Ma macro se présente de la façon suivante mais elle ne fonctionne pas (je mets un fichier test en pièce jointe) :


If Target.Column = 21 Then
If Target.Value <> "" Then
Range("q" & Target.Row).ClearContents
Range("v" & Target.Row) = Date
Range("z" & Target.Row) = Application.UserName
Range("ab" & Target.Row) = Format(Date, "mmmm")
Range("ac" & Target.Row) = Range("v" & Target.Row).Value - Range("e" & Target.Row).Value

If Not Range("v" & Target.Row).Value Like "Retour" Then
Range("s" & Target.Row) = "Clôturé"

End If
End If
End If

End Sub


Merci d'avance pour votre aide
Cordialement
 

Fred0o

XLDnaute Barbatruc
Re : Macro excel lorsque la cellule ne contient pas une valeur

Bonjour chris6999,

Voici un code qui fonctionne :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 21 Then
        If Target.Value <> "" Then
            Range("q" & Target.Row).ClearContents
            Range("v" & Target.Row) = Date
            Range("z" & Target.Row) = Application.UserName
            Range("ab" & Target.Row) = Format(Date, "mmmm")
            Range("ac" & Target.Row) = Range("v" & Target.Row).Value - Range("e" & Target.Row).Value
            If InStr(1, UCase(Target), "RETOUR") = 0 Then Range("s" & Target.Row) = "Clôturé" Else Range("s" & Target.Row) = "Retour"
        End If
    End If
End Sub

Cependant, si tu écris "Retournement" ou "retourné" ou autre dérivé du mot "Retour" en colonne U, tu auras "Retour" "crit en colonne S.

A+
 

chris6999

XLDnaute Impliqué
Re : Macro excel lorsque la cellule ne contient pas une valeur

Merci pour cette proposition que je m'en vais essayer sans plus tarder
Cordialement

Bonjour chris6999,

Voici un code qui fonctionne :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 21 Then
        If Target.Value <> "" Then
            Range("q" & Target.Row).ClearContents
            Range("v" & Target.Row) = Date
            Range("z" & Target.Row) = Application.UserName
            Range("ab" & Target.Row) = Format(Date, "mmmm")
            Range("ac" & Target.Row) = Range("v" & Target.Row).Value - Range("e" & Target.Row).Value
            If InStr(1, UCase(Target), "RETOUR") = 0 Then Range("s" & Target.Row) = "Clôturé" Else Range("s" & Target.Row) = "Retour"
        End If
    End If
End Sub

Cependant, si tu écris "Retournement" ou "retourné" ou autre dérivé du mot "Retour" en colonne U, tu auras "Retour" "crit en colonne S.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 323
Messages
2 087 296
Membres
103 510
dernier inscrit
baloty