Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour;
Comment exporter plusieurs chart à un seul classeur excel avec la sélection active ?
D'avance je vous remercie .
Bonne journée .
Cordialement;
Bonjour,
pourrais tu clarifier ta question stp!
cordialement,
Yves
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 !
Paramètres -> Préférences utilisateur -> Exportation de sélection actives -> Exportation BIFF.
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;
Bonjour,
essaies cette macro. Elle permet d'exporter les selections actives en "Image" et les tableaux en valeurs
Regarde l'exemple joint.
Lotfi
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