Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Briinou
Contributor III
Contributor III

Envoyer un tableau vers Excel via VBA ?

Bonjour à tous,

J'ai besoin d'exporter un tableau de données, généré par QlikView sous Excel.

Ce tableau ne sera pas visible sur l'outil par les utilisateurs (Il est créé dans un onglet "XX", caché pour les utilisateurs) : en raison du grand nombre de colonnes présente, l'esthétisme de l'outil est déformé.

Mon souhait est de créer un bouton dans l'onglet "AA" qui me permet de réaliser la même opération que le "Envoyer vers Excel" d'un quelconque objet. Ils n'auront donc qu'un bouton à cliquer pour générer le fichier Excel.

Dois-je créer une macro VBA qui exporte les données du tableau dans un nouveau classeur Excel ? (J'ai peur que l'export ne conserve pas les formats de données (suppression des zéros devant les nombres...)).

Ou existe t-il une astuce sous Qlik pour lier le "Envoyer vers Excel" à un bouton ?

Je vous remercie par avance

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

Voici une macro qui fera le job.

Marche à suivre:

  • CTRL + M pour ouvrir l'éditeur de macro
  • Copier la macro suivante:

  • Sub SendToExcel()     'Récupère le paramètre
         set p1 = ActiveDocument.Variables("pSendToExcel_Id")

         set obj = ActiveDocument.GetSheetObject(trim(p1.getContent.String))
         obj.SendToExcel
    End
    Sub
  • Cliquez sur "Vérifier", puis sur "OK"
  • Créer une variable (CTRL + ALT + V) que vous allez appeler : pSendToExcel_Id
  • Créer un bouton
  • Ajouter les actions suivantes :
    • Cliquez Ajouter --> Externe  --> Définir la variable  --> OK
      • Variable :  pSendToExcel_Id        Valeur :  CHxx    (l'id de votre tableau) 
    • Cliquez Ajouter --> Externe  --> exécuter une macro  --> OK
    • Nom de la macro:  SendToExcel
    • -> OK 

Si vous cliquez sur le bouton, Excel devrait s'ouvrir avec les données tu tableau caché

View solution in original post

3 Replies
sfatoux72
Partner - Specialist
Partner - Specialist

Voici une macro qui fera le job.

Marche à suivre:

  • CTRL + M pour ouvrir l'éditeur de macro
  • Copier la macro suivante:

  • Sub SendToExcel()     'Récupère le paramètre
         set p1 = ActiveDocument.Variables("pSendToExcel_Id")

         set obj = ActiveDocument.GetSheetObject(trim(p1.getContent.String))
         obj.SendToExcel
    End
    Sub
  • Cliquez sur "Vérifier", puis sur "OK"
  • Créer une variable (CTRL + ALT + V) que vous allez appeler : pSendToExcel_Id
  • Créer un bouton
  • Ajouter les actions suivantes :
    • Cliquez Ajouter --> Externe  --> Définir la variable  --> OK
      • Variable :  pSendToExcel_Id        Valeur :  CHxx    (l'id de votre tableau) 
    • Cliquez Ajouter --> Externe  --> exécuter une macro  --> OK
    • Nom de la macro:  SendToExcel
    • -> OK 

Si vous cliquez sur le bouton, Excel devrait s'ouvrir avec les données tu tableau caché

Briinou
Contributor III
Contributor III
Author

Bonjour,

Merci énormément, c'est nickel !

Briinou
Contributor III
Contributor III
Author

Bonjour,

Je me permets de relancer ce sujet : la macro d'export de tableau fonctionne à merveille.

Cependant, j'ai remarqué qu'au premier export suite à l'ouverture du Qlik, ma fenêtre de module (où se trouve mon code) s'ouvre également.

Existe-il un moyen de bloquer cela ?