Excel-MAJ date si modif cellule de la ligne
Résolu
Nicoco
-
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, voila j'ai un tableau de suivi de projets avec une ligne correspondant à 1 projet et une trentaine de colonnes qui correspondent à différents aspects des projets.
J'essaye de créer une colonne date de Mise à jour qui m'indiquerait quand des infos sur un projet ont été ajoutés (bcp de projets, bcp de monde qui gèrent ces projets du coup c un peu compliqué à suivre).
Par exemple, j'ai 40 lignes de projets et 30 colonnes correspondant à un aspect, si je modifie un aspect de la ligne 13 ça me mettra la date dans la cellule de MAJ de la ligne 13 à jours , etc, etc...
Pour l'instant la date de modif se fait manuellement et donc, y a des oublis et je souhaiterais le faire automatiquement. J'ai trouvé des réponse dans les forum quand il s'agissait de MAJ la date si une feuille excel était modifiée ou une cellule, mais pas une ligne entière.
Est-ce que quelqu'un aurait une idée?
Merci d'avance.
ps : je suis un peu une buse pour les matrices sous excel, je me suis arrêté au tableau croisé dynamique... mais même pas peur si faut en faire une!
J'essaye de créer une colonne date de Mise à jour qui m'indiquerait quand des infos sur un projet ont été ajoutés (bcp de projets, bcp de monde qui gèrent ces projets du coup c un peu compliqué à suivre).
Par exemple, j'ai 40 lignes de projets et 30 colonnes correspondant à un aspect, si je modifie un aspect de la ligne 13 ça me mettra la date dans la cellule de MAJ de la ligne 13 à jours , etc, etc...
Pour l'instant la date de modif se fait manuellement et donc, y a des oublis et je souhaiterais le faire automatiquement. J'ai trouvé des réponse dans les forum quand il s'agissait de MAJ la date si une feuille excel était modifiée ou une cellule, mais pas une ligne entière.
Est-ce que quelqu'un aurait une idée?
Merci d'avance.
ps : je suis un peu une buse pour les matrices sous excel, je me suis arrêté au tableau croisé dynamique... mais même pas peur si faut en faire une!
A voir également:
- Date modification cellule excel
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Suivi de modification word - Guide
- Proteger cellule excel - Guide
- Word et excel gratuit - Guide
14 réponses
bonjour
pour les matrices sous excel, ... mais même pas peur si faut en faire une!
C'est plutôt une macro événementielle que je te proposerai (mode d'emploi éventuel) à mettre dans la feuille concernée.
J'ai mis la date en colonne AF, à toi de modifier pour adapter à la tienne.
pour les matrices sous excel, ... mais même pas peur si faut en faire une!
C'est plutôt une macro événementielle que je te proposerai (mode d'emploi éventuel) à mettre dans la feuille concernée.
Private Sub Worksheet_Change(ByVal sel As Range) Application.EnableEvents = False Cells(sel.Row, "AF").Value = Date + Time Application.EnableEvents = True End Sub
J'ai mis la date en colonne AF, à toi de modifier pour adapter à la tienne.
bonjour
Tu peux aussi masquer la colonne date de mise à jour et l'afficher seulement lorsque tu en as l'utilité.
Tu peux aussi masquer la colonne date de mise à jour et l'afficher seulement lorsque tu en as l'utilité.
bonjour
Nickel, ça marche!
Merci de le faire savoir car c'est notre seul gagne pain !
Pour l'instant la date de modif se fait manuellement
Avec cette macro si quelqu'un continue de le faire sa date sera écrasée.
Nickel, ça marche!
Merci de le faire savoir car c'est notre seul gagne pain !
Pour l'instant la date de modif se fait manuellement
Avec cette macro si quelqu'un continue de le faire sa date sera écrasée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok , merci de le préciser, je leur ferais un petit mail qui va bien pour pas qu'ils écrasent les dates.
Bon, en fait, j'ai un petit soucis sur la macro. Je l'avais testé sur mon pc perso et ça marchait parfaitement, mais sur le fichier du boulot ça plante. En fait, le problème viendrait du fait que j'ai déjà une macro et que du coup ça doit faire conflit dans les lignes de code (en gros il me dit 'erreur de compilation: Nom ambigu detecté :Worksheet_Change").
J'ai ça dans ma feuille de commande :
Private Sub Worksheet_Change(ByVal sel As Range)
Application.EnableEvents = False
Cells(sel.Row, "B").Value = Date + Time
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal sel As Range)
ligne = Target.Row
colonne = A
If Target.Value = 0 Then Target.Interior.ColorIndex = 2
If Target.Value = 1 Then Target.Interior.ColorIndex = 34
If Target.Value = 2 Then Target.Interior.ColorIndex = 35
If Target.Value = 3 Then Target.Interior.ColorIndex = 36
If Target.Value = 4 Then Target.Interior.ColorIndex = 40
If Target.Value = 5 Then Target.Interior.ColorIndex = 4
If Target.Value = 6 Then Target.Interior.ColorIndex = 3
If Target.Value = 7 Then Target.Interior.ColorIndex = 3
End Sub
J'ai essayé plusieur combinaison mais ça ne marche pas. Si tu as une idée de la manip que je dois faire ?
Merci en tout cas.
J'ai ça dans ma feuille de commande :
Private Sub Worksheet_Change(ByVal sel As Range)
Application.EnableEvents = False
Cells(sel.Row, "B").Value = Date + Time
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal sel As Range)
ligne = Target.Row
colonne = A
If Target.Value = 0 Then Target.Interior.ColorIndex = 2
If Target.Value = 1 Then Target.Interior.ColorIndex = 34
If Target.Value = 2 Then Target.Interior.ColorIndex = 35
If Target.Value = 3 Then Target.Interior.ColorIndex = 36
If Target.Value = 4 Then Target.Interior.ColorIndex = 40
If Target.Value = 5 Then Target.Interior.ColorIndex = 4
If Target.Value = 6 Then Target.Interior.ColorIndex = 3
If Target.Value = 7 Then Target.Interior.ColorIndex = 3
End Sub
J'ai essayé plusieur combinaison mais ça ne marche pas. Si tu as une idée de la manip que je dois faire ?
Merci en tout cas.
bonjour
Bien sûr tu ne peux avoir qu'une seule procédure pour un nom mais ainsi cela doit fonctionner :
Bien sûr tu ne peux avoir qu'une seule procédure pour un nom mais ainsi cela doit fonctionner :
Private Sub Worksheet_Change(ByVal Target As Range) ' mise à jour date modification Application.EnableEvents = False Cells(sel.Row, "B").Value = Date + Time Application.EnableEvents = True ' fonction présente ligne = Target.Row colonne = A If Target.Value = 0 Then Target.Interior.ColorIndex = 2 If Target.Value = 1 Then Target.Interior.ColorIndex = 34 If Target.Value = 2 Then Target.Interior.ColorIndex = 35 If Target.Value = 3 Then Target.Interior.ColorIndex = 36 If Target.Value = 4 Then Target.Interior.ColorIndex = 40 If Target.Value = 5 Then Target.Interior.ColorIndex = 4 If Target.Value = 6 Then Target.Interior.ColorIndex = 3 If Target.Value = 7 Then Target.Interior.ColorIndex = 3 End Sub
Salut,
j'ai fais un copier coller de la procédure mais ça marche pas non plus, il me met qu'il y a un probleme et me demande si je veux mettre "fin" ou le débogage".
J'ai réessayé tout à l'heure de bidouiller un peu mais sans succès.
Si tu as une autre idée, merci!
j'ai fais un copier coller de la procédure mais ça marche pas non plus, il me met qu'il y a un probleme et me demande si je veux mettre "fin" ou le débogage".
J'ai réessayé tout à l'heure de bidouiller un peu mais sans succès.
Si tu as une autre idée, merci!
bonjour
Effectivement j'avais regardé en coup de vent et sans tester (honteux)
Effectivement j'avais regardé en coup de vent et sans tester (honteux)
Private Sub Worksheet_Change(ByVal Target As Range) ' mise à jour date modification Application.EnableEvents = False Cells(Target.Row, "B").Value = Date + Time Application.EnableEvents = True ' fonction présente If Target.Value = 0 Then Target.Interior.ColorIndex = 2 If Target.Value = 1 Then Target.Interior.ColorIndex = 34 If Target.Value = 2 Then Target.Interior.ColorIndex = 35 If Target.Value = 3 Then Target.Interior.ColorIndex = 36 If Target.Value = 4 Then Target.Interior.ColorIndex = 40 If Target.Value = 5 Then Target.Interior.ColorIndex = 4 If Target.Value = 6 Then Target.Interior.ColorIndex = 3 If Target.Value = 7 Then Target.Interior.ColorIndex = 3 End Sub
Salut,
pas de soucis, c'est déjà bien sympa de m'aider.
Ca marche maintenant, ça change bien la date et les couleurs des cellules selon que je mets 0 à 7 (par contre du coup le changement de couleur ne se limite plus à la colonne A, mais c'est pas grave vu que c la seul colonne destinée à recevoir ces chiffres).
En tout cas bien merci bien, ça m'aide déjà pour mes suivis!!
Bonne journée
pas de soucis, c'est déjà bien sympa de m'aider.
Ca marche maintenant, ça change bien la date et les couleurs des cellules selon que je mets 0 à 7 (par contre du coup le changement de couleur ne se limite plus à la colonne A, mais c'est pas grave vu que c la seul colonne destinée à recevoir ces chiffres).
En tout cas bien merci bien, ça m'aide déjà pour mes suivis!!
Bonne journée
bonjour
par contre du coup le changement de couleur ne se limite plus à la colonne A
Avant non plus, si j'ai enlevé cette ligne c'est qu'elle ne servait à rien. Si tu veux limiter à la colonne A il faut que l'instruction fonctionne et faisant comme ceci par exemple
Ainsi les couleurs ne sont traitées que si tu saisis en colonne A
par contre du coup le changement de couleur ne se limite plus à la colonne A
Avant non plus, si j'ai enlevé cette ligne c'est qu'elle ne servait à rien. Si tu veux limiter à la colonne A il faut que l'instruction fonctionne et faisant comme ceci par exemple
Private Sub Worksheet_Change(ByVal Target As Range) ' mise à jour date modification Application.EnableEvents = False Cells(Target.Row, "B").Value = Date + Time Application.EnableEvents = True ' fonction présente If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub If Target.Value = 0 Then Target.Interior.ColorIndex = 2 If Target.Value = 1 Then Target.Interior.ColorIndex = 34 If Target.Value = 2 Then Target.Interior.ColorIndex = 35 If Target.Value = 3 Then Target.Interior.ColorIndex = 36 If Target.Value = 4 Then Target.Interior.ColorIndex = 40 If Target.Value = 5 Then Target.Interior.ColorIndex = 4 If Target.Value = 6 Then Target.Interior.ColorIndex = 3 If Target.Value = 7 Then Target.Interior.ColorIndex = 3 End Sub
Ainsi les couleurs ne sont traitées que si tu saisis en colonne A
ok, j'y comprend un peu mieux, du coup je pourrais manipuler un peu la procédure si je veux modifier certaines choses.
En tout cas merci encore pour avoir passé du temps sur mon pb!
A+
En tout cas merci encore pour avoir passé du temps sur mon pb!
A+
Bonjour,
J'essaie d'afficher la date et heure de modification d'une cellule.
Voici mon code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aRow As Integer
aRow = Target.Row
CurrentSheet.Cells(aRow, "G").Value = Date
CurrentSheet.Cells(aRow, "H").Value = Time
End Sub
Mais Excel plante au nivau de l'heure parce que ca continue à raffraichir le nombre de seconde en boucle pendant 2 minutes puis Excel plante.
Est ce la méthode Time ? ou est ce qu'il me manque une instruction ?
Merci.
J'essaie d'afficher la date et heure de modification d'une cellule.
Voici mon code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aRow As Integer
aRow = Target.Row
CurrentSheet.Cells(aRow, "G").Value = Date
CurrentSheet.Cells(aRow, "H").Value = Time
End Sub
Mais Excel plante au nivau de l'heure parce que ca continue à raffraichir le nombre de seconde en boucle pendant 2 minutes puis Excel plante.
Est ce la méthode Time ? ou est ce qu'il me manque une instruction ?
Merci.
Merci pour votre réponse rapide, mais j'arrive pas à faire marcher la macro. C'est quoi le nom du fichier dans cette macro? et ça représente koi "sel.row"? ou "sel As Range"? Merci encore de me répondre
C'est quoi le nom du fichier dans cette macro?
Le nom du fichier n'a rien à voir dans cette macro.
ça représente koi "sel.row"?
La ligne qui vient d'être modifiée.
avec cette instruction tu mets en colonne A la date, l'heure et le nom de l'auteur, mais il faut bien laisser les autres lignes pour éviter que la macro boucle.
Je rencontre un souci avec cette macro. Elle ne permet plus l'annulation (ctrl Z).
Pouvez-vous m'aider svp ?
Merci
Elle ne permet plus l'annulation (ctrl Z)
Comme toutes les macros sauf si la macro le gère et comme le principe de cette macro c'est d'enregistrer la dernière modification de la ligne, si tu annules l'enregistrement de la macro, autant ne pas mettre la macro !
merci pour cette macro qui fonctionne parfaitement pour l'ajout d'une date de modif dès qu'une cellule de la ligne est modifiée !
ER