Changement de date selon un texte

Bonjour Gang, merci d'avance. VBA

Si ma colonne 13 indique "planifié" je veux inscrire Date Now dans la Colonne 1

Si ma colonne 13 indique "Recu Dessin" je veux inscrire Date Now dans la colonne

Je tombe toujours en erreur :-(

image

Bonjour,

Peut-on avoir un bout du fichier anonymisé SVP

A+

Bonsoir,

il vous faut passer par VBA : en effet, une fois la date du jour inscrite en colonne Date Cédulé, celle-ci ne doit pas évoluer avec le temps, donc si vous mettez une formule du style : =SI(M2="PLANIFIE";AUJOURDHUI();""), le lendemain s'il y a toujours écrit "PLANIFIE", la date se mettra à jour !

Donc l'idée est une détection du changement de valeur de la colonne 13 (M), et si elle change on inscrit par VBA en "dur" la date du jour en colonne Date Cédulé ou Date dessin en fonction de la valeur de la cellule en colonne 13.

C'est pourquoi je rejoint JExcel2fr au sujet du fichier à fournir ainsi que l'autorisation de passer en VBA donc en fichier avec l'extension .xlsM

@ bientôt

LouReeD

Bien sure,

Protection complète: spe

Merci :-)

Bonjour,

Dans le code de la feuille "Cédule" il suffit d'ajouter une instruction dans les "Case"

Case "PLANIFIÉ": Cel.Interior.ColorIndex = 8: Cells(Target.Row, 1) = Date
Case "RECU DESSIN": Cel.Interior.ColorIndex = 23: Cells(Target.Row, 2) = Date

J'espère que ce sera clair

A+

Un énorme merci ! ca fonction #1

Désolé,

J'ai remarquer que la protection de la feuille bug le changement. J'e n'arrive pas à intégré la désactivation au bonne endroit...

A la base, pour changer le statut à planifier c'est le mdp "wip"

Pour modifier les colonnes 1,2 c'est "ericb"

"spe" pour la feuille complète

mais je n'arrive pas à l'appliquer pour les changement proposer sur row, 1 et 2

Case "PLANIFIÉ": Cel.Interior.ColorIndex = 8: ActiveSheet.Unprotect "spe" : Cells(Target.Row, 1) = Date : ActiveSheet.Protect "spe"

Case "RECU DESSIN": Cel.Interior.ColorIndex = 23: ActiveSheet.Unprotect "spe" : Cells(Target.Row, 2) = Date : ActiveSheet.Protect "spe"

Bonsoir,

Il faut déprotéger la feuille avant le "Select Case" et la reprotéger après

Quelque chose de ce style

Private Sub WorkSheet_Change(ByVal Target As Range) 'code pour la couleur spéciaux (modifiaction date actuelle statut)
  Dim Cel As Range
  If Target.Column = 13 Then Cells(Target.Row, 12) = Now
  ' Déprotéger
  ActiveSheet.Unprotect "spe"
  ' pour chaeque cellule
  For Each Cel In Target
    If Not Intersect(Cel, Range("m44:m39000")) Is Nothing Then
      Select Case Cel.Value
        Case "PLANIFIÉ": Cel.Interior.ColorIndex = 8: Cells(Target.Row, 1) = Date
        Case "RECU DESSIN": Cel.Interior.ColorIndex = 23: Cells(Target.Row, 2) = Date
        Case "1/2 BETON FAIT": Cel.Interior.ColorIndex = 4
        Case "2/2 BETON FAIT": Cel.Interior.ColorIndex = 10
        Case "100% PEINTURE ": Cel.Interior.ColorIndex = 46
        Case "fermet. ou non-appr": Cel.Interior.ColorIndex = 6
        Case "PRET A EXPEDIER": Cel.Interior.ColorIndex = 48
        Case "100% NETTOYÉ": Cel.Interior.ColorIndex = 19
        Case "HOLD OU REVISION": Cel.Interior.ColorIndex = 3
        Case "PEINTURE 1 DE 2": Cel.Interior.ColorIndex = 44
        Case "PEINTURE 2 DE 2": Cel.Interior.ColorIndex = 45
        Case "PEINTURE 3 DE 3": Cel.Interior.ColorIndex = 46
        Case Else: Cel.Interior.ColorIndex = 2
      End Select
    End If
  Next Cel
  ' Re-protéger
  ActiveSheet.Protect "spe"
End Sub

A+

Rechercher des sujets similaires à "changement date texte"