Probleme avec PictureFormat

  • Initiateur de la discussion Initiateur de la discussion abennis
  • Date de début Date de début

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 !

abennis

XLDnaute Nouveau
Bonjour.

J'ai trouvé une fonctionnalité Excel qui permet de transformer une image en couleurs en une image en niveaux de gris ou encore en une image en noir et blanc, et vice versa... C'est un petit icône qui se trouve sur la barre d'outils Image.

Dans mon application, je veux donc permettre aux gens de le faire.
Pour cela, j'ai utilisé l'enregistreur de Macro pour savoir quel code permettait de transformer une image en noir et blanc, ou en niveaux de gris
Le code que j'ai trouvé est celui-ci :

Code:
Selection.ShapeRange.PictureFormat.ColorType = msoPictureBlackAndWhite ' En noir et blanc
Selection.ShapeRange.PictureFormat.ColorType = msoPictureGrayscale ' En niveaux de gris

Alors le problème, c'est que dans mon application, j'utilise des contrôles Image. Et apparemment ces contrôles n'ont pas de propriété PictureFormat, et que par conséquent je n'arrive pas à coder ce que je veux coder.

Mieux encore, je me suis aperçu qu'on ne pouvait pas utiliser ce bouton de la barre d'outils sur des contrôles images. On ne peut l'utiliser qu'après avoir fait "Insérer, Image, A partir d'un fichier..."

Quelqu'un a-t-il une idée de comment faire, en sachant que j'aimerais vraiment utiliser des contrôles Image et pas autre chose

Merci d'avance
 
Re : Probleme avec PictureFormat

Bonjour le forum


Trouvé dans les archives du forum

Je ne sais pas si ca peut t'aider
Code:
Sub InsertPicture()
'SOURCE:
'http://www.excel-downloads.com/forum/14561-inserer-une-image-dimentionne.html
Dim MyCell As Range
Dim MyPicture As Picture
Dim image$
image = "C:\Mes documents\Mes images\test.jpg" 'ou le chemin désiré
Set MyCell = ActiveCell
MyCell.Select
Set MyPicture = ActiveSheet.Pictures.Insert(image)
    With MyPicture.ShapeRange
    .PictureFormat.ColorType = msoPictureGrayscale
    End With
End Sub

Quand tu parles de controle images tu parles de ceux-là:
Code:
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
        DisplayAsIcon:=False, Left:=92.25, Top:=219, Width:=108.75, Height:= _
        94.5).Select

Dans ce cas-la
Code:
Sub Test() 
'SOURCE:
'http://www.mrexcel.com/archive2/57000/66140.htm
    Const FName As String = "C:\LeChemin\LeFichier.jpg" 
    Dim Image As OLEObject 
    Set Image = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _ 
        DisplayAsIcon:=False, Left:=204.75, Top:=42, Width:=141, Height:=67.5) 
    Image.Object.Picture = LoadPicture(FName) 
End Sub

et effectivement si on rajoute
Image.ShapeRange.PictureFormat = msoPictureGrayscale

ca ne fonctionne pas

edit:
Mais comme ca cela fonctionne
Image.ShapeRange.PictureFormat.ColorType = msoPictureGrayscale

(Merci à Pierrot93)
 
Dernière édition:
Re : Probleme avec PictureFormat

Re, bonsoir le forum


Ce que je peux dire

c'est que Sub InsertPicture() permet
d'utiliser PictureFormat.ColorType = msoPictureGrayscale

et que Sub Test() ne le permets pas

Reste à savoir pourquoi tu tiens aboslument à utiliser des controles images
Forms.Image.1 (si c'est bien de ces controles dont tu parles)
 
Re : Probleme avec PictureFormat

Bonjour Asbenis, Stapple

une autre solution :

Code:
    ActiveSheet.Shapes("Picture 2").PictureFormat.ColorType = msoPictureBlackAndWhite  'ou msoPictureGrayscale

nom de ton image à adapter.

bonne soirée
@+
 
Re : Probleme avec PictureFormat

Re

Bonsoir Pierrot93

->Pierrot93: dans ton code tu n'utilises pas ce controle
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1,

Or c'est ce que sembles vouloir utiliser abennis (sauf erreur de ma part)
Alors le problème, c'est que dans mon application, j'utilise des contrôles Image

Sub InsertPicture() et ta solution( qui utilise la meme syntaxe)
s'applique à des Shapes
 
Re : Probleme avec PictureFormat

Re

je ne comprends pas, je viens de tester code ci dessous, et la ligne de code que j'avais communiqué fonctionne chez moi (Excel2003) :

Code:
Sub test()
Const FName As String = "C:\Documents and Settings\Pierrot93\Mes documents\Mes images\Tigre1.jpg"
    Dim Image As OLEObject
    Set Image = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
        DisplayAsIcon:=False, Left:=204.75, Top:=42, Width:=141, Height:=67.5)
    Image.Object.Picture = LoadPicture(FName)
ActiveSheet.Shapes(1).PictureFormat.ColorType = msoPictureBlackAndWhite  'ou msoPictureGrayscaleEnd Sub
End Sub

@+
 
Re : Probleme avec PictureFormat

re

MEA CULPA


Snif, moi je ne suis que sous XL2000

chez moi ca ne fonctionne pas

Rectification ca fonctionne

Ce qui ne fonctionnait pas

Code:
Image.Object.Picture = LoadPicture(FName) 
Image.ShapeRange.PictureFormat = msoPictureGrayscale

J'ai pas été trés fin sur ce coup là
(la ligne ci-dessous fonctionne)
Code:
Image.ShapeRange.PictureFormat.ColorType = msoPictureGrayscale
 
Dernière édition:
- 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

Discussions similaires

Retour