Sub test()
With ActiveSheet
For i = 1 To .Pictures.Count
MsgBox .Pictures(i).Name
Next
End With
End Sub
Sub O_Mon_Tablo_KILéBo()
Dim tableau_de_pictures() As Variant
On Error Resume Next
tableau_de_pictures = _
Application.GetOpenFilename("Fichier Jpg (*.jpg), *.jpg ,Fichier Jpeg (*.jpeg), *.jpeg, Fichier Bitmap (*.bmp), *.bmp", MultiSelect:=True)
If IsArray(tableau_de_pictures) Then
For i = LBound(tableau_de_pictures) To UBound(tableau_de_pictures)
Cells(i, 1) = tableau_de_pictures(i)
Next
End If
End Sub
et enfin une SEULE !! picture qui est insérer(pictures.insert) /delétée dynamique autant de fois que je clique sur bouton
Type Pict: Count As Long: Picture() As Picture: End Type
Dim pctX As Pict
Function groupPct() As Pict
Dim tabl As Pict
With ActiveSheet
For Each shap In .Shapes
If shap.Type = 13 Then
a = a + 1: ReDim Preserve tabl.Picture(1 To a): Set tabl.Picture(a) = ActiveSheet.Pictures(shap.Name): tabl.Count = a
End If
Next
End With
groupPct = tabl
End Function
Sub test2()
Dim GrouPpictureX As Pict
GrouPpictureX = groupPct
'test d'utilisation de la méthode pictureformat de la classe picture(OK)la cible= pictures(3)
With GrouPpictureX.Picture(3).ShapeRange
With .PictureFormat
.CropLeft = 50
End With
End With
End Sub
Oui mais alors ?je veux un tableau de pictures pas de shapes
car avec les object en tant que shapes dans le tableau , je n'ai pas acces au propriété et méthodes pictures
For Each shap In .Shapes
reponse post #85Re, Bonsoir patricktoulon
Oui mais alors ?
For Each shap In .Shapes
Sub CategorieShapeRange()
Dim ws As Worksheet
Set ws = Worksheets(ActiveSheet.Name)
Dim s As Shape
Dim sr As ShapeRange
Dim TabSr(1 To 3) As Shape
For Each s In ws.Shapes
If s.Type = 13 Then
s.Select False
End If
Next
Set sr = Selection.ShapeRange
ws.Cells(1, 1).Select
' ***********************************
' ***********************************
' Boucle (Test) sur toutes les images
For i = 1 To sr.Count
sr.Item(i).Select
Debug.Print sr.Item(i).Name
MsgBox TypeName(sr.Type) & " " & sr.Item(i).Name
' essaie msgbox typename(TabSr(i)) je suis curieux
MsgBox TypeName(sr.Item(i).Type) & " " & sr.Item(i).Name
Next i
' En conclusion :
' le conteneur sr (Objet) qui contient l'ensemble de tous les types 13 (Ranger dans un tableau d'objet (Item 1 à Infini entre "")
' Alors :
' Typename c'est donc un long ci-dessous.
' C'est normal que TypeName(sr.Type) soit la même chose que TypeName(sr.Item(1).Type) Ou TypeName(sr.Item(2).Type) Ou TypeName(sr.Item(2).Type)
' Car Sr Contient à la base tous se qu'il y a en commun avec tout les objets de type 13
' est lorsque c'est plus en commun c'est ranger dans le tableau de tableau (Item(1) --> Item(2) --> à Item(etc...)
' ***********************************
' ***********************************
' Deselection des images
ws.Cells(1, 1).Select
End Sub
Sub CategorieShapeRange()
Dim ws As Worksheet
Set ws = Worksheets(ActiveSheet.Name)
Dim s As Shape
Dim sr As ShapeRange
Dim TabSr(1 To 3) As Shape
For Each s In ws.Shapes
If s.Type = 13 Then
s.Select False
End If
Next
Set sr = Selection.ShapeRange
ws.Cells(1, 1).Select
' ***********************************
' https://docs.microsoft.com/fr-fr/office/vba/api/excel.pictureformat
' PictureFormat, objet (Excel)
' Utilisez la propriété PictureFormat de l'objet Shape pour renvoyer un objet PictureFormat .
' L'exemple suivant montre comment définir la luminosité, le contraste et le changement de couleur
' de la forme 1 de myDocument et comment rogner le bas de cette forme de 18 points. Pour que cet
' exemple fonctionne, la forme 1 doit être soit une image, soit un objet OLE.
'Set myDocument = Worksheets(1)
'With myDocument.Shapes(1).PictureFormat
' .Brightness = 0.3
' .Contrast = 0.7
' .ColorType = msoPictureGrayscale
' .CropBottom = 18
' end with
' ***********************************
' Boucle (Test) sur toutes les images
'For i = 1 To sr.Count
' ici test sur l'image Picture 4
With sr.Item(4).PictureFormat
.Brightness = 0.3
.Contrast = 0.7
.ColorType = msoPictureGrayscale
.CropBottom = 18
End With
'Next i
' En conclusion :
' le conteneur sr (Objet) qui contient l'ensemble de tous les types 13 (Ranger dans un tableau d'objet (Item 1 à Infini entre "")
' Alors :
' Typename c'est donc un long ci-dessous.
' C'est normal que TypeName(sr.Type) soit la même chose que TypeName(sr.Item(1).Type) Ou TypeName(sr.Item(2).Type) Ou TypeName(sr.Item(2).Type)
' Car Sr Contient à la base tous se qu'il y a en commun avec tout les objets de type 13
' est lorsque c'est plus en commun c'est ranger dans le tableau de tableau (Item(1) --> Item(2) --> à Item(etc...)
' ***********************************
' ***********************************
' Deselection des images
ws.Cells(1, 1).Select
End Sub
' Plus besoin d'une boucle
' sr.PictureFormat (Traite toutes les images en 1 fois)
'For i = 1 To sr.Count
With sr.PictureFormat
.Brightness = 0.3
.Contrast = 0.7
.ColorType = msoPictureGrayscale
.CropBottom = 18
End With
'Next i