indexs dans collection pictures incohérents

patricktoulon

XLDnaute Barbatruc
bonjour a tous
j'ai un soucis avec pictures
cette petite boucle me liste mêmes les bouton activX et toutes shapes confondues
alors que je n'ai qu'une seule image :oops: o_O
VB:
Sub test()
    With ActiveSheet
        For i = 1 To .Pictures.Count
            MsgBox .Pictures(i).Name
        Next
    End With

End Sub
c'est un peu gênant ;)

Résumé et résolution adoptée pour cette longue discussion

la collection pictures intégrant tout le oléobjects y compris les activeX
on est obligé de faire une boucle et de créer un range de shapes de type (13)msopicture
il y donc 2 solutions simples

Laurent en post91 qui la créé en selectionnant tout les shapes concernées
moi en post95 qui le cree avec un tableau de noms d'images
 
Dernière édition:
Solution
Re,
Partie 2
Comment Travailler avec Chaques images stockés de la feuille Excel dans la variable Objet "sr"
Avec une Boucle Ou juste sur une précise (J'ai choisie juste une précise est désactivé la boucle)
Pour Travailler avec les images :
https://docs.microsoft.com/fr-fr/office/vba/api/excel.pictureformat
Méthodes
Propriétés
Code...

patricktoulon

XLDnaute Barbatruc
re
je ne suis pas agressif du tout @sylvanu c'est toi qui t'es échauffé cet aprem:p:p
et en plus malgré mon signalement tu persistais je comprenais pas la ;)

@laurent950 je suis pas un crack du tout
il est vrai que j'ai cette réputation de prendre les choses a contre courant envers et contre même des règles( et je m'en fout :p:p:p) du développeur ,mais ca me permet d'explorer avec une autre vision parfois ça m'est profitable parfois moins dans le cas present il va falloir que j'explore ça dans un autre angle (va savoir ce que je vais trouver)
je trouve absurde de devoir boucler pour chopper l'image(1) qui est la seule
 

laurent950

XLDnaute Accro
Re Patrick,
justement j'ai aussi chercher aujourd'hui, car je suis dans ce même avis mais je me pose cette question :
Excel c'est un tableur est donc des coordonées : pour accéder à la cellule A1 la position est connu mais pour l'image sur la feuille excel la position n'est pas connus ? sauf si cette image est à une position sur cette feuille est ont peux y acceder directement... mais si trois images qui sont coller les une sur les autres (des doublons) comment choisir la bonne ? c'est incroyable de passer par une boucle... j'ai le même soucis avec autocad pour récuperer des objets dans les dessins !
C'est vraiment complexe
 

jmfmarques

XLDnaute Accro
Si l'on me permet :
1) et surtout :Je regrette l'absence dans cette discussion de Michel (MichelXLD, alias Silkyroad). S'il passe par là : qu'il soit assuré de toute mon amitié.
2) Il est toujours malsain de tenter de détourner la vocation fondamentale de fonctions, méthodes, etc ... (d'éléments, membres ..., si vous préférez cette dénomination).
Il s'agit ici de la collection Pictures, qui n'est pas là pour servir à des développements, mais uniquement pour assurer la compatibilité avec des versions ANTERIEURES. Et elle le fait bien, dans CE sens-là. Elle n'est pas là pour permettre de nouvelles "exploitations".
Amitiés à tous.
 

laurent950

XLDnaute Accro
Bonsoir Patrick,
Voici la solution pour un acces a l'image sans aucune boucle en rapport avec le poste #1

Code :

VB:
Sub ImageCible()
Dim Imag As Shape
' Si une image sur la feuille = Array(1)
    'ActiveSheet.Shapes.Range(Array(1)).Select
' suite si on veux stocké cette image dans un objet
' Nom et Coordonné d'origine de l'image.
    Debug.Print ActiveSheet.Shapes.Range(Array(1)).Name
    Debug.Print ActiveSheet.Shapes.Range(Array(1)).Left
    Debug.Print ActiveSheet.Shapes.Range(Array(1)).Top
    Debug.Print ActiveSheet.Shapes.Range(Array(1)).Width
    Debug.Print ActiveSheet.Shapes.Range(Array(1)).Height
' Stockage de l'image
Set Imag = ActiveSheet.Shapes(ActiveSheet.Shapes.Range(Array(1)).Name)
' Acces a cette image sans boucle
Imag.Select
    Debug.Print Imag.Name
    Debug.Print Imag.Left
    Debug.Print Imag.Top
    Debug.Print Imag.Width
    Debug.Print Imag.Height
End Sub

Ps : Lien utiles
 

patricktoulon

XLDnaute Barbatruc
re
Alors la !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
je m'incline
tu a droit a tout mon respect Laurent
bravo!!!!!!!!!!!!!!!!
j'ai testé avec des activx et images et des shapes les images ont un ordre de creation aleatoire et ca match a tout les coup
avec plusieurs images impeccable

1 pour la première 2 pour la seconde etc.......
bravo!!!!!

je peux donc utiliser x images
 

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko