IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Afficher date SEULEMENT si modification dans cellule [XL-2019]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 69
    Points : 23
    Points
    23
    Par défaut Afficher date SEULEMENT si modification dans cellule
    Bonjour,

    je suis partis de ce post
    https://www.developpez.net/forums/d1...ion-d-cellule/

    et j'ai adapté pour mon cas avec cette macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim a
     
        For a = 0 To 7
            If Target.Column = 3 + a And Target.Row >= 3 Then
                Cells(Target.Row, 2) = Now()
            End If
        Next
     
    End Sub
    mais ça fonctionne trop bien, ça me met la date en colonne 2 mais je voudrais que ça me mette la date que et seulement que lorsqu'une des cellules 3 à 10 sont modifiées.... Là, je clique sur une de ces cellules et ça suffit pour mettre à jour la date.

    Comment restreindre cette macro à ce que je veux ?

    Merci
    Akhlan

  2. #2
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2012
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 271
    Points : 331
    Points
    331
    Par défaut
    Bonsoir,

    Peut-être un truc comme ça!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("C3:C10")) Is Nothing Then
     Range("B" & Target.Row) = Now
    End If
    End Sub
    Slts

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 69
    Points : 23
    Points
    23
    Par défaut
    non, ça ne fonctionne pas mieux que ma macro... de plus c'est sur une ligne que ça se passe pas sur une colonne Je joins un fichier excel, ça sera plus facile à comprendre...
    Fichiers attachés Fichiers attachés

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2012
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 271
    Points : 331
    Points
    331
    Par défaut
    Bonjour,

    Sur le fichier joint en modifiant quelques chose dans la plage C2:J20 une date s'affiche bien dans la ligne ou une modification à été faite non?

    Slts
    Fichiers attachés Fichiers attachés

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 69
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par riton00 Voir le message
    Bonjour,

    Sur le fichier joint en modifiant quelques chose dans la plage C2:J20 une date s'affiche bien dans la ligne ou une modification à été faite non?

    Slts
    J'ai le même soucis que sur mon fichier, un double clique suffit à mettre une date et je ne veux que si et seulement si la cellule est modifiée

  6. #6
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2012
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 271
    Points : 331
    Points
    331
    Par défaut
    Bonsoir

    Désoler chez moi rien ne se passe lors d'un double clic, par contre uniquement lors d'une modification dans la plage C2:J20 la date se met à jour dans la même ligne, donc du coup je ne comprends pas ton histoire de double clic

    Slts

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Salut.

    Le double-clic faisant entrer dans la cellule pour modification (équivalent de F2), il y a bien évènement de modification après (sauf à "faire" ESC (ECHAP)).

    La seule solution que je vois est de mémoriser la valeur de la cellule que l'on sélectionne et de tester cette valeur lors de la levée de l'évènement. Perso, je travaillerais avec les références structurées du tableau. Mets des points d'arrêt dans le code pour en comprendre le fonctionnement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Option Explicit
     
    Private OldValue
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("C2:J20")) Is Nothing Then
      If Target(1, 1).Value <> OldValue Then
        Application.EnableEvents = False
        Range("tableau1[dernière " & Chr(10) & "modification]")(Target.Row - Range("tableau1[#headers]").Row).Value = Date
      End If
    End If
     
    Catch:
      Application.EnableEvents = True
    End Sub
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Application.Intersect(Target, Range("Tableau1[[dénomination]:[joules]]")) Is Nothing Then
        OldValue = Target(1, 1).Value
      End If
    End Sub
    PS: Il y a pas mal de réserves par rapport à cette méthode puisque l'on peut sélectionner et modifier plusieurs lignes en même temps => les Target peuvent être multi-cellules. Je ne suis pas convaincu que la méthode soit très productive telle quelle. On devrait passer par un tableau des modifs et tester lors de la modif quelles valeurs sont changées... Ca me semble bien lourd et, encore une fois, Excel n'est pas fait pour ça
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 69
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Insertion de date de première modification dans une cellule
    Par richard_sraing dans le forum Excel
    Réponses: 2
    Dernier message: 08/01/2015, 11h23
  2. [XL-2007] Incorporer date si modification dans cellules
    Par manusp dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/01/2012, 22h20
  3. Afficher date dernière mise à jour dans Etat
    Par FredXIII dans le forum IHM
    Réponses: 3
    Dernier message: 22/03/2007, 10h37
  4. [VBA-E] afficher des données apres saisie dans cellule
    Par user0505 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/04/2006, 14h04
  5. Afficher date jour par defaut dans Combox de dates...
    Par nicburger dans le forum Access
    Réponses: 5
    Dernier message: 08/02/2006, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo