Bonjour,
Ne trouvant de solution satisfaisante à mon problème, je me résous donc à vous le soumettre.
Dans une feuille Excel qui contient beaucoup de petites images insérées dans des cellules, je dois pouvoir trouver dans une cellule donnée (pour l'exemple la cellule active), le nombre d'images insérées, leurs noms ainsi que leurs largeurs et positions (left)
J'ai mis un code en place, en voici une version simplifiée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub NbImgDnsCell() Dim Shp_S As Shape For Each Shp_S In ActiveSheet.Shapes If Shp_S.TopLeftCell.Address = ActiveCell.Address Then Debug.Print Shp_S.Name + " : " + CStr(Shp_S.Left) + " : " + CStr(Shp_S.Width) End If Next Shp_S End Sub
Le Debug.print est là pour l'exemple en pratique je charge les valeurs dans un tableau.
Cela fonctionne très bien avec une feuille qui contient peu d'images, mais dès qu'il y en a beaucoup cela prend du temps car avec ce principe, on vérifie l'adresse de chaque "Shape" de la feuille.
Je suis à la recherche d'une syntaxe du type
For Each Shp_S - In ….. Et là désigner une collection d'images situées uniquement dans la cellule active
Je ne sais pas si c'est possible, après bien des recherches, je n'ai rien trouvé de satisfaisant
D'avance merci.
Cordialement.
Partager