Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
Je débute dans l'utilisation de QlikView (Version 11.20).
Je cherche à envoyer un tableau de données ("CH418") vers un fichier Excel existant, à l'aide d'un bouton cliquable. Pour cela, j'ai trouvé sur internet le programme VB suivant :
J'utilise ce code de la façon suivante :
A cette étape, j'ouvre le fichier test.xlsx pour contrôler que la procédure a bien fonctionné, mais le fichier n'est pas rempli.
Au cours de cette procédure, Qlik ne m'alerte pas d'un quelconque problème. Pourtant, je n'obtiens pas le résultat souhaité.
Pourriez-vous svp m'indiquer ce qui ne fonctionne pas dans ma démarche ?
Merci pour votre aide !
Mais si ton fichier existe, le problème vient du H: , si c'est lecteur reseau comme par exemple myServeur (H:) utilise \\myServeur\test.xlsx et ca devrait marcher
Bonjour,
Si la fenêtre "Editer le module" réapparaît, c'est qu'il y a un problème avec ton script.
As-tu activer les accès systèmes ?
Merci Sébastien pour ton aide !
Oui, les accès système sont bien paramétrés. Comment savoir d'où vient mon erreur ?
Merci !
Le fichier h:\test.xlsx doit exister avant de lancer l'exécution de la macro, sinon sa plante.
Est-ce le cas?
Bonjour Sébastien,
Oui c'est bien la cas 🙂
Je ne sais pas où le programme bug.
Merci beaucoup !
Chez moi, ça fonctionne bien.
La macro faisant appel à une librairie Excel, il faut bien sur que Excel soit installé sur le poste ou est exécuté la macro (ce n'est généralement pas le cas sur les serveur).
Est-ce le cas?
Bonjour,
Merci d'avoir testé.
Excel est bien installé sur mon ordinateur...
On ne peut pas déboguer le code ?
Merci !
Bonjour,
une variante qui fonctionne chez moi :
une seule function avec la possibilité de renseigner dans une boite de dialogue :
- l'adresse du fichier excel de destination
- la reference de l'objet
sub ExcelAppend
'choose file
strExcelAppenFile = InputBox ("Fichier Excel de destination avec chemin" , "Reglages" , "y:\test.xlsx")
strExelAppendObjectID = InputBox("Objet à transférer" , "Reglages" , "CH03")
' Create an instance of Excel
SET objExcelApp = CREATEOBJECT("Excel.Application")
' Open workbook
WITH objExcelApp
.DefaultSaveFormat = xlWorkbookNormal
.DisplayAlerts = FALSE
.Workbooks.Open strExcelAppenFile
.DisplayFullScreen = FALSE
.Visible = FALSE
END WITH
' Set worksheet
SET objExcelSheet = objExcelApp.Worksheets(1)
' Set Excel used range
SET objExcelRange = objExcelSheet.Range("A65535").End(-4162)
' Last used row in column A
intExcelLastRow = objExcelRange.Row
' Set object to append from
SET objObjectFrom = ActiveDocument.GetSheetObject(strExelAppendObjectID)
' Loop all rows of the object except first header row
FOR intObjectRow = 1 To objObjectFrom.GetRowCount - 1
' Loop all columns of the object
FOR intObjectColumn = 0 To objObjectFrom.GetColumnCount - 1
' Get object data
SET objCell = objObjectFrom.GetCell(intObjectRow, intObjectColumn)
' Add that data to Excel cell
objExcelSheet.Cells(intObjectRow + intExcelLastRow, intObjectColumn + 1) = objCell.Text
NEXT
NEXT
' Save and quit
objExcelSheet.SaveAs strExcelAppenFile
objExcelApp.Application.Quit
SET objExcelSheet = NOTHING
SET objExcelApp = NOTHING
END sub
Pour débuguer, met des message box à intervalle régulier pour identifier le code exécuté de celui qui ne l'ai pas.
...
msgbox "A"
...
msgbox "B"
...
msgbox "C"
....
Sébastien :
=> A s'affiche, mais B ne s'affiche pas ! Le problème est donc entre les deux
Merci Jean-Luc, je testerai votre code !