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 ).
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.