Cacher le volet requête de classeur

Bonjour à tous,

Le titre est explicite. Sous Excel 2010 je cherche à cacher le volet requête de classeur.

J’ai réalisé un tableau qui interroge une base de données via Power Query.

Quand on clique sur le tableau de résultat s’affiche le volet à droite de « requête de classeur » qui permet d’actualiser/modifier la requête.

Je souhaiterai simplement faire disparaitre ce volet aux les utilisateurs à l’ouverture du fichier Excel juste après une actualisation.

J’ai tout bêtement enregistré une macro et fermé ce volet pour voir le code qu’Excel enregistre, cela me donne ceci :

Application.CommandBars("Requêtes de classeur").Visible = False

Tout content j’insère la phrase sacrée au milieu dans « thisWorbook » pour qu’il cache le volet après l’actualisation

Private Sub Workbook_Open()
 ActiveWorkbook.RefreshAll
 Application.CommandBars("Requêtes de classeur").Visible = False
End Sub

Et à l’ouverture de mon fichier j’ai le message d’erreur :

Erreur d’exécution ‘5’ :

Argument ou appel de procédure incorrect.

Si j’enlève la phrase sacrée tout fonctionne bien.

Et si je ne garde que la phrase biblique sans actualisation, j’ai un autre message d’erreur :

Private Sub Workbook_Open()
  Application.CommandBars("Requêtes de classeur").Visible = False
End Sub
Erreur d’exécution

Le focus ne peut être déplacé sur le contrôle car celui-ci est invisible, non activé, ou d’un type n’acceptant pas le focus.

Du coup j'en ai ras le focus, si Excel n'accepte pas le code qu'il pond lui même, que peut on faire ?

Auriez vous une idée ?

Merci,

Jeff

Bonjour

Chez moi c'est l'item 152 mais pas sûr que ce soit général : dis-moi

De toute évidence un problème de localisation... et dans ce cas ça bugue comme les dates ou les vides des TCD...

Bonjour,

Merci pour ton retour mais je ne comprends pas trop ta réponse : "item 152" ?

J'ai l'impression que c'est la réponse d'un autre post.

Merci à toi,

Jeff

Bonjour

Non toutes Application.CommandBars ont un numéro d'index.

Sur mon PC le volet correspond à l'index 152.

Quoi qu'il en soit cela ne fonctionne pas car le nom VBA en principe en US et le nom local sont confondus ce qui n'est pas normal.

Bonjour,

Tu ne peux pas enregistrer une macro ou tu fermes manuellement cet onglet pour voir le code utilisé ensuite ?

Ok 78chris, merci à toi je ne comprenais pas trop.

Bonjour Xmenpl, si c'est c'est que j'ai fait comme je l'ai expliqué, Excel m'a pondu le code suivant :

Application.CommandBars("Requêtes de classeur").Visible = False

Mais dès que j'essaye d'exploiter ce bout de code à l'ouverture d'un fichier

Private Sub Workbook_Open()
 Application.CommandBars("Requêtes de classeur").Visible = False
End Sub

J'ai le message d'erreur suivant :

Le focus ne peut être déplacé sur le contrôle car celui-ci est invisible, non activé, ou d’un type n’acceptant pas le focus.

RE

Je reprécise : tous les objets qui ont été mal localisés (localisation = adaptation aux autres pays que les US) buguent

On en découvre régulièrement...

Sur les TCD on a trouvé des solutions de contournement, là pas sûr d'en trouver...

MS fait des correctifs qui parfois en solutionnent...

Re,

Le volet de requêtes s'affiche dès l'ouverture d'excel ? ou je cite :

"Quand on clique sur le tableau de résultat s’affiche le volet à droite de « requête de classeur »" ?

Bonjour,

Avec Excel 2016, quand je liste les CommandBars et Controls, je n'ai rien pour la partie Récupérer & Transformer.

Voir fichier joint.

Une piste à étudier avec les idMso.

Pour moi Afficher les requêtes (toggle) :

Application.CommandBars.ExecuteMso ("PowerQueryManageWorkbookQueries")

j'ai récupéré l'idMso repertorié dans les commandes du Ruban (Fichier, Options, Personnaliser le ruban, ...).

Bon pour résumer, si à l'ouverture du classeur et après actualisation, le volet requête est affiché, l 'exécution du code (précédent) masquera le volet.

Il faudra certainement décocher l'Actualisation en arrière-plan.

A te relire.

Cdlt.

Bonjour à tous,

Arf merci pour toutes ces pistes, mais rien ne fonctionne, mais par contre je comprend pourquoi.

J'ai crée un STOP au début de l'ouverture du fichier, pour faire une analyse pas à pas du bug :

Private Sub Workbook_Open()
STOP
 Application.CommandBars("Requêtes de classeur").Visible = False
End Sub

Effectivement la colonne n'apparait pas donc Excel ne peut pas la masquer. Du coup je me suis dit je vais sélectionner une cellule du tableau, cela fera apparaitre cette fichue colonne.

Private Sub Workbook_Open()
STOP
Range("A3").Select
 Application.CommandBars("Requêtes de classeur").Visible = False
End Sub

Et ben non, j'ai beau sélectionner une cellule du tableau, la colonne ne s'affiche pas. Donc Excel ne peut la cacher.

Mais par contre si je ne mets aucun code, la colonne s'affiche bien à mon grand regret.

J'ai bien essayé avec cette proposition mais sans succès puisque le volet ne s'affiche pas :

Application.CommandBars.ExecuteMso ("PowerQueryManageWorkbookQueries")

Du coup je vais chercher le moyen de l'afficher pour le masquer, c'est un comble ...

C'est bien ce que je pensais d'où ma question dans le post précédent.

le volet requete ne s'ouvre pas à l'ouverture du fichier et donc ne peut pas être fermé.

Tu as un évènement vba au moment du clic sur ton tableau ? Dans ce cas c'est dans cet évènement que j'écrirai la ligne.

difficile de tester sans fichier.

Re,

Ma proposition était pour Excel 2016.

Ruban, Fichier, Options, Ruban personnalisé.

Recherche la commande Afficher les requêtes (ou son équivalent pour Excel 2010.

L'idMso apparaît (screentip). Rcopie le terme exact (sensible à la casse!?).

Et essaie :

Application.commandBars.ExecuteMso ("idMso_cherché"").

Nota : ne doit pas du tout fonctionner pour les versions antérieures à Excel 2010 (soit Excel 2007).

@Jean-Eric

Oui effectivement cela ne fonctionne pas sous Excel 2010

@Xmenpl

Oui ta question était pertinente.

Du coup je suis parti sur une autre option, où je suis sur que le volet est visible, sur un changement de valeur dans la feuille le volet se masque :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.CommandBars("Requêtes de classeur").Visible = False
End Sub

Et là je baisse les bras, car quand on change de valeur dans le tableau, la colonne de requête est bien visible, le débogueur se lance avec le message d'erreur :

Erreur d’exécution

La méthode 'visible' de l'objet 'CommandBar' a échoué.

Je mettrai bien un fichier en exemple mais je n'ai pas de base de donnée non sensible à requêter.

RE

Bien que j'ai la certitude de parler dans le désert je répète: sur 2010 la commande a un bug de localisation..

On a le même problème sur les (vides) des TCD et sur certaines dates (dépend du format de la date dans la source)...

(J'avais publié un contournement sur le sujet qui dépannait pas seulement la France...)

Donc le problème ne vient pas du code VBA mais du bug Microsoft...

Hey 78 Chris,

Non tu ne parle pas dans le désert , je n'avais pas compris qu'il n'y avait aucune solution et que c'était une certitude.

Merci de ton aide.

Je ferai autrement.

Bonne journée ++

Bonjour,

Je ne suis pas spécialiste de Power-query alors je vais peut-être dire une bétise ?

En passant par les options de power-quéry on ne peut pas désactiver l'affichage du volet tout simplement ?

nouvelle image 28

Bonjour

Non là ce sont les volets de l'interface PQ

Là le souci est dans l'interface Excel

Bonjour

Non là ce sont les volets de l'interface PQ

Là le souci est dans l'interface Excel

Merci Chris je me doutais bien que çà ne pouvait être aussi facile

Bonjour,

Je remonte ce sujet car j'aimerai pouvoir à l'ouverture de mon fichier bloquer l'affichage des requêtes (Ruban_Données_Afficher les requêtes) mais celles ci doivent êtres toujours être fonctionnelles

Je suis sur Excel 2016, j'ai essayé ces codes mais ils ne fonctionnent pas ...

Application.CommandBars.ExecuteMso ("PowerQueryManageWorkbookQueries").Visible= False
Application.CommandBars.("PowerQueryManageWorkbookQueries").Visible= False

Merci d'avance pour l'aide apportée,

Cordialement,

Rechercher des sujets similaires à "cacher volet requete classeur"