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 :

Auto macro affichage onglet historique [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Par défaut Auto macro affichage onglet historique
    Bonjour à tous,

    Mon problème est le suivant : je voudrais écrire une macro qui écrirait une macro dans ThisWorkbook. Cette macro se lancerait à l'ouverture du classeur et permettrait d'afficher l'onglet historique à chaque ouverture.

    J'arrive à écrire dans ThisWorkbook en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .VBComponents(1).CodeModule
    'et
    .InsertLines X + 1 "..."
    J'appelle ma fonction ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'destinationWorkbook.KeepChangeHistory = True 'active le suivi des révisions
    'destinationWorkbook.SaveAs AccessMode:=xlShared 'partage le classeur ce qui est obligatoire pour que le suivi fonctionne mais cette ligne 
             'fait planter Excel sans déclencher d'erreur (chargement infini...)
    CreateMacroInThisWorkbook
    La fonction qui écrit la macro d'affichage de l'onglet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Function CreateMacroInThisWorkbook()
        Dim Line As Integer
     
        With destinationWorkbook.VBProject.VBComponents(1).CodeModule
            Line = .CountOfLines
            .InsertLines Line + 1, "Private Sub Workbook_Open()"
            .InsertLines Line + 2, "With ThisWorkbook"
                .InsertLines Line + 3, ".HighlightChangesOptions When:=xlAllChanges, Who:=""Tous"""
                .InsertLines Line + 4, ".ListChangesOnNewSheet = True"
                .InsertLines Line + 5, ".HighlightChangesOnScreen = False"
            .InsertLines Line + 6, "End With"
            .InsertLines Line + 7, "End Sub"
        End With
     
    End Function
    Sans macro, il faut activer le suivi puis sauvegarder avant de pouvoir faire apparaître l'onglet historique.

    Si le classeur n'est pas partagé, pas de suivi possible. Si le classeur est partagé pas d'édition de macro possible (on ne peut même pas les afficher).

    La méthode .HighlightChangesOptions échoue la plupart du temps. Si j'écris d'abord la macro puis active le suivi et sauvegarde, il se passe quelque chose au démarrage (chargement), mais l'historique ne s'affiche pas.

    C'est sûrement très simple, mais je ne comprends pas comment parvenir à contourner cette difficulté !

    Auriez-vous des pistes ?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Nagel Tha Voir le message
    Bonjour,

    C'est quoi un onglet historique ?

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Eric,
    C'est probablement celui du siècle. Tout le monde en parle dans le monde entier.
    Même mon boucher (qui, lui, cherche à me le vendre).

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 242
    Par défaut
    Bonjour,

    A tout hasard, essaie de remplacer dans ton code : par

    EDIT : En fait non, j'aurais du tester avant.

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Par défaut
    Citation Envoyé par zenpbb Voir le message
    Bonjour,

    A tout hasard, essaie de remplacer dans ton code : par
    Merci pour ta réponse

    J'ai déjà essayé et cela n'a pas fonctionné. J'aurais tendance à dire que le problème serait du côté du partage du classeur et si ce n'est pas ça je n'ai vraiment aucune idée

    Citation Envoyé par zenpbb Voir le message
    EDIT : En fait non, j'aurais du tester avant.
    Au moins tu as apporté une réponse constructive qui pourrait en aider d'autres selon leurs paramètres régionaux

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Par défaut
    C'est une fonction Excel de base :

    https://support.office.com/fr-fr/art...d-eeb23725bd15

    RÉVISION
    Suivi des Modifications
    Afficher les modifications

    Nom : Sans titre.png
Affichages : 1006
Taille : 30,0 Ko

    EDIT :
    Ce site explique bien ce que c'est avec captures d'écran à l'appui :
    http://www.info-3000.com/excel/histo...ment/index.php

    Sinon pour vous convaincre essayez de renommer un onglet (une feuille de calcul/Worksheet) "historique" et vous vous rendrez compte que le nom est réservé car c'est un onglet dont le nom change en fonction des paramètres régionaux qui ne s'affiche qui sur demande quand le classeur est partagé et que le suivi des modifications est activé
    Sinon tente

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Nagel Tha Voir le message
    Merci pour la réponse. Mais cela donnerait quoi avec l'enregistreur de macro pour afficher cet onglet historique ?

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Merci pour la réponse. Mais cela donnerait quoi avec l'enregistreur de macro pour afficher cet onglet historique ?
    Cela donne le code que j'ai écrit en fait xD

    À la différence que l'objet utilisé est ActiveSheet et que toutes ces instructions se suivent. De mémoire :
    (Mon PC est en réparation et l'ordinateur que j'utilise à la bibliothèque impose certaines restrictions qui m'empêche d'utiliser cette fonctionnalité de suivi)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Macro 1()"
    ActiveSheet.KeepChangeHistory = True
    ActiveWorkbook.SaveAs AccessMode:=xlShared 'un autre paramètre apparaît : xlFileFormat mais le renseigner ne m'a paru ni utile ni compatible
    'avec le fait que différents formats coexitent (.xls et .xlsm dans les 300 classeurs Workbooks à mettre à jour
    With ActiveSheet
    .HighlightChangesOptions When:=xlAllChanges, Who:=""Tous""
    .ListChangesOnNewSheet = True
    .HighlightChangesOnScreen = False
    End With
    End Sub

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

Discussions similaires

  1. [PPT-2007] macro affichage et fermeture
    Par TOGOBLANC dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 05/12/2010, 21h54
  2. macro export onglet
    Par hlander dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/02/2009, 16h07
  3. Problème Affichage onglet
    Par Grulf dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/06/2008, 09h22
  4. [PHP-JS] affichage onglets php problématique
    Par jp31810 dans le forum Langage
    Réponses: 1
    Dernier message: 18/04/2008, 20h07
  5. Macro affichage de colonne selon le titre de la colonne
    Par FreddyNB dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/11/2007, 15h36

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