Objets dans des feuilles...

B

Baroude

Guest
Bonjour à tous et à toutes,

J'aurai besoin de votre aide...
Quelqu'un aurai t-il un code VBA permettant de renvoyer dans une feuille Excel tous les noms des objets contenus dans le classeur (graphique, zone de texte etc...)

Merci de votre aide
Bonne aprèm'
Baroude
 
V

Vériland

Guest
Bonsoir Baroude et toi le Forum,

Tiens j'ai trouvé ce code d'Alain Vallon sur MPFE, qui permet de lister tous les objets et graphiques présents sur une feuille...

Sub Lister_Objets()

Application.ScreenUpdating = False
Set Zone = ActiveSheet
On Error Resume Next
Nomfeuil = "Liste objets de " & ActiveSheet.Name
Worksheets.Add.Name = Nomfeuil
With Sheets(Nomfeuil)
.UsedRange.Clear
.[A1] = "Nom de l'objet"
.[B1] = "Type d'objet"
.[C1] = "Macro affectée"
.[D1] = "Texte"
.[E1] = "Adresse"
.[F1] = "Gauche"
.[G1] = "Haut"
.[H1] = "Largeur"
NbObjet = Zone.DrawingObjects.Count
For Each objet In Zone.DrawingObjects
Cpte = Cpte + 1
Application.StatusBar = "Récup à " & _
Format(Cpte / NbObjet, "0%") & " réalisée"
lgn = .[A65536].End(xlUp).Row
.[A1].Offset(lgn) = objet.Name
.[B1].Offset(lgn) = TypeName(objet)
.[C1].Offset(lgn) = objet.OnAction
.[D1].Offset(lgn) = objet.Characters.Text
If .[D1].Offset(lgn) = "#N/A" Then .[D1].Offset(lgn).Value = ""
.[E1].Offset(lgn) = objet.TopLeftCell.Address
.[F1].Offset(lgn) = objet.Left
.[G1].Offset(lgn) = objet.Top
.[H1].Offset(lgn) = objet.Width
Next
Application.StatusBar = False
.Columns("A:H").AutoFit
.Activate
End With

End Sub

A+Veriland.gif


PS : Macro à copier depuis le forum auquel cas tu risques d'avoir les attributs GRAS du post dedans
 

Discussions similaires

Statistiques des forums

Discussions
313 030
Messages
2 094 571
Membres
106 054
dernier inscrit
Mohajer