Automatisation mise à jour date Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
G
Getthefunk
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 16 mai 2018
Version d'Excel : 2013 FR

Message par Getthefunk » 16 mai 2018, 11:26

Bonjour à toutes et à tous,

Voici mon problème : j'ai trouvé il y a quelques semaines une macro permettant de mettre à jour automatiquement une date à la date du jour dans une cellule dès lors qu'une modification était faite sur la ligne de cette cellule.
Toutefois, je me suis rendue compte que cela ne fonctionnait que ligne par ligne, et que la date ne se mettait à jour que pour la première ligne lors de modification en masse. Par exemple lorsqu'on fait un copié/collé sur plusieurs lignes, il n'y a que la date de la première ligne (celle selectionnée pour le collé) qui se met à jour.

Cela me pose 2 problèmes
1/ J'aimerais que toutes les cellules des lignes modifiées soit mises à jour. La macro a fait buguer un fichier important dans lequel on change régulièrement plusieurs cellules par colonnes, à travers du copié/collé ou bien lorsqu'on tire. (dans le fichier joint, j'ai tiré les références à partir de A0003 et il n'y a que la date pour A0004 qui s'est mise à jour, idem si on copie colle les couleurs à partir de la ref A0007)
2/ Je voudrais aussi que la date ne se mette à jour que lorsqu'on modifie les informations de certaines colonnes. Par exemple, dans le fichier joint, j'aimerais que la date modification (colonne B) ne se mette à jour que lorqu'on modifie les cellules de la colonne C (Nom Couleur) et de la colonne E (date lancement).

Voici la macro en question, avec 2 la ligne à partir de laquelle la mise à jour se fait, et B la colonne dans laquelle la mise à jour est inscrite :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 2 Then Cells(Target.Row, "B") = Date
End Sub

Je voudrais spécifier quelque part que cela doit être fait pour chaque ligne dans la selection (enfin je crois que c'est ce qui résoudrait mon 1er problème), mais je suis extrêmement novice en VBA et ne sais pas l'écrire... Et je n'ai pas vraiment d'idée pour mon deuxième problème, je ne sais pas écrire des conditions comme "si l'info dans telle et telle colonne change, alors la date modif change, sinon rien"

Merci beaucoup pour votre aide,

Getthefunk
MAJdateautomatique.xlsm
(13.14 Kio) Téléchargé 6 fois
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 16 mai 2018, 12:07

Bonjour,

A essayer :
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim isect As Range, r As Range
    If Target.Row < 3 Then Exit Sub
    Set isect = Intersect(Target, Union(Me.Columns("C"), Me.Columns("E")))
    If Not isect Is Nothing Then
        For Each r In isect.Rows
            Me.Cells(r.Row, 2) = Date
        Next r
    End If
End Sub
Cordialement.
G
Getthefunk
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 16 mai 2018
Version d'Excel : 2013 FR

Message par Getthefunk » 16 mai 2018, 12:19

Bonjour,

Merci pour votre aide!
Après discussion sur un autre forum, nous sommes arrivés à ce code là :
Private Sub Worksheet_Change(ByVal Target As Range)
Colonne = Target.Column
If Target.Row > 5 Then
   Select Case Colonne
       Case 1, 3, 5
        For Each Cell In Target
            Cells(Cell.Row, "B") = Date
        Next Cell
   End Select
End If
End Sub
Je vais l'utiliser parce que je le comprends mieux, mais merci beaucoup pour votre aide!

Bonne journée! :)
MFerrand a écrit :
16 mai 2018, 12:07
Bonjour,

A essayer :
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim isect As Range, r As Range
    If Target.Row < 3 Then Exit Sub
    Set isect = Intersect(Target, Union(Me.Columns("C"), Me.Columns("E")))
    If Not isect Is Nothing Then
        For Each r In isect.Rows
            Me.Cells(r.Row, 2) = Date
        Next r
    End If
End Sub
Cordialement.
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 16 mai 2018, 13:24

C'est redondant ! Je trouve le mien plus précis, plus sécurisé et prenant éventuellement en considération les collages simultanément sur plusieurs cellules... ! :mrgreen:
Mais aucune obligation de l'utiliser de ta part, je ne travaille que sur ce qu'il me convient de faire pour des raisons qui restent personnelles... :mrgreen:
Et je n'aime généralement pas fournir lorsque le demandeur pratique un multipostage, sans l'annoncer préalablement surtout... :mrgreen: Je sais à l'expérience que dans ces cas là la convergence méthodologique (si je puis dire) est rarement au rendez-vous et une réelle collaboration fait le plus souvent défaut. (Ce qui ne veut pas dire que je cesse de travailler sur le sujet... si j'ai commencé parce que tel ou tel point m'intéressait, je poursuis, mais je n'ai alors aucune raison de divulguer...)

Bonne continuation en ce qui te concerne. 8-)
G
Getthefunk
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 16 mai 2018
Version d'Excel : 2013 FR

Message par Getthefunk » 16 mai 2018, 15:23

Désolée, je ne pensais pas à mal, j'avais besoin d'une réponse rapidement et je n'ai pas l'habitude des forums, je ne pensais même pas avoir de réponse dans la journée :)
Et pour le code, je le comprends mieux pcq je suis novice et qu'il est plus simple...
Ceci dit, je comptais me pencher sur votre code plus tard pour essayer de le comprendre, je ne pose là aucun jugement de valeur...Et j'ai partagé ce code au cas où d'autres novices chercheraient la même chose que moi et comprendraient mieux celui là :)
Encore une fois, aucun jugement de valeur!
Et je suis désolée, je ne voulais pas vous offenser, j'apprécie vraiment votre aide :)

Bonne journée :)
MFerrand a écrit :
16 mai 2018, 13:24
C'est redondant ! Je trouve le mien plus précis, plus sécurisé et prenant éventuellement en considération les collages simultanément sur plusieurs cellules... ! :mrgreen:
Mais aucune obligation de l'utiliser de ta part, je ne travaille que sur ce qu'il me convient de faire pour des raisons qui restent personnelles... :mrgreen:
Et je n'aime généralement pas fournir lorsque le demandeur pratique un multipostage, sans l'annoncer préalablement surtout... :mrgreen: Je sais à l'expérience que dans ces cas là la convergence méthodologique (si je puis dire) est rarement au rendez-vous et une réelle collaboration fait le plus souvent défaut. (Ce qui ne veut pas dire que je cesse de travailler sur le sujet... si j'ai commencé parce que tel ou tel point m'intéressait, je poursuis, mais je n'ai alors aucune raison de divulguer...)

Bonne continuation en ce qui te concerne. 8-)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message