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

QlikView Discussion :

Importation dans Excel


Sujet :

QlikView

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut Importation dans Excel
    Bonjour,
    Alors voilà, je suis en stage et on me demande de créer un outil permettant d'extraire plusieurs données venant de Qlikview.
    Donc j'essaye de faire une macro sur excel permettant avec un ou plusieurs boutons de récolter les données mises à jour et sans avoir à ouvrir les différents fichiers Qlikview.

    Quelqu'un aurait une idée ?

    Merci

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par Crousti13 Voir le message
    Bonjour,
    sans avoir à ouvrir les différents fichiers Qlikview
    A ma connaissance, il n'y a pas moyen de récupérer les données issues de graphiques sans ouvrir QlikView (ou son OCX).
    Par contre on peut faire une macro pour ouvrir QlikView, faire les sélections souhaitées, exporter les données et fermer QlikView.


    S'il ne s'agit que de données brutes, vous avez la possibilité dans le script de chargement QlikView d'exporter une table au format CSV (format qui peut être ouvert avec Excel) avec l'instruction "STORE table INTO fichier (txt)".

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    A quoi ressemblerait la macro pour ouvrir QlikView, faire les sélections souhaitées, exporter les données et fermer QlikView?

    Les données proviennent d'un logiciel de GPAO et doivent donc être mises à jour pour être étudiées.

  4. #4
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Pour ouvrir un objet "QlikView" et une application spécifique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set myApp = CreateObject("QlikTech.QlikView")
    Set myDoc = myApp.OpenDoc(qvFileName)

    Pour modifier une sélection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'On vide toutes les sélections
    myDoc.ClearAll
     
    Field = "MonChamp"
    Value = "Ma valeur"
     
    Set myField = myDoc.Fields(Field)
    myField.Select Value

    Pour sélectionner un objet "CH01" et l'envoyer vers Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set obj = ActiveDocument.GetSheetObject("CH01")
    obj.sendtoexcel

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Mon niveau de connaissance n'est pas très élevé désolé.
    Pour les exécuter, je créé des boutons en y intégrant ces macro ?
    Les champs en rouge doivent être remplacés par les valeurs spécifiques à mon document ?

  6. #6
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Pour jouer avec QlikView par macro, vous pouvez regarder l'application "API Guide" qui répertorie toutes les fonctions disponibles, ainsi que des exemples associés.

    Avant ça, il faut que vous ayez des notions de VB Script, sinon, vous n'y arriverez jamais.

    Le VB Script peut être :
    - inclus dans une application QlikView
    - inclus dans une application Excel
    - dans un fichier ".vbs" à part, qui est exécuté en ligne de commande

    Personnellement, quand je souhaite faire un truc un peu complexe, je privilégie le fichier ".vbs" qui permet d'exécuter facilement les actions souhaitées.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    D'accord, merci.
    Oui j'ai quand même des notions, j'ai appris sur Excel.

    Pour exporter sur Excel c'est bon je n'ai pas de problèmes, mais pour d'autres tentatives je me retrouve souvent avec
    "SET fso = CreateObject("Scripting.FileSystemObject")" de surligné en noir. Ou autre mais toujours avec "CreateObject".
    Je ne vois pas quoi corriger pour corriger l'erreur.

  8. #8
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Pour pouvoir créer des objets, il faut autoriser les macros à effectuer des opérations système.

    Dans QlikView, il y a 3 niveaux de sécurité :
    - ne rien exécuter
    - mode sans risque
    - autoriser les accès système

    Et sans "autoriser les accès système", il est impossible de faire une création d'objet.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Ça marche merci

    Du coup ce que j'envisage de faire, c'est de faire un fichier Qlikview "commandes" regroupant les trois fichiers en 3 onglets pour les regrouper.
    Avoir les fichiers regroupés sur un seul permettrait plus facilement les exportations vers Excel non ?
    Par contre je n'arrive pas à mettre les fichiers Qlikview dans les nouveaux onglets. Pourtant je recopie le script à l'identique.
    Lorsque je recharge, il me signale qu'il ne trouve pas un fichier alors que je ne vois nulle part le chemin d'accès dans le script...

    Je ne sais pas si je suis très clair

  10. #10
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Crousti13 Voir le message
    Du coup ce que j'envisage de faire, c'est de faire un fichier Qlikview "commandes" regroupant les trois fichiers en 3 onglets pour les regrouper.
    C'est très risqué : il suffit qu'il y ait des champs qui portent le même nom pour que les données du premier rapport pollue les données du 2em.


    Pourquoi ne pas faire un script VBS qui va :
    - ouvrir le premier document
    - faire les exports qu'il a à faire
    - fermer le premier document
    - ouvrir le 2em document
    - etc...

    ?

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Oui ok.
    J'ai créé 3 boutons différents là pour ouvrir les différents fichiers. Mais quand j'ajoute une action qui exécute la macro pour exporter, elle ne fonctionne pas. Pourtant j'ai la même sur le fichier en question et là ça exporte bien.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Des idées ? Ou même pour exporter le fichier vers un onglet excel choisi ?
    Quand j'exporte sur un document excel celui-ci est remis à 0 et il y a juste ce que j'exporte dessus. Moi j'aimerais avoir un doc excel avec des onglets servant pour d'autres tableaux et juste un réservé à l'exportation.

    Je sais j'en demande beaucoup mais j'ai beau chercher, je galère ....

    merci

    j'ai cette macro mais lorsque je l'exécute je me retrouve avec la ligne "Set objExcelWorkbook = copyObjectsToExcelSheet(ActiveDocument, aryExport)" surlignée en noir. Il faut peut-être ajouter le chemin d'accès du dossier Excel.

    Code VB : 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
    17
    18
    sub exportToExcel_Variant
     
    '// Array for export definitions
    Dim aryExport(1,3)
     
    aryExport(0,0) = "TB13"
    aryExport(0,1) = "sptr"
    aryExport(0,2) = "A1" 				
    aryExport(0,3) = "data"
     
    Dim objExcelWorkbook 'as Excel.Workbook
    Set objExcelWorkbook = copyObjectsToExcelSheet(ActiveDocument, aryExport)
     
     
    '// Now either just leave Excel open or do some other stuff here
    '// like saving the excel, some formatting stuff, ...
     
    end sub

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    J'ai réussi à trouver la macro que je cherchais, pour exporter de Qlikview vers une feuille excel précise. Le problème c'est qu'elle ne fonctionne que lorsque la feuille de destination est la dernière à avoir été modifiée avant l'enregistrement.
    Je m'explique, imaginons que je quitte le document excel après avoir modifié la feuille 2 et que j'enregistre. Si j'ouvre de nouveau le doc, je tomberais directement sur cette 2ème feuille. Et bien la macro QV ne prend en compte que cette feuille, donc si c'est la feuille vers laquelle je veux exporter, ça fonctionne, sinon je me retrouve avec l'erreur : "La méthode Select de la classe Range a échoué."

    Voici la macro:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    sub Export
     
    'Create a temporary instance of Excel - otherwise pastespecial will fail
    set tmpExcel = CreateObject("EXCEL.APPLICATION")
    set tmpWorkBook = tmpExcel.Workbooks.Add
    tmpExcel.Visible = True
     
    ' ------ Copy / Paste Script Start
    SET XLApp = CreateObject("Excel.Application") 'Define Object
    XLApp.Visible = True 'Visible SET AS true
    SET XLDoc = tmpExcel.Workbooks.Open("Y:\@stages\valo encours\Valo encours.xls")
     'Open new workbook
     
    ' Get TB1
    SET TABLE = ActiveDocument.GetSheetObject("CH02")
    ' Copy table and paste into Excel
    set XLSheet = XLDoc.Worksheets(3) 'SELECT sheet WHERE DATA should be pasted
    TABLE.CopyTableToClipboard true 'Copy data to Clipboard
    'Format cells AND pastespecial
    XLSheet.Range("A:A").NumberFormat = "@" 'Select the range you want to format as text
    XLSheet.Range("A1").select 'SELECT FIELD WHERE DATA should be pasted
    XLSheet.PasteSpecial 'According to msdn.com -4163 
     
    ' ------ Copy / Paste Script End
     
    'Close temporary workbook
    tmpWorkBook.Close True
    end sub
    Si quelqu'un a une idée

  14. #14
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Essaie d'insérer un select juste après ton Set :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ' Copy table and paste into Excel
    set XLSheet = XLDoc.Worksheets(3) 
    XLSheet.Select

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Ah super merci, ça fonctionne !
    C'était tout bête finalement, j'ai du progrès à faire

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Je suis confronté à un nouveau petit problème.
    Dans la même macro je voudrais juste insérer un Inputbox demandant à choisir un onglet d'exportation.
    Donc bon pour le inputbox pas de soucis, mais je ne sais pas comment intégrer la réponse donnée à la place de la ligne ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set XLSheet = XLDoc.Worksheets(3)

  17. #17
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Onglet = inputbox("Num. d'onglet :")
    XLDoc.Worksheets(Onglet).select
    Je crois que ça doit fonctionner avec le numéro de l'onglet comme avec son nom. A voir.

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    J'ai remplacé par ce que tu m'as donné, mais ça ne fonctionne pas. Je me retrouve avec le message d'erreur :

    "Indice en dehors de la plage"
    ou maintenant
    "Objet requis: 'XLSheet'"


    C'est bon je viens de réussir avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Onglet = inputbox("Num. d'onglet :")
    XLDoc.Worksheets(Onglet).SELECT 'SELECT sheet WHERE DATA should be pasted
    set XLSheet = XLDoc.Worksheets(Onglet)
    XLSheet.select

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/04/2012, 17h39
  2. requêtes Mysql pour importer dans Excel ?
    Par dreamover dans le forum Requêtes
    Réponses: 4
    Dernier message: 09/03/2009, 15h05
  3. [access 97] Importer dans Excel
    Par 6ril25 dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/10/2007, 12h25
  4. imports dans Excel avec la querytables
    Par el_pilacho dans le forum VB.NET
    Réponses: 0
    Dernier message: 03/09/2007, 17h31
  5. Importer dans excel
    Par Dgyles dans le forum Access
    Réponses: 3
    Dernier message: 29/06/2006, 07h57

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