Comment marche VBA

Résolu
jbg85 -  
jbg85 Messages postés 6 Statut Membre -
Bonjour,
Comment fait-on pour que dans une cellule d'excel s'affiche la date de modification du classeur. J'ai vu qu'il fallait mettre ce programme dans this workbook:
Dim modif As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If modif = True Then
Sheets("Feuil1").Range("A1").Value = "Dernière Révision le " & Format(Date, "dd/mm/yyyy")
End If
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
modif = True
End Sub

Mais comment on fait dans VBA et comment ensuite on fait pour que ça marche dans le classeur.

Merci par avance
Configuration: Windows XP
Firefox 2.0.0.14

5 réponses

  1. amigo
     
    Bonjour,

    La date qui est ecrite en A1 est la date de dernière utilisation, et non la date de dernière modification, c'est à dire que même si tu ne fais aucune modification, le simple fait d'ouvrir le tableau met à jour la date si tu enregistre avant de quitter.

    Tu n'as pas besoin de faire une macro pour ça, une simple formule en A1 suffit: =AUJOURDHUI()

    Par contre, tu peut améliorer le code de la macro avec cette logique:
    Si modifications enregistrées alors mettre a jour la date et quitter, sinon quitter sans enregister.

    Je ne sais pas si je me suis fait comprendre.

    A+.
    0
    1. jbg85 Messages postés 6 Statut Membre
       
      Mais comment on fait pour mettre dans une cellule de ma feuille la date de modification de la feuille.
      Je m'explique, quand j'ouvre et je ferme la feuille ou le classeur je ne veux pas que la date change. Je veux que la date change juste quand je fais une modification dans mon tableau.
      Merci par avance.
      0
      1. zavenger Messages postés 817 Statut Membre 161 > jbg85 Messages postés 6 Statut Membre
         
        a partir du moment ou tu n'auras pas sauvegardé ton classeur, la cellule ne sera pas modifiée ...
        0
  2. zavenger Messages postés 817 Statut Membre 161
     
    cela marchera mieux si tu ajoutes

    Dim Modif As Boolean

    en dehors de tes 2 fonctions, afin que la variable soit connue dans les 2 fonctions
    0
  3. amigo
     
    RE,

    Cette procédure dans le code de ThisWorkBook devrait faire ce que tu souhaite
    Chaque fois que tu fais une modif dans une feuille, la cellule A1 de la feuille modifiée est mise à jour.

    A+.
    0
  4. amigo
     
    j'ai oublié la procédure

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    ActiveSheet.Range("a1").Value = "Dernière Révision le " & Format(Date, "dd/mm/yyyy")
    End Sub
    0
    1. jbg85 Messages postés 6 Statut Membre
       
      mais où met on cette procédure et comment on fait pour que ça marche?
      Je suis un novis avec VBA
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. amigo
     
    Voilà ce qu'il faut faire:

    Dans le menu outils -> Macros -> Visual Basic Editor
    ou bien appuye sur la touche Alt et la touche F11

    Sur le coté gauche, clic droit dur ThisWorkBook et selectionnes Code

    Dans l'éditeur tu colle la procédure

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    ActiveSheet.Range("a1").Value = "Dernière Révision le " & Format(Date, "dd/mm/yyyy")
    End Sub

    Tu retournes dans ta feuille Excel et modifies une cellule, la cellule A1 est mise à jour.
    Choisis une autre feuille, fais une modif et la cellule A1 est mise à jour.

    C'est tout.
    0
    1. jbg85 Messages postés 6 Statut Membre
       
      merci
      0