6 Replies Latest reply: Sep 11, 2013 4:37 AM by Manal CHOUALI RSS

    export excel selection active

      Bonjour;

      Comment exporter plusieurs chart à un seul classeur excel avec la sélection active ?

      D'avance je vous remercie .

      Bonne journée .

      Cordialement;

        • Re: export excel selection active
          Yves Ndjoli

          Bonjour,

           

          pourrais tu clarifier ta question stp!

           

          cordialement,

          Yves

            • Re: export excel selection active

              Ah ! j'ai plusieurs  graphique à exporter sur des feuille excel mais j'aimerai exporter avec la sélection active dans chaque feuille !

              j'ai pu exporter les graphique à chaque feuille d excel mais sans la selection active !

                • Re: export excel selection active

                  Paramètres -> Préférences utilisateur -> Exportation de sélection actives -> Exportation BIFF.

                    • Re: export excel selection active

                      Au fait je parlais de l'export par macro !

                      Judikael : avec la macro , même en cochant cette propriété ça ne fonctionne pas !

                       

                      Merci

                       

                      Cordialement;

                        • Re: Re: export excel selection active
                          Lotfi Benkhider

                          Bonjour,

                           

                          essaies cette macro. Elle permet d'exporter les selections actives en "Image" et les tableaux en valeurs

                           

                          Regarde l'exemple joint.

                           

                          Lotfi

                          www.qlikdiscovery.fr

                            • Re: Re: export excel selection active

                              Bonjour Lotfi ;

                              Merci pour ta pièce jointe et ton lien également !

                              Ta méthode est utile aussi dans certains cas , depuis j'ai pu trouver une réponse qui répond au mieux au besoin, je te laisse voir la pièce jointe ( en terme de présentation je préfère utiliser celle ci .

                               

                              Ta méthode est intéressante mais compliquer pour la mètre en oeuvre dans mon cas( parce que il faudra que je récupère tous les chart de type pivot table ou table simple des différent onglets de qvw et d'exporter ces derniers dans un classeur excel avec les sélections active.

                               

                               

                              voici le corp de la macro que j'ai utiliser , tu peux la copier coller ds l'éditeur de la macro :

                               

                               

                              sub ExportExcel

                              Set XLApp = CreateObject("Excel.Application")

                              XLApp.Visible =  true

                              Set XLDoc = XLApp.Workbooks.Add

                              For t = 1 To ActiveDocument.NoOfSheets-1

                               

                                   Set MySheet = ActiveDocument.GetSheet(t)

                                   MySheet.Activate

                               

                               

                                   MyCharts = MySheet.GetSheetObjects

                                   NameSheet = ActiveDocument.ActiveSheet.GetProperties.Name

                               

                               

                                 NameSheetValue = activedocument.Evaluate(NameSheet)

                              vname = trim(left( NameSheetValue, 31))

                                ' msgbox NameSheetValue

                                  msgbox  vname

                                 

                                 

                                   For X =lbound(MyCharts) to ubound(MyCharts)

                                  

                                      Set CurrentSelectionID = ActiveDocument.GetSheetObject(MyCharts(X).GetObjectId)

                                      set Prop = CurrentSelectionID.GetProperties

                                     

                                    if CurrentSelectionID.GetObjectType = 7 then

                                     c=inStr(CurrentSelectionID.GetObjectId,"\")

                                     CurrentSelectionIDD = right(CurrentSelectionID.GetObjectId,len(CurrentSelectionID.GetObjectId)-c)

                                  

                               

                               

                                   end if

                                    next

                              '    

                                   set table = ActiveDocument.GetSheetObject( CurrentSelectionIDD )

                              'for RowIter = 0 to table.GetRowCount-1

                              '    for ColIter =0 to table.GetColumnCount-1

                              '        set cell = table.GetCell(RowIter,ColIter)

                              '        msgbox(cell.Text)

                              '    next

                              'next

                              '

                              nbrligneCurrentSelection = table.GetRowCount

                               

                              Set v = ActiveDocument.Variables("vCurrentSelection")

                              Selection=v.GetContent.String

                                   msgbox Selection

                                  

                                   For X =lbound(MyCharts) to ubound(MyCharts)

                                      Set obj = ActiveDocument.GetSheetObject(MyCharts(X).GetObjectId)

                                      set Prop = obj.GetProperties

                                     

                                       IF Obj.GetObjectType = 10 or Obj.GetObjectType = 11 Then

                                       taille = Obj.GetRowCount

                                       'msgbox taille

                                             p=inStr(obj.GetObjectId,"\")

                                             wsname = right(obj.GetObjectId,len(obj.GetObjectId)-p)

                                  captiontext = obj.GetCaption.Name.v

                                  'msgbox captiontext

                                             '  wsname = left(obj.getProperties.ChartProperties.Title.Title.v,30)                

                                              XLDOC.Worksheets.Add().Name = vname

                                                               XLDoc.Sheets(vname).activate

                                                               'XLDoc.Sheets(vname).ActiveWindow.DisplayGridlines = False 'quadrillage

                                                               XLDoc.Sheets(vname).Select

                                                               XLApp.ActiveWindow.DisplayGridlines = False

                                                               XLDoc.Sheets(vname).Columns("A").ColumnWidth  = 60

                                                               XLDoc.Sheets(vname).Range("A1")=captiontext

                                              

                                  XLDoc.Sheets(vname).Range("A3") = Selection

                                                                        XLDoc.Sheets(vname).Range("B"& 4).Select

                              '                         

                                                                       obj.CopyTableToClipboard true

                                                                       XLDoc.Sheets(vname).Paste()

                                                                   ' ActiveDocument.GetApplication.WaitForIdle

                                      End if

                               

                                   Next

                              Next

                               

                               

                               

                               

                              end sub

                               

                               

                              Bonne journée et merci bien pour tes retours !

                              Cordialement;

                              Manal