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

VBA Word Discussion :

Menu custom via VBA [WD-2010]


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 40
    Points : 28
    Points
    28
    Par défaut Menu custom via VBA
    Salutations,

    J'ai actuellement pour mission de débuger un template word 2010. Je n'ai jamais vraiment fait de VBA mais on devine assez facilement les modifications à faire pour corriger les défauts des macros déjà présentes.
    Toutefois, c'est au niveau des menus personnalisés que je bloque, impossible de trouver une réponse satisfaisante.

    Mon problème est le suivant:
    Mon prédécesseur a crée un menu custom (menu assistant, voir plus bas), contenant entre autre un sous menu déroulant. Je ne comprends pas où est géré ce menu. Dans le code vba qui tourne en arrière boutique, il y a des instructions pour lier les différents items aux macro, mais rien de plus.
    Je ne sais pas où est défini le menu en question: son contenu, son apparence, ses icônes. Assez gênant pour supprimer les options inutiles et en ajouter de nouvelles.

    Nom : KSikMV.jpg
Affichages : 361
Taille : 59,9 Ko

    Nom : JQ1Ncn.jpg
Affichages : 334
Taille : 53,0 Ko

    Là ou cela devient vraiment curieux, c'est que dans l'option Personnaliser le Ruban, le menu en question est grisé. Impossible de le modifier. J'ignore pourquoi, on peut cependant modifier tous les autres menus. Il me semble par ailleurs que ce menu est celui défini par défaut dans la config xml de word. En déverrouillant le template qui est protégé par un password, la modification du menu par cet intermédiaire n'est toujours pas possible.
    En ce qui concerne le XML justement, il n'y a aucun schéma XML/kit d'extension XML défini ou actif.

    Quelqu'un serait-il susceptible de m'éclairer ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Ce sont des barres d'outils qui ont été créées avec une version précédente de Word.
    Le ruban est apparu avec la version 2007 et l'utilisation d'un modèle ou document avec des barre d'outils donne cet aspect.

    C'est la raison pour laquelle tu n'as pas accès via l'outil de personnalisation.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Ok je vois ...
    Donc si je comprends bien, depuis word 2007 et l'apparition du ruban, il n'est plus possible de faire des menus déroulant à proprement parlé comme c'est le cas ici, et par conséquent pouvoir les modifier.

    Je vais tâcher de regarder ca avec un office plus vieux du coup. C'est bête, j'ai migré de 2003 à 2010 il y a même pas un mois. Merci pour les infos.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Si, on peut toujours les faire, mais la méthode diffère.

    http://heureuxoli.developpez.com/office/word/ruban/
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    J'ai lu attentivement ton guide, ce fût fort intéressant mais je n'y ai rien trouvé qui puisse me servir. Comme je le supposais, les fichiers xml liés au documents sont vide.
    En tout cas, plus j'avance dans mon travail, et plus je trouve le comportement de word imprévisible. Parfois au lancement de word, une macro va déconner, parfois elle va fonctionner, et parfois elle va être simplement ignorée et ce sans raisons apparentes. Un problème peut survenir de manière impromptue alors qu'avant, tout allait bien.
    Vraiment curieux tout ca ...
    edit: pour poursuivre ce raisonnement ... en général, les comportements anarchiques sont provoqués par des variables mal initialisées, ou qui utilisent une précédente instanciation. Il existe un genre de garbage collector pour le vba ?

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    J'ai très rarement des fonctionnements anarchiques.
    En général, si je souhaite qu'un code soit exécuté, il l'est au moment choisi. Ce qui me manque parfois, c'est de deviner l'action stupide qu'un utilisateur va tenter.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Ah ca, l'utilisateur ... hier j'en ai un qui n'a même pas réussi à utiliser ses logs de connexions, sur un portail web sur lequel je bosse.
    Je pense que c'est plus ou moins la même chose ici, il y a pas mal de bugs que je dois corriger mais que je ne parviens pas à reproduire, genre "document trop volumineux", alors que le fichier word ne dépasse pas les 10 mo.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Concernant le problème initial, je pense que je vais recréer un template propre, en ajoutant moi même les menus. Ce n'est certainement pas la manière la plus rapide de régler le problème, mais au moins je serais tranquille.
    (je laisse encore un peu le sujet ouvert au cas où)

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Tout dépend de la complexité du modèle.
    C'est parfois plus simple et au moins, tu connaîtras tes modèles.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    En ce qui concerne la simplicité, je ne sais pas trop. Je viens de tomber sur cette chose là:

    Citation Envoyé par Wild VBA line appeared
    doc.AttachedTemplate.AutoTextEntries("nom_du_template").Insert
    Comme d'hab, aucun template lié au document, autre que le document lui même. Si je repars de zéro en ne récupérant que le VBA qui tourne derrière et la mise en page apparente (les tableaux, signets et autre déjà mis en forme de base), il me faudra recréer les menus, et visiblement en plus un certain nombre d'autres éléments.
    Ces dits éléments, j'ai finalement trouvé qu'ils étaient planqués dans Insertion ->QuickPart. Il y a vraiment beaucoup, beaucoup d'éléments qui ont été ajoutés. Et aucun moyen d'en avoir l’aperçu (du moins sous word 2010, visiblement ca déconne). On doit forcément pouvoir les exporter et les modifier, mais je n'ai pas encore trouvé comment.

    Sous word 2003, outre l'erreur d'une référence manquante qui en fait ne manque absolument pas (mscomctl.ocx, situé ailleurs que dans le systeme32), j'ai réussi à kick l'intégralité du menu custom via la fenêtre Personnalisation, onglet barre d'outils, ligne barre de menus -> réinitialiser.
    C'est donc bien la barre de menus qui a été adaptée. Il me faut donc trouver comment. Une idée ? Là, je sèche ...

    Edit:
    Ok, j'ai enfin trouvé ! Menu accessible uniquement sous Word 2003, dans Outil->Personnaliser->Commandes->Réorganiser les commandes...
    On peut y mettre en forme des menus déroulant.
    Me reste à trouver comment accéder à la Galerie dans laquelle sont stockés les Insertion->QuickPart et on est bon !

    Merci pour le coup de main.

  11. #11
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Tu as trouvé, mais je confirme, les menus créés avec les versions antérieures sont toujours utilisables mais ne sont plus modifiables.
    La seule solution est de passer par le XML si tu souhaites pouvoir utiliser des commandes personnalisées.

    Difficile de dire si tout est nécessaire. Certains contrôles ActiveX disparaissent avec les versions plus récentes de Windows ou parfois d'Office.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Passer par du XML pour utiliser des commandes personnalisées ? Que veux tu dire ? N'aies-je pas déjà accès à des commandes personnalisées?
    Dans l'état actuel des choses, j'ai un menu personnalisé adapté aux besoins de mes collaborateurs. Le fait qu'il ne soit plus modifiable par la suite via Word2010, ce sera le problème de mon successeur. D'une manière ou d'une autre, il devra se creuser la tête s'il est aussi novice que moi en ce qui concerne l'utilisation avancée de Word.

    Toutefois, j'ai une dernière question avant de clore le topic: est-il possible d'exporter ou d'extraire les template intégrés à un document afin de les modifier, je parle de ceux accessible via Insertion->QuickPart->Organisateur de blocs de construction ? Si oui, quelle est la manière de procéder ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2014, 09h33
  2. Choix dans un menu déroulant via VBA
    Par Nono Sto dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/01/2013, 15h45
  3. Réponses: 13
    Dernier message: 19/03/2007, 16h55
  4. Faire des modifs sur une sheet excel Read Only via VBA
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/11/2005, 18h02
  5. Manipulation du carnet d'adresse outlook via VBA Excel?
    Par Dragon Tours dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2005, 12h16

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