Date fixe apres validation

  • Initiateur de la discussion Initiateur de la discussion Geaxle
  • Date de début Date de début

Geaxle

XLDnaute Nouveau
Bonjour,

J'ai longuement cherche sur les forums anglais, mais je n'ai pas trouve une solution qui convienne a mon probleme et la programation VBA depasse mes connaissances. Peut etre pourrez vous m'aider.

J'utilise une version anglaise de excel (si jamais ca change quelque chose).

Alors voila :

Dans ma feuille en colonne A l'utilisateur peu choisir entre "YES" et "NO". Par defaut c'est "NO". J'aimerai qu'au moment ou il choisi "YES", cela inscrive la date dans la colone B. Et que cette date reste fixe.

C'est la tout mon probleme, j'ai trouve sur un forum une proposition de fonction fixeddate()

Code:
Function FixedDate()
    FixedDate = Date
End Function

Mais au final la cellule est recalcule a chaque ouverture ou fermeture du document et la date n'est donc pas fixe.

J'ai par la suite trouve des codes VBA du style :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("B1:B20"), Target) Is Nothing Then
Target.Offset(0, -1).Value = Format(Now, "mm-dd-yy hh:mm:ss")
End If
End Sub

Mais cela ne correspond pas exactement a ce que je cherche et je ne comprend pas suffisament le code pour le modifier a mes besoins.

Pourriez vous me conseiller. Je peu modifier ma feuille si cela facilite le code. Le principe est que sur validation d'une etape cela inscrive la date dans une case et que celle-ci ne change plus.

Ainsi dans ma feuille actuelle les colones H,J,N et Q cherche a obtenir une date fixe quand la colone precedente indique "YES". De meme pour la colone X quand la colone I indique "COMPLETED". Toutes ces cellules contiennent une date esperee que je voudrais ecraser par la date relle.

Merci d'avance pour votre aide.

Cordialement,
Gea
 
Dernière édition:

Geaxle

XLDnaute Nouveau
Re : Date fixe apres validation

Merci Philipe pour ta reponse et ton document qui m'ont beaucoup aide.

Au final je l'ai adapte pour le code suivant qui fonctionne tres bien:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("I6:I5000,K6:K5000,O6:O5000,R6:R5000")) Is Nothing Then
    If Target.Value = "YES" Then
    Target.Offset(0, 1).Value = Date
    End If
    End If

End Sub

A+
Gea
 

Discussions similaires

  • Question Question
Microsoft 365 Validation de donnée
Réponses
4
Affichages
360
Réponses
3
Affichages
355
Réponses
10
Affichages
257
Réponses
4
Affichages
291
Réponses
9
Affichages
453
Réponses
3
Affichages
468
Réponses
3
Affichages
431

Statistiques des forums

Discussions
315 277
Messages
2 117 977
Membres
113 400
dernier inscrit
ORGACOM