Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

indexs dans collection pictures incohérents

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 😳 😵
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...
Bonjour Staple1600,
Oui c'est vrais est comme le code est en accord avec ce liens j'ai rajouté les deux, mais c'est vrais que vous avez fait tous le travail avant. j'ai posté le code qui me semble pas trop mal et cela peux aussi servir par la suite.
laurent
 
Re

[COMPLEMENT INFO]
Source: Excel 2003 Object Model - Référence
[/COMPLEMENT INFO]

Question à cent sous
Quelle est la différence entre image et picture pour Microsoft ? 😉
 
re
bon mille excuses a tous j'ai du m'absenter
@Staple1600 ben oui le "." quelle nouille je fait 😳

@laurent950 bonjour ; oui intéressant pour un autre projet je stocke la source 😉

mon but étant de me simplifier la tache et je m’aperçois qu'il n'est pas possible de chopper l'object sans boucle
donc je coderais soit avec un "set pict= ..." avec une variable globale a la création

soit je me ferait une fonction avec une boucle que j’appellerais au besoins
 
Re

=>patricktoulon
?
Dans ce cas, pourquoi ton post est en: Résolu
Et que tu marques comme solution, la proposition de job75
pour écrire dans le message qui suit, que cela ne fonctionne pas.
Y'a truc que je pige pas (lol) 😉

PS1: index ne prends pas s au pluriel.
Ça pique les yeux, non ?
 
Dernière édition:
re
oui corriger
autant que sylvanu pourrait corriger ces dires quand au fait que la collection pictures est plus complète ou que shapes ne liste pas les formes automatiques
ce qui est faux et même le contraire 😉

donc pour le moment non résolu quand au fait d'un choix de méthode j'utilise la méthode de job75 pour l'instant
 
Re tout le monde,
Comme personne n'a pu me dire en quoi ces deux lignes de code comporte une erreur, les deux retours sont différents.
Je ne dis pas que c'est vrai ou faux, mais tout utilisateur utilisant ces lignes y verra une différence.
D'où le piège.
Code:
Cells(i, 2) = ActiveSheet.Pictures(i).Name
Cells(i + 7, 2) = ActiveSheet.Shapes(i).Name
 
Re

=>sylvanu
Effectivement, il se passe des choses bizarres 😉
Sur XL2013, un CommandButton est considéré aussi comme une "Picture"
VB:
Sub Tests_WTF()
Dim pic, shp As Shape
For Each pic In ActiveSheet.Pictures
pic.BottomRightCell.Offset(, 1) = pic.Name & " <-P"
Next
For Each shp In ActiveSheet.Shapes
'If shp.Type = msoPicture Then
shp.BottomRightCell.Offset(, 2) = shp.Name & " <-S"
'End If
Next
End Sub
 
Cells(i, 2) = ActiveSheet.Pictures(i).Name
Cells(i + 7, 2) = ActiveSheet.Shapes(i).Name
Site : https://silkyroad.developpez.com/VBA/FeuilleDeCalcul/#LIII-A
L'élément masqué Pictures
Il représente les images placées dans la feuille de calcul.
Cet élément est pris en charge uniquement pour assurer une compatibilité descendante entre les différentes versions d'Excel. Il préférable d'utiliser la propriété Shapes (type msoPicture) dans vos nouveaux projets. Néanmoins comme l'élément Pictures fonctionne encore (du moins jusqu'à Excel 2003) il peut être intéressant de voir son fonctionnement.
 
Bonsoir le fil

[Pour infos - bis]
Pour compléter ce qu'a écrit laurent950 dans le message#44
Pictures.Insert (deprecated)
In Excel 2007 this method inserts the picture as an embedded object
In Excel 2010 and later this method inserts the picture as a link (be warned)
*:deprecated= obsolète (selon mon dictionnaire 😉)
[/Pour infos - bis]
 

@sylvanu
je te l'ai dis plus haut en post #26 :fait moi plaisir inverse ton +7
comme ceci
VB:
Cells(i+ 7, 2) = ActiveSheet.Pictures(i).Name
Cells(i , 2) = ActiveSheet.Shapes(i).Name
[/QUOTE]

ton tableau picture est en bas et pas l'inverse tu verra que ça te donne un résultat exactement contraire a ce que tu a dis précédemment
a savoir que c'est la collection shapes qui liste tout
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…