Renseignement automatique de date de création de ligne Excel

Résolu/Fermé
Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017 - Modifié par Dianex87 le 9/03/2017 à 11:04
Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017 - 14 mars 2017 à 11:15
Bonjour, bonjour,

Je travaille sur l’automatisation d’un fichier Excel grâce à VBA sous Excel 2010. Ce fichier compile des sujets (lignes) avec différents critères (colonnes).
Ma problématique est la suivante : je voudrais insérer une colonne de date de création de chaque ligne, colonne où la macro mettrait donc elle-même la date du jour.

Je précise que j’ai déjà une colonne A de « Date de dernière mise à jour de la ligne » ; CAD que quand le spécialiste de chaque sujet fait une modification sur sa ligne/son sujet, la colonne A se met à jour automatiquement. Cette macro fonctionne, mais malheureusement sur toutes les lignes ; je n’arrive pas à faire d’exception pour les 2 premières lignes-titres. Mais c’est un autre problème ! :) 

Maintenant donc je voudrais qu’à chaque fois qu’un spécialiste crée une nouvelle ligne/sujet, en colonne B par exemple, la date du jour s’implémente, quelque soit la cellule renseignée en premier lieu. Donc pas d’update possible a priori. Cela me permettrait de dégager les nouveaux sujets créés par mois par exemple.

Merci !!
Dianex
A voir également:

4 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
9 mars 2017 à 10:55
Bonjour,

Le titre n'est pas très parlant, il serait souhaitable de le changer avec un titre reflétant la question.

voir ceci pour la demande:

https://forums.commentcamarche.net/forum/affich-34391586-insertion-date-sur-excel#p34419969
0
Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017
9 mars 2017 à 11:19
Bonjour,

Et déjà merci.

Je débute sur le forum, j'ai mis à jour le titre ^^

J'avais déjà vu le sujet que vous me proposez mais il ne répond pas tout à fait à mon besoin. J'ai d'ailleurs modifié en ce sens ma question.
Je souhaiterais que quelle que soit la cellule de la ligne renseignée en premier, la date de création de la ligne en colonne B soit renseignée automatiquement.

Merci de votre aide,
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié par cs_Le Pivert le 9/03/2017 à 11:44
Je ne suis pas sur de tout comprendre.

Voici un code qui au clic d'une cellule renseignée affiche sur la même ligne en colonne B la date du jour.

Allez sur la feuille concernée, faire Alt F11 et mettre ce code:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Value = "" Then Exit Sub 'si cellule vide on sort
Range("B" & Target.Row).Value = Now
End Sub


on peut le mettre au double clic!

et si tu veux que cette date ne bouge plus, mettre ceci:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Value = "" Then Exit Sub 'si cellule vide on sort
If Range("B" & Target.Row).Value = "" Then
Range("B" & Target.Row).Value = Now
End If
End Sub




@+ Le Pivert
0
Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017
9 mars 2017 à 12:16
Je suis désolée de ne pas être très claire...
Mais le résumé est correct: dans mon tableau, quand les usagers ajoutent une nouvelle ligne (peu importe la cellule de cette ligne qu'ils commencent par renseigner en 1er), la cellule en colonne B de la même ligne doit se voir renseigner automatiquement par la date du jour.

J'ai donc tenté votre 2ème code; en créant une ligne tout en fin de tableau il ne renseigne pas la date du jour en B comme voulu. Et en "insérant" une ligne, il a renseigné la colonne B avec la date d'aujourd'hui, mais de la ligne du dessous !...

De plus je ne comprends pas bien ce qu'est le Target.Value ? Ne faut-il pas la déclarer avant ?

Merciii
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
9 mars 2017 à 13:00
Cela devient plus clair. C'est à l'insertion d'une ligne qu'il faut déclencher l'action .
voici donc le code:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B" & Target.Row).Value = Now
End Sub



0
Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017
9 mars 2017 à 13:41
Ça marche, merci ! :)

Je me rends juste compte qu'en supprimant la ligne, la date en colonne B persiste. Je sais bien, c'est l'action de la macro.

Mais pour les cas où les spécialistes voudront supprimer des lignes/sujets clos, serait-il possible de compléter la macro en faisant disparaître complètement la ligne y compris la date en colonne B ?

Thanks
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017
9 mars 2017 à 14:04
Si la ligne supprimée est entre 2 lignes remplies, la ligne entière est supprimée!
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
9 mars 2017 à 14:40
En changeant l’événement qui affiche la date, quand on supprime la ligne tout est supprimé.

On insère une ligne et au moment du double clic sur cette ligne la date s'affiche. On peut donc supprimer toute la ligne par la suite. C'est un choix qu'il faut faire suivant tes besoins. Donc voici le code:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range("B" & Target.Row).Value = Now
End Sub


Comme tu peux le constater, il y a différentes manières de procéder.


0
Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017
9 mars 2017 à 16:04
Bon, je vais rester sur ta première proposition dans un premier temps.
Merci Bcp !
0
Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017
10 mars 2017 à 14:28
Bonjour,

Peut-être pourras-tu m'aider à nouveau?

Avec le code ci-dessous, j'ai peut-être mis "Résolu" un peu trop vite.

Private Sub Worksheet_Change(ByVal Target As Range)
Range("B" & Target.Row).Value = Now
End Sub

En fait en faisant une modif sur une ligne déjà existante, la date est renseignée en colonne B (date de creation) alors que cela ne devrait pas... Comme si c'est la modif d'info qui était prise en compte...
L'idée était qu'à l'insertion de nouvelle ligne SEULEMENT la date soit renseignée en colonne B.

Merci
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017
10 mars 2017 à 15:32
As-tu lu ce post, cela résoudrait peut-être ton problème?

https://forums.commentcamarche.net/forum/affich-34430796-renseignement-automatique-de-date-de-creation-de-ligne-excel#3

Voici une action qui se déclenche a l'insertion de ligne:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim changement As Boolean
If Target.Rows(1).Cells.Count = Columns.Count Then changement = True
If Target.Columns(1).Cells.Count = Rows.Count Then changement = True
If changement = True Then
Range("B" & Target.Row).Value = Now
End If
End Sub


Je te rappelle que la suppression totale d'une ligne se fait si elle est entourée d'autres lignes!
0
Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017
14 mars 2017 à 11:15
Tu as du comprendre que je suis loin d'être une fleche en VBA :-/
Merci bcp en tout cas
0