Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer des copies d'images nommées

2 réponses
Avatar
garnote
Bonjour et Bonne journée,

Sur une feuille de calcul, j'ai 4 boutons et une zone de texte.
J'insère une image et je fais cinq copies de ladite image.
Je désire obtenir le nombre d'images sur ma feuille et
les supprimer. Si j'appelle la macro Compte, elle me renvoie
6 et c'est correct.

Sub Compte()
Dim forme As Object
Dim i As Integer
For Each forme In ActiveSheet.DrawingObjects
If TypeName(forme) = "Picture" Then i = i + 1
Next forme
MsgBox i
End Sub

Si j'appelle la macro Efface, elle supprime les 6 images et c'est corect aussi.
Sub Efface()
Dim forme As Object
Dim i As Integer
For Each forme In ActiveSheet.DrawingObjects
If TypeName(forme) = "Picture" Then forme.Delete
Next forme
End Sub

Mais si je donne un nom à l'image que j'insère et que j'en fais
cinq copies, la macro Compte me renvoie 6 et c'est encore correct.
Par contre la macro Efface bloque à forme.Delete.

Pourquoi en est-il ainsi et comment puis-je me sortir de cette affaire-là ?
Il faut que mes images soient nommées.

Merci
Serge

2 réponses

Avatar
garnote
Yep, c'est parfait ainsi.

Merci
Serge


"MichDenis" a écrit dans le message de news:
Et si tu essayais ceci pour effacer toutes tes images :

Tu dois adapter le nom de la feuille...

Sub Efface()
Dim sh As Shape
For Each sh In Worksheets("Feuil1").Shapes
If sh.Type = msoPicture Then
sh.Delete
End If
Next
End Sub




"garnote" a écrit dans le message de news:
%
Bonjour et Bonne journée,

Sur une feuille de calcul, j'ai 4 boutons et une zone de texte.
J'insère une image et je fais cinq copies de ladite image.
Je désire obtenir le nombre d'images sur ma feuille et
les supprimer. Si j'appelle la macro Compte, elle me renvoie
6 et c'est correct.

Sub Compte()
Dim forme As Object
Dim i As Integer
For Each forme In ActiveSheet.DrawingObjects
If TypeName(forme) = "Picture" Then i = i + 1
Next forme
MsgBox i
End Sub

Si j'appelle la macro Efface, elle supprime les 6 images et c'est corect aussi.
Sub Efface()
Dim forme As Object
Dim i As Integer
For Each forme In ActiveSheet.DrawingObjects
If TypeName(forme) = "Picture" Then forme.Delete
Next forme
End Sub

Mais si je donne un nom à l'image que j'insère et que j'en fais
cinq copies, la macro Compte me renvoie 6 et c'est encore correct.
Par contre la macro Efface bloque à forme.Delete.

Pourquoi en est-il ainsi et comment puis-je me sortir de cette affaire-là ?
Il faut que mes images soient nommées.

Merci
Serge














Avatar
MichDenis
Et si tu essayais ceci pour effacer toutes tes images :

Tu dois adapter le nom de la feuille...

Sub Efface()
Dim sh As Shape
For Each sh In Worksheets("Feuil1").Shapes
If sh.Type = msoPicture Then
sh.Delete
End If
Next
End Sub




"garnote" a écrit dans le message de news:
%
Bonjour et Bonne journée,

Sur une feuille de calcul, j'ai 4 boutons et une zone de texte.
J'insère une image et je fais cinq copies de ladite image.
Je désire obtenir le nombre d'images sur ma feuille et
les supprimer. Si j'appelle la macro Compte, elle me renvoie
6 et c'est correct.

Sub Compte()
Dim forme As Object
Dim i As Integer
For Each forme In ActiveSheet.DrawingObjects
If TypeName(forme) = "Picture" Then i = i + 1
Next forme
MsgBox i
End Sub

Si j'appelle la macro Efface, elle supprime les 6 images et c'est corect aussi.
Sub Efface()
Dim forme As Object
Dim i As Integer
For Each forme In ActiveSheet.DrawingObjects
If TypeName(forme) = "Picture" Then forme.Delete
Next forme
End Sub

Mais si je donne un nom à l'image que j'insère et que j'en fais
cinq copies, la macro Compte me renvoie 6 et c'est encore correct.
Par contre la macro Efface bloque à forme.Delete.

Pourquoi en est-il ainsi et comment puis-je me sortir de cette affaire-là ?
Il faut que mes images soient nommées.

Merci
Serge