Avoir la date de la derniére modification de chaque feuille de mon fichier

karen55

New Member
Joined
Oct 27, 2022
Messages
4
Office Version
  1. 2016
Platform
  1. Windows
Bonjour, je souhaite avoir via une macro la date de la derniére modification de chaque feuille de mon fichier excel et que le résultat soit regroupé dans une notre feuile que je vais appeler "mises à jours"
 

Excel Facts

What is the fastest way to copy a formula?
If A2:A50000 contain data. Enter a formula in B2. Select B2. Double-click the Fill Handle and Excel will shoot the formula down to B50000.
Essaye:
VBA Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim myMatch, myNext As Long
On Error GoTo GetOut
Application.EnableEvents = False
myMatch = Application.Match(Sh.Name, Sheets("mises à jours").Range("A1:A100"), False)
If IsError(myMatch) Then
    myNext = Sheets("mises à jours").Cells(Rows.Count, "A").End(xlUp).Row + 1
    Sheets("mises à jours").Cells(myNext, 1) = Sh.Name
    Sheets("mises à jours").Cells(myNext, 2) = Now
Else
    Sheets("mises à jours").Cells(myMatch, 2) = Now
End If
GetOut:
Application.EnableEvents = True
End Sub
A copier dans le module ThisWorkbook

La liste des feuilles (dans "mises à jours") est mise à jour lorsqu'une nouvelle feuille est modifiée

(Traduit via translate.google.com)
 
Upvote 0
Essaye:
VBA Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim myMatch, myNext As Long
On Error GoTo GetOut
Application.EnableEvents = False
myMatch = Application.Match(Sh.Name, Sheets("mises à jours").Range("A1:A100"), False)
If IsError(myMatch) Then
    myNext = Sheets("mises à jours").Cells(Rows.Count, "A").End(xlUp).Row + 1
    Sheets("mises à jours").Cells(myNext, 1) = Sh.Name
    Sheets("mises à jours").Cells(myNext, 2) = Now
Else
    Sheets("mises à jours").Cells(myMatch, 2) = Now
End If
GetOut:
Application.EnableEvents = True
End Sub
A copier dans le module ThisWorkbook

La liste des feuilles (dans "mises à jours") est mise à jour lorsqu'une nouvelle feuille est modifiée

(Traduit via translate.google.com)
merci beaucoup pour ta réponse, en faite ce code donne la date et l'heure de la derniere modification de tous le fichier, moi ce que je cherche c'est d'avoir la date de modification de chaque feuille
 
Upvote 0
merci beaucoup pour ta réponse, en faite ce code donne la date et l'heure de la derniere modification de tous le fichier, moi ce que je cherche c'est d'avoir la date de modification de chaque feuille

Mon code écrit dans la feuille "mises à jours" la date de la dernière modification de chaque feuille du fichier

MULTI_C21026.xlsm
ABC
1Nom du feuilDernière modification
2mises à jours28/10/2022 19:12
3Foglio228/10/2022 19:11
4Foglio128/10/2022 19:11
5
6
mises à jours
 
Upvote 0
Mon code écrit dans la feuille "mises à jours" la date de la dernière modification de chaque feuille du fichier

MULTI_C21026.xlsm
ABC
1Nom du feuilDernière modification
2mises à jours28/10/2022 19:12
3Foglio228/10/2022 19:11
4Foglio128/10/2022 19:11
5
6
mises à jours
Bonjour,
Je me permets de revenir sur ce code, qui m'aide beaucoup mais j'aurais besoin d'une variante svp.
Ce code fait en sorte d'archiver toutes les modifications de toutes les feuilles. Comment peut-on faire en sorte :
=> qu'elle ne reprenne que la dernière modification (en écrasant les précédentes) ?
=> qu'elle ne soit active que sur certaines feuilles et pas d'autres ?

Merci beaucoup pour votre aide !
 
Upvote 0
Le code ne garde déjà que la dernière modification, en écrasant les informations de modification précédentes.
Pour ignorer certaines feuilles, nous pouvons ajouter ces instructions à cet position:
VBA Code:
Dim myMatch, myNext As Long
'Nouveau code >>>
Dim Ignore

Ignore = Array("SheetA", "Foglio5", "mises à jours")    '<<< Liste des feuilles à ignorer
If Not IsError(Application.Match(Sh.Name, Ignore, False)) Then Exit Sub
'<<< Fin du nouveau code

On Error GoTo GetOut
'etc etc
Modifiez la ligne marquée <<<
 
Upvote 0
Bonjour,
Merci beaucoup de votre réponse. Je vais regarder pour intégrer votre proposition de code pour ignorer certaines feuilles.
J'ai vérifié et Excel recréée bien une ligne dès lors que la dernière ligne indiquant une modification n'est pas celle qui vient de l'être. A titre d'exemple, j'ai mis à jour successivement les feuilles "mises à jour", "1","2","3","4","5", puis j'ai ai remodifié la feuille "2", et Excel me recréée bien une nouvelle ligne :

Nom de la feuilledate de modification
mises à jours
26/04/2023 10:07​
1​
26/04/2023 10:04​
2​
26/04/2023 10:04​
3​
26/04/2023 10:04​
4​
26/04/2023 10:04​
5​
26/04/2023 10:05​
2​
26/04/2023 10:06​
 
Upvote 0
Les feuilles ont généralement un nom, pas un numéro...

Pour vivre avec des noms numériques, modifiez cette ligne :
VBA Code:
    Sheets("mises à jours").Cells(myNext, 1) = "'" & Sh.Name
Notez "'" & ajouté
 
Upvote 0
Bonjour, juste pour vous remercier : je viens d'intégrer vos codes et ça marche nickel !
Bonne journée !
 
Upvote 0

Forum statistics

Threads
1,224,828
Messages
6,181,204
Members
453,022
Latest member
RobertV1609

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top