Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Actualiser fichier excel avec macro QV

Bonjour,

Je travaille sur un fichier QV qui est alimenté par un fichier Excel, qui lui-même est une extraction d'une base de données Access.

Je passe par un fichier Excel intermédiaire car j'ai besoin d'ajouter des champs à la table Access déjà existante, et les ajouter directement sur Access poserai quelques problèmes.

Je voudrait donc trouver le moyen dans QV d'actualiser (grâce à une macro notamment) à la fois le fichier Excel et le fichier QV.

Merci !

Nicolas

4 Replies
pgrenier
Partner - Creator III
Partner - Creator III

Bonjour Nicolas,

Est-ce qu'une solution possible pourrait être d'extraire directement le contenu de la table Excel depuis QlikView, puis d'ajouter les champs supplémentaires depuis l'autre source à l'aide d'instructions supplémentaires toujours à l'intérieur de QlikView?

Pour me donner une meilleure idée de ce qui est bloquant, serait-il possible de mentionner la nature des champs supplémentaires qui sont absents de la source de données Access? Est-ce ce sont des champs calculés? Sont-ils des champs amendés depuis une autre source de données, comme un fichier Excel spécifiant des regroupements?

Cordialement,

Philippe

Not applicable
Author

Bonjour Philippe,

Je vais être plus précis. j'ai une base de données que nous appellerons "Test 2013". Je souhaite extraire deux tables de cette BDD (test1 et test2), qui contiennent pour la plupart des valeurs numériques, et qui sont reliées par un champs commun (ma clé primaire). Mon problème est le suivant, il me manque un champs "année" dans mes deux tables afin de pouvoir réaliser des analyses pluriannuelles.

Puisque je ne peux pas ajouter de champs dans ma BDD Access, j'ai essayé une autre option : J'ai fais une extraction de mes deux tables sur un fichier Excel, j'ai alors ajouté sur ce fichier excel mon champs "année", et j'ai chargé le fichier excel dans QlikView.

Cette solution impose de recharger d'abord le fichier Excel, puis le fichier QlikView pour avoir des données actualisées. Ce que je voudrais est un moyen d'actualiser directement dans QlikView, mon fichier Excel et mon fichier QlikView.

Je n'ai pas bien compris la solution que vous m'avez proposée dans votre précédent message.

Merci de votre aide,

Cordialement.

Nicolas

Not applicable
Author

Nicolas,

Pourquoi ne pas ajouter le champ ANNEE directement dans le script :

LOAD ...

2013 as ANNEE,

....;

Puis de stocker ces données dans un fichier QVD une bonne fois (via la commande STORE). Les fichiers QVD stockent une table et servent de réservoir de données aux applications QV (il faut donc préparer ce réservoir à un moment donné).

Ensite il suffira de:

1) relire ce fichier QVD stockant 2013

2) lire les données XLS de l'année en cours  (en y ajoutant aussi 2014 pour la comparaison des années)

Fabrice

pgrenier
Partner - Creator III
Partner - Creator III

Bonjour Nicolas,

La réponse que Fabrice a fournie plus haut correspond quelque sorte au traitement que je vous aurais proposé pour répondre à votre besoin. L'idée de stocker les informations des années précédentes (ou des mois précédents, selon le cas) dans un fichier QVD est une excellente approche, et est couramment utilisée sur le marché.

Or, QlikView vient aussi avec une belle gamme de fonctions intégrées, dont certaines pourraient vous permettre d'éviter de coder en dur certaines informations.

Par exemple, si votre source de données Access est actualisée à chaque début de mois et contient les données du mois précédent. Vous pourriez aller lire le contenu de la table en question, puis ajouter l'appel à AddMonths(MonthStart(Today()), -1) as InfoDate pour déterminer le premier jour du mois effectif des données.

La même chose pourrait être accomplie pour obtenir simplement l'année à partir de la date du chargement. Ainsi, si les données chargées correspondent aux données de l'année précédente, l'appel à Year(Today()) -1 as InfoYear vous générerait automatiquement cette information.

En ce qui a trait à l'utilisation des QVD, il y a une rubrique dans l'aide en ligne de QlikView qui est très limpide et pourrait certainement vous être très utilie: Using QVD Files for Incremental Load (je ne connais pas le nom de la rubrique dans la version française de l'aide en ligne).

Cordialement,

Philippe