15 Replies Latest reply: Dec 16, 2016 10:49 AM by Julien rollet RSS

    Ouvrir un fichier Excel en VB

    Julien rollet

      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 :

       

      1. Sub Test 
      2.    ExcelAppend "h:\test.xlsx", "CH418" 
      3. End Sub 

       

      1. Sub ExcelAppend(strExcelAppenFile, strExelAppendObjectID) 
      2.    ' Create an instance of Excel 
      3.    SET objExcelApp = CREATEOBJECT("Excel.Application") 
      4.    ' Open workbook 
      5.    WITH objExcelApp 
      6.       .DefaultSaveFormat = xlWorkbookNormal 
      7.       .DisplayAlerts = FALSE 
      8.       .Workbooks.Open strExcelAppenFile 
      9.       .DisplayFullScreen = FALSE 
      10.       .Visible = FALSE 
      11.    END WITH 
      12.    ' Set worksheet 
      13.    SET objExcelSheet = objExcelApp.Worksheets(1) 
      14.    ' Set Excel used range 
      15.    SET objExcelRange = objExcelSheet.Range("A65535").End(-4162) 
      16.    ' Last used row in column A 
      17.    intExcelLastRow = objExcelRange.Row 
      18.    ' Set object to append from 
      19.    SET objObjectFrom = ActiveDocument.GetSheetObject(strExelAppendObjectID) 
      20.    ' Loop all rows of the object except first header row 
      21.    FOR intObjectRow = 1 To objObjectFrom.GetRowCount - 1 
      22.       ' Loop all columns of the object 
      23.       FOR intObjectColumn = 0 To objObjectFrom.GetColumnCount - 1 
      24.          ' Get object data 
      25.          SET objCell = objObjectFrom.GetCell(intObjectRow, intObjectColumn) 
      26.          ' Add that data to Excel cell 
      27.          objExcelSheet.Cells(intObjectRow + intExcelLastRow, intObjectColumn + 1) = objCell.Text 
      28.       NEXT 
      29.    NEXT 
      30.    ' Save and quit 
      31.    objExcelSheet.SaveAs strExcelAppenFile 
      32.    objExcelApp.Application.Quit 
      33.    SET objExcelSheet = NOTHING       
      34.    SET objExcelApp = NOTHING 
      35. END SUB    

       

      J'utilise ce code de la façon suivante :

       

      1. Création du bouton
      2. Propriétés > Actions > Exécuter une macro > Nom de la macro : Test
      3. Editer la macro : je colle le code précédent, et clique sur Appliquer, et derme la fenêtre "Editer le module"
      4. Je clique sur le bouton pour lancer la macro
      5. En bas à gauche de l'écran, "Macro exécutée..." apparaît
      6. La fenêtre "Editer le module" réapparaît

       

      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 !