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

Macros et VBA Excel Discussion :

appliquer une macro prenant en compte l'ensemble des feuilles d'un classeur [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 7
    Par défaut appliquer une macro prenant en compte l'ensemble des feuilles d'un classeur
    Bonjour,

    J'ai un classeur avec plusieurs feuilles.
    Nous partageons ce classeur en réseau et je souhaite qu'il y est un message qui s'affiche sur une des feuilles (la principale) avec la date de dernière modifs, quelle que soit la feuille sur laquelle la modif a lieu.

    Je n'y connait pas grand chose en vba, mais j'ai trouvé un code qui fonctionne pour une feuille :
    Ce code est placé dans feuil 1 :

    Nom : Capture 1.JPG
Affichages : 208
Taille : 40,0 Ko

    Ca fonctionne très bien si on fait la modif sur la feuille.

    Le truc c'est que j'aimerai que ça fonctionne si on fait une modif sur n'importe quelle feuille.
    J'ai essayé en modifiant le code et en le plaçant dans "ThisWorkbook" :

    Nom : Capture2.JPG
Affichages : 201
Taille : 48,3 Ko

    Et la c'est le drame !
    j'ai une erreur d'exécution 1004, la méthode "intersect de l'objet global a échoué"
    Ce qui est étrange c'est que lorsque je clique sur fin, quand j'ai ce message d'erreur, ça m'indique la bonne heure de mise à jour, donc ça marche presque.

    Comme je vous le disais mes notions en vba sont plus que limitées, donc si il y a une bonne âme pour m'expliquer ce qu'il faut modifier dans l'intersect

    D'avance merci.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne comprends même pas l'intérêt de cette ligne.
    J'ai l'impression qu'elle veut dire : si la cellule courante n'est pas dans la feuille courante, alors ne pas exécuter.
    En plus, je ne vois pas l'intérêt du ":" après le "Then".

    Perso, au lieu de me baser sur l'évènement Change, j'utiliserai plutôt l'évènement BeforeSave puisque, quelques soient les modifs, si elles ne sont pas sauvegardées c'est comme si elles n'avaient pas existées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel as Boolean) 
       Worksheets("Feuil1").Range("L2") = "dernière mise à jour le " & Format(Now(), "dd/mm/yy") à & Format(Now(), "h\hmm'ss''")
    End Sub
    Perso, je trouverais plus judicieux de ne mettre que Now() dans la cellule et de rajouter le reste du texte en jouant sur les formats de nombre.

    PS : la prochaine fois, fais une copie texte de ton code (de préférence entre balises CODE) plutôt qu'une copie image dont il est impossible de récupérer le contenu.

  3. #3
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 7
    Par défaut
    C'est top! ça marche nickel.

    Merci.

  4. #4
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 7
    Par défaut
    En fait je me suis réjouis trop vite.

    Car la date de mise à jour se modifie désormais à chaque fois qu'on sauvegarde, et ce, même si on ne modifie aucune case du classeur. Or c'est vraiment ça l’intérêt premier, savoir quelle est la date de la dernière modification. (même si je te l'accorde, elle va souvent être liée à la date de sauvegarde)

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par mastafungus Voir le message
    la date de mise à jour se modifie désormais à chaque fois qu'on sauvegarde, et ce, même si on ne modifie aucune case du classeur.
    A quoi sert de sauvegarder si on n'a pas fait de modifications ?

  6. #6
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 7
    Par défaut
    C'est un tableau qui sera amené à être vu par pas mal de gens, souvent juste en mode consultation, et je ne sais pas si parmi ces gens certains ne vont pas enregistrer machinalement avant de quitter.

    Encore une fois, la date et l'heure de sauvegarde va correspondre dans la plupart des cas à la date et l'heure des modifs, mais si on voulait se contenter de cela il n'y avait pas besoin de macro, la date de sauvegarde on la voit directe dans l'explorateur Windows.

    Et puis malgré tout ça m’intéresse de savoir quels codes permettraient de donner précisément l'heure des dernières modifs.

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range) 
       Worksheets("Feuil1").Range("L2") = "dernière mise à jour le " & Format(Now(), "dd/mm/yy") à & Format(Now(), "h\hmm'ss''")
    End Sub

  8. #8
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 7
    Par défaut
    C'est parfait! Et tellement simple avec des gars qui maîtrise.

    T'es un boss Menhir!

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

Discussions similaires

  1. [XL-2007] ajustement automatique des colonnes dans l'ensemble des feuilles d'un classeur
    Par JYPIQ62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2012, 20h44
  2. Réponses: 3
    Dernier message: 13/03/2008, 16h10
  3. [VBA-E] Comment appliquer une macro sur plusieurs cellules
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 25/01/2007, 10h54
  4. appliquer une macro a une plage de cellule variable
    Par johndeuf dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/11/2006, 16h18
  5. Appliquer une macro à une image
    Par erwan99 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/04/2006, 14h50

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