Change un graph excel en image

Contenu du snippet

C'est mon premier prog, alors soyez indulgents!

En fait, on m'a demandé d'automatiser les commandes qui changent un graph excel en image ( coupe - collage spécial ... ).
Les gens qui se servent de ce prog ont des classeurs excel comportant bcp de feuilles comportant elle mêmes bcp de gaph... Afin d'envoyer le classeur sans que les destinataires ne peuvent toucher aux graph, ils les copiaient en image ce qui leur prenait bcp de temps!

Source / Exemple :


Sub CopieColle()

Dim NbDiapo As Integer
Dim EtaitVisible As Boolean

NbDiapo = Application.Sheets.Count
For j = 1 To NbDiapo
   NomDiapo = Application.Sheets(j).Name
   EtaitVisible = Sheets(NomDiapo).Visible
   Sheets(NomDiapo).Visible = True
   If Sheets(NomDiapo).Visible Then
      Sheets(NomDiapo).Select
      ActiveSheet.Cells.Select
      Selection.Copy
      Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
      Call Graph
      Sheets(NomDiapo).Visible = EtaitVisible
   End If
Next

End Sub

__________________________________________________________________________ 
Sub Maproc(NomGraphique As String, NomCell As String)

   ActiveSheet.ChartObjects(NomGraphique).Activate
   ActiveChart.ChartArea.Select
   Application.CutCopyMode = False
   ActiveWindow.Visible = False
   ActiveWindow.WindowState = xlNormal
   ActiveWindow.WindowState = xlMaximized
   Selection.cut
   Range(NomCell).Select
   ActiveSheet.PasteSpecial Format:="Image (métafichier amélioré)", link:=False, displayAsIcon:=False

End Sub

__________________________________________________________________________

Sub Graph()

Dim NomCell As String
i = 1

NbGraph = ActiveSheet.ChartObjects.Count
NbTotal = NbGraph + 1
If NbGraph = 0 Then Exit Sub
While i < NbTotal
   NomCell = ActiveSheet.ChartObjects(1).TopLeftCell.Address
   Call Maproc(ActiveSheet.ChartObjects(1).name, NomCell)
   i = i + 1
Wend

End Sub

Conclusion :


Grand merci à Ica94 qui m'a permis de debuguer mon programme !!!!

Maintenant il prend en compte les pages cachées ( le but est qu'il n'y ait plus de lien avec un autre classeur donc les pages masquées sont prises en compte et visibles ).

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.