Date selon choix dans la liste déroulante

Bonjour à tous,

J'ai besoin de votre aide pour une macro

J'ai une liste déroulante en colonne D avec les choix Gagné, en traitement et en attente. J'aimerais si possible avoir la date du changement de statut en colonne 18.

J'ai essayé le code suivant mais ça ne fonctionne pas

Private Sub WorkSheets_SelectionChange(ByVal Target As Range)

If Target.Column = 4 Then

Cells(Target.Row, 18) = Now

End If

End Sub

Merci de votre aide.

Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Column = 4 Then
ActiveCell.Offset(0, 14).Value = Now
End If
End Sub

Hello Xmenpl,

Ça ne fonctionne pas

Je mets le fichier en PJ. A savoir qu'il y a déjà une macro qui lorsque j'intègre une donnée en colonne A, j'ai la date du jour.

La dans ma demande je souhaite modifier cette date lorsque un statut est modifié en colonne D.

Merci encore.

3test.xlsm (62.38 Ko)

Bonjour,

Tu ne peux pas avoir deux fois : Private Sub Worksheets_Change c'est interdit

4test-retour.xlsm (60.97 Ko)

Dans ce cas le code tu l'ajoutes à ton premier code.

En effet c'était pas cohérent sorry.

Par contre il doit y avoir une boucle car quand je change le statut le fichier fige et plante.

En effet c'était pas cohérent sorry.

Par contre il doit y avoir une boucle car quand je change le statut le fichier fige et plante.

Bizarre je n'ai pas de plantage de mon coté

Tu as bien enregistré le fichier téléchargé sur ton disque dur avant de le tester ?

Ces trois lignes ne font que vérifier que la cellule que tu es en train de modifier se trouve bien en colonne 4

If ActiveCell.Column = 4 Then ' Si colonne de la cellule actuelle est colonne "D"

ActiveCell.Offset(0, 14).Value = Now ' Alors décaler de 14 colonne et inscrire "maintenant"

End If

Seule chose importante c'est que le changement dans la colonne D doit se faire obligatoirement en utilisant

le sélecteur.

(Si on tape soit même "gagné" et que l'on valide avec la touche entrée alors on se retrouvera dans la cellule

du dessous et excel va donc inscrire la date en face de la cellule du dessous. )

Oui j'ai bien enregistré. J'ai testé chez mes collègues pareil.

En fait j'ai calcul en cours comme ci la macro tournait en boucle.

Oui j'ai bien enregistré. J'ai testé chez mes collègues pareil.

En fait j'ai calcul en cours comme ci la macro tournait en boucle.

oops je n'avais pas vu qu'il restait un début de paramétrage sur ton ancien code avec la colonne D

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Application.Intersect(Target, Range("A2:A300")) Is Nothing Then
 lig = 0
 col = 18
  If Target.Value = "" Then
   Target.Offset(lig, col).Value = ""
 Else
  Target.Offset(lig, col).Value = Now
  End If
 End If
 If ActiveCell.Column = 4 Then
ActiveCell.Offset(0, 14).Value = Now
End If

End Sub
5test-retour.xlsm (60.16 Ko)

J'ai toujours le même problème

Ce n'est pas a cause du code dans le module 1 ?

*MAJ ça fonctionne que lorsque la date est en ligne 14. Mon besoin est de l'avoir en ligne 15 la ou il y a deja la ligne de création de la ligne ?

C'est faisable ?

Merci encore.

J'ai toujours le même problème

Ce n'est pas a cause du code dans le module 1 ?

*MAJ ça fonctionne que lorsque la date est en ligne 14. Mon besoin est de l'avoir en ligne 15 la ou il y a deja la ligne de création de la ligne ?

C'est faisable ?

Merci encore.

Que je comprenne bien

Sur le dernier fichier retourné ( sans le module )

Quand on rentre un client --> date s'incrit en colonne S ( date macro )

Quand on utilise seleteur colonne D ---> date s'incrit en colonne R

Faut faire quoi exactement dans le code ?

Pour essayer de te faire comprendre le contexte :

Lorsque je rentre un client en colonne A j'ai la date de création qui s’incrémente en colonne S

Ce que je souhaite dans la mesure du possible, c'est lorsque je change le statut en colonne D ça m’écrase la fameuse date en Colonne S pour mettre celle du jour.

En fait je fais des stats derrières qui se base sur la date de la colonne S.

:)

Lorsque je rentre un client en colonne A j'ai la date de création qui s’incrémente en colonne S

Ce que je souhaite dans la mesure du possible, c'est lorsque je change le statut en colonne D ça m’écrase la fameuse date en Colonne S pour mettre celle du jour.

Voilà le problème Ton premier post tu as demandé colonne 18 est c'est R pas S la 18

J'ai une liste déroulante en colonne D avec les choix Gagné, en traitement et en attente. J'aimerais si possible avoir la date du changement de statut en colonne 18.

3test-retour.xlsm (60.25 Ko)

Coucou,

Tu n'as aucun problème quand tu changes le statut ? Car moi ça me fige le fichier et plante

Coucou,

Tu n'as aucun problème quand tu changes le statut ? Car moi ça me fige le fichier et plante

Non aucun problème et il n'y a plus le module non plus dans le doute je l'ai enlevé.

Essaies celui-ci j'ai enlevé toutes les référence VBA qui n'étaient pas utiles pour ce fichier.

Dac, je vais tester depuis un autre poste.

Je te tiens au jus.

Merci encore

Dac, je vais tester depuis un autre poste.

Je te tiens au jus.

Merci encore

essaies avec celui sans référence vba.

Re,

Tu dois avoir la version 2013 car moi sur 2016 ça ne passait pas. J'ai ajouté deux lignes:

Application.EnableEvents = False

Application.EnableEvents = True

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

If Not Application.Intersect(Target, Range("A2:A600")) Is Nothing Then

lig = 0

col = 18

If Target.Value = "" Then

Target.Offset(lig, col).Value = ""

Else

Target.Offset(lig, col).Value = Now

End If

End If

If ActiveCell.Column = 4 Then

ActiveCell.Offset(0, 15).Value = Now

End If

Application.EnableEvents = True

End Sub

Et la c'est good

Merci encore pour ton aide.

Bien vu, mais je ne vois quand même pas pourquoi le code génère une erreur sur 2016 et pas 2013

Rechercher des sujets similaires à "date choix liste deroulante"