Renseignement automatique de date de création de ligne Excel

Résolu
Dianex87 Messages postés 79 Statut Membre -  
Dianex87 Messages postés 79 Statut Membre -
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

4 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. Dianex87 Messages postés 79 Statut Membre
       
      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
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. Dianex87 Messages postés 79 Statut Membre
       
      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
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. Dianex87 Messages postés 79 Statut Membre
       
      Ç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
      1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Dianex87 Messages postés 79 Statut Membre
         
        Si la ligne supprimée est entre 2 lignes remplies, la ligne entière est supprimée!
        0
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. Dianex87 Messages postés 79 Statut Membre
       
      Bon, je vais rester sur ta première proposition dans un premier temps.
      Merci Bcp !
      0
    2. Dianex87 Messages postés 79 Statut Membre
       
      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
      1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Dianex87 Messages postés 79 Statut Membre
         
        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
    3. Dianex87 Messages postés 79 Statut Membre
       
      Tu as du comprendre que je suis loin d'être une fleche en VBA :-/
      Merci bcp en tout cas
      0