Macro excel lorsque la cellule ne contient pas une valeur

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 !

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
 
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+
 
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+
 
- 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

Discussions similaires

Réponses
4
Affichages
250
Réponses
4
Affichages
202
Retour