VBA-Supprimer une photo dans une cellule
Alvasta -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention - 31 mars 2016 à 14:12
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention - 31 mars 2016 à 14:12
A voir également:
- Vba topleftcell
- Excel compter cellule couleur sans vba - Guide
- Forum VB / VBA
- Forum Excel
- Forum Programmation
- Forum VB / VBA
4 réponses
Bonjour tout le monde,
eric
For Each s In ActiveSheet.Shapes If s.TopLeftCell.Address = "$B$21" Then s.Delete End If Next s
eric
re,
j'ai retrouvé !
il faut baptiser l'image quand on la charge
http://www.ct.com/c/FCzlokJB2Nt
les codes insérer e detruire
Michel
j'ai retrouvé !
il faut baptiser l'image quand on la charge
http://www.ct.com/c/FCzlokJB2Nt
les codes insérer e detruire
Option Explicit
Sub inserer_image()
Dim Image As Picture
Dim design As String
Range("B21").Select
design = ThisWorkbook.Path & "\virageadroite.jpg"
'design = "http://www.photo-libre.fr/nature/Mini/" & Cells(3, "B")
Set Image = ActiveSheet.Pictures.Insert(design)
With Image.ShapeRange
.Top = Range("B21").Top
.Left = Range("B21").Left
.Name = "cartepost"
.Height = Range("B21").Height - 10
.Width = Range("B21").Width - 10
.LockAspectRatio = msoFalse
End With
End Sub
Sub detruire()
ActiveSheet.Shapes("cartepost").Delete
End Sub
Michel
@ Michel et Eric
J'ai testé les 2 codes et je suis toujours bloqué.
Voici le code:
Pour inserer la photo dans la cellule B21
Option Base 1
Option Explicit
Sub insertpicture()
Dim Image As Variant
Dim sh As Shape
Dim L As Single, T As Single, W As Single, H As Single
Set shEntry = Sheets("AddEntry")
L = Range("B21").Left
T = Range("B21").Top
W = Range("B21").Width
H = Range("B21").Height
Image = Application.GetOpenFilename
If Image <> False Then
shEntry.Shapes.AddPicture Image, True, True, L, T, W, H
End If
'change the name of the picture
shEntry.Activate
For Each sh In ActiveSheet.Shapes
If sh.TopLeftCell.Address = "$B$21" Then
sh.Name = "Youhou"
End If
Next sh
End Sub
Pour supprimer la photo de la cellule B21
Sub saveincident()
Set shEntry = Sheets("AddEntry")
shEntry.Activate
ActiveSheet.Shapes("Youhou").Delete
End Sub
Merci!
J'ai testé les 2 codes et je suis toujours bloqué.
Voici le code:
Pour inserer la photo dans la cellule B21
Option Base 1
Option Explicit
Sub insertpicture()
Dim Image As Variant
Dim sh As Shape
Dim L As Single, T As Single, W As Single, H As Single
Set shEntry = Sheets("AddEntry")
L = Range("B21").Left
T = Range("B21").Top
W = Range("B21").Width
H = Range("B21").Height
Image = Application.GetOpenFilename
If Image <> False Then
shEntry.Shapes.AddPicture Image, True, True, L, T, W, H
End If
'change the name of the picture
shEntry.Activate
For Each sh In ActiveSheet.Shapes
If sh.TopLeftCell.Address = "$B$21" Then
sh.Name = "Youhou"
End If
Next sh
End Sub
Pour supprimer la photo de la cellule B21
Sub saveincident()
Set shEntry = Sheets("AddEntry")
shEntry.Activate
ActiveSheet.Shapes("Youhou").Delete
End Sub
Merci!
Bonjour,
Indente ton code et utilise la balise code (icone <>) pour que ça soit lisible.
Là on n'a pas envie de lire quoi que ce soit.
Michel et moi testons avant de proposer, donc chez nous c'est ok.
Dire ça marche pas n'éclaire en rien ton cas.
Dans ce cas déposer un fichier avec ce que tu as fait sur ct.com et colle ici le lien fourni.
eric
Indente ton code et utilise la balise code (icone <>) pour que ça soit lisible.
Là on n'a pas envie de lire quoi que ce soit.
Michel et moi testons avant de proposer, donc chez nous c'est ok.
Dire ça marche pas n'éclaire en rien ton cas.
Dans ce cas déposer un fichier avec ce que tu as fait sur ct.com et colle ici le lien fourni.
eric
Bonjour,
Il doit surtout faire ce que tu as décidé qu'il fasse, c'est toi qui gère.
Si tu as envie d'empiler 50 photos au même endroit il le fera.
Avant d'ajouter une photo en B21 boucle sur tous les shapes et si tu en as déjà une à cet emplacement (.top et .left) soit tu abandonnes, soit tu supprimes pour la remplacer (soit tu empiles mais je ne vois pas l'intérêt à part obtenir un fichier obèse qui plante)
Chaque emplacement de photos doit avoir un nom précis. Et si plusieurs doivent avoir le même nom tu peut démarrer le nom par la ref de la cellule pour les différencier. Ex : "B21_Ident", "B23_Ident"
eric
Je dois rajouter une commande obligant excel à supprimer toutes les images sur ma feuil1 portant le nom Youhou?
Il doit surtout faire ce que tu as décidé qu'il fasse, c'est toi qui gère.
Si tu as envie d'empiler 50 photos au même endroit il le fera.
Avant d'ajouter une photo en B21 boucle sur tous les shapes et si tu en as déjà une à cet emplacement (.top et .left) soit tu abandonnes, soit tu supprimes pour la remplacer (soit tu empiles mais je ne vois pas l'intérêt à part obtenir un fichier obèse qui plante)
Chaque emplacement de photos doit avoir un nom précis. Et si plusieurs doivent avoir le même nom tu peut démarrer le nom par la ref de la cellule pour les différencier. Ex : "B21_Ident", "B23_Ident"
eric
Ma photo n'a pas un nom particulier.
Pour charger la photo j'utilise le code suivant:
Sub insertpicture()
Dim Image As Variant
Dim L As Single, T As Single, W As Single, H As Single
Set shEntry = Sheets("AddEntry")
L = Range("B21").Left
T = Range("B21").Top
W = Range("B21").Width
H = Range("B21").Height
Image = Application.GetOpenFilename(, , Picture)
If Image <> False Then
shEntry.Shapes.AddPicture Image, True, True, L, T, W, H
End If
End Sub
Merci pour ton aide
Dois je modifier le nom de l'image que je l'importe ou quand je l'efface?
Image = Application.GetOpenFilename(, , Picture)
te donne normalement le nom de l'image
et donc, sans guillemets à image
ActiveSheet.Shapes(image).Delete
ceci ne marche pas.