Supprimer des images dans une cellule avec un bouton "reset"

Bonjour,
j’ai un menu déroulant qui m’affiche des images dans une cellule en fonction de mon choix, je souhaite créer un bouton pour supprimer automatiquement cette photo de ma cellule sans avoir a cliquer dessus manuellement.
J’ai essayé avec quelques codes mais j’arrive seulement à effacer les textes que j’écris et non pas les images de ma cellule. Connaissez vous un code qui marche pour ce problème ?

Merci

Bonjour

La solution la plus simple que j’utilise est de supprimer la cellule de la photo

Par exemple si la photo est en cellule A8 tu utilises cette ligne de code :

Range(« A8 »).Delete Shift:=xlToLeft

Il faut que la ligne de la photo ne soit pas avec d’autre donnée après la photo sinon utiliser pour la photo la cellule de la dernière colonne de la ligne et adapter l’instruction proposée

De plus tu dois ajuster les propriétés des photos comme ceci :

clique droit sur la photo :

choisir « Tailles et propriétés »

Ici ouvrir le menu « Propriétés »

choisir l’option « Déplacer et dimensionner avec les cellules »

Ainsi à chaque exécution de la ligne de code la cellule mentionnée et la photo qui en fait partie seront supprimées

Fais des essais et dis moi

Cela marche très bien comme méthode, cependant, lorsque je clique sur mon menu déroulant pour sélectionner une photo, elle ne s’affiche pas avec les bonnes propriétés dans la case de sortie. En gros, dans la colonne avec toutes mes images, j’ai les bonnes propriétés comme vous m’avez montré mais dès que je clique dans mon menu déroulant, la photo qui sort n’a pas ces propriétés et n’est donc pas supprimé par la ligne de code.

Bonjour
Le fait de cliquer sur un choix d un menu déroulant doit déclencher une procédure pour récupérer la photo correspondante et la mettre dans la cellule de destination
Il faudrait que je connaisse cette procédure et de savoir comment elle effectue cette opération mais logiquement celle ci doit concerver les propriétés de la photo initiale
Donc si celles ci sont bien paramétrées à l origine cela doit fonctionner
Envoie moi un exemplaire de ton fichier sans donnée confidentiele que j analyse et te dise

Je te propose cette solution

Rajoute avec la ligne de code de suppression de la cellule ces lignes :

For Each Sh In ActiveSheet.Shapes
Sh.Placement = xlMoveAndSize
Next

Touts les objets Shapes seront mis avec la bonne propriété et ainsi de pouvoir supprimer ton image avec l’instruction

Range(« A8 »).Delete Shift:=xlToLeft

ce qui donne ceci :

For Each Sh In ActiveSheet.Shapes
Sh.Placement = xlMoveAndSize
Next
Range(« A8 »).Delete Shift:=xlToLeft

Si dans la feuille tu as d’autres objet Shape autres que les images (Bouton de commande image texte etc…) et si tu souhaites qu’elles ne soient concernées par ce changement il faudra jouer sur le nom de ces images pour filtrer cette action sur les bons Shapes
Donnes moi la structure de leur nom afin que je trouve un élément qui les cible

Fais moi un retour

Séance avec planches en macros 2_12_14_02.xlsm (3,1 Mo)

J’ai essayé cette solution mais cela ne marche pas, j’ai du me tromper à un endroit.

Ci joint le excel, si vous pouviez jeter un oeil, merci

Et oui c’est ce que je craignais il n’y a pas que les images en objet Shape sur l’onglet traité il y a aussi un bouton « Reset warm up 1 » qui est lui aussi un objet Shape

Donc ma boucle proposée agit aussi sur celui-ci ce qui déclenche le bug car ses propriétés ne sont pas gérées de la même façon

J’ai rajouté une ligne de code se basant sur son nom pour l’exclure de la boucle
Et cela fonctionne

Ci-joint ton fichier corrigé

Testes et dis moi

Séance avec planches en macros 2_12_14_02.xlsm (3,1 Mo)

Cela marche bien pour la photo deja dans la cellule A8 mais dès que je sélectionne dans mon menu déroulant une autre image, il y a une erreur dans le code apparemment.

Bonjour

Un autre objet Shapes dans l’onglet perturbe le traitement je l’ai aussi filtré
Après plusieurs essais tout semble fonctionner normalement
Ressaies de ton côté et dis moi

Séance avec planches en macros 2_12_14_02.xlsm (3,1 Mo)

Ca marche très bien merci ! Si maintenant je veux ajouter d’autres boutons « reset » comme celui la 5 ou 6 fois en dessous, y-a-t-il des choses a changer dans le code ou uniquement les cellules que je veux effacer ?

merci

Bonjour
Merci du retour
Pour l’ajout des boutons il faut vérifier leur nom
si ceux ci commence par « Bouton » rien à modifier dans le code ils sont tous filtrés
Sinon il faut agir sur cette ligne :

If Sh.Name Like « Bouton* » = False And Sh.Name Like « Drop Down* » = False Then

Par exemple le nom commence par « Toto » il faut écrire la ligne comme ceci :

If Sh.Name Like « Bouton* » = False And Sh.Name Like « Drop Down* » = False And Sh.Name Like « Toto* » = False Then

Je suis à ta disposition en cas de difficulté

Au plaisir

Merci, cela marche parfaitement !

Il me reste maintenant à optimiser ma feuille et surtout trouver un moyen plus facile de remplir mes 36 cases d’images dans mon tableau. Car pour le moment la seule solution que j’ai, est de changer les cellules dans le code pour la sortie de l’image.
Si vous connaissez un moyen plus rapide que celui la sans trop toucher à l’organisation existante, je suis preneur

merci encore

Pour la suppression des images
ci-joint une solution qui t’évitera d’intervenir dans le code
Juste à sélectionner une cellule sur la même ligne que celle de l’image avant de cliquer sur le bouton
Un message de confirmation indiquant le numéro de la ligne objet de la suppression de l’image et du texte ligne suivante avant son exécution

Fais un teste et dis moi

Séance avec planches en macros 2_12_14_02.xlsm (3,1 Mo)

Pour remplir tes images il est possible d’utiliser ce même artifice avec la sélection d’une cellule de la ligne concernée par l’ajout de l’image avec ou sans confirmation du numéro de cette ligne

A toi de me dire c’est simple à mettre en place

Ah oui c’est super ce que vous avez fait pour la suppression des images.

Oui, je veux bien essayer votre méthode pour insérer une image dans une cellule.

Si vous pouviez me le faire cela serait top ! merci

Ci-joint une nouvelle version

au choix N4 une boîte de dialogue demande le numéro de la ligne
L’image est inséré sur cette ligne en colonne A et son texte sur la ligne du dessous de cette colonne
Le traitement est annulé si aucune saisie ou saisie non numérique
Testes et dis moi

Séance avec planches en macros 2_12_14_02.xlsm (3,1 Mo)

Bonsoir FFO,
Je te félicite de ta persistance pour la correction et l’amélioration de ce classeur,
Mais, ce n’est que mon avis, les images dans EXCEL, on les gères sur un dossier qui lui sera attribué
Déjà sur ce classeur, sans donnée pour ainsi dire 3.1 Mo, c’est trop lourd en gestion

Je n’ai pas tout suivi car il y a beaucoup de zone d’ombre dans la compréhension du programme, mais il y a surement possibilité de le gérer autrement.
Mais si le demandeur est heureux, c’est le principal :wink:

c’est super merci beaucoup, peut on faire en sorte de ne pas remplir que la colonne A mais aussi celles qui suivent ? ou est ce trop compliqué ?

Merci pour tes encouragements
Pour l’instant j’arrive à répondre au besoin
L’essentiel comme tu dis c’est de satisfaire la demande

Il me faut des précisions quant à ce que tu veux mettre dans les autres colonnes
Sont elles à remplir en même temps ou de manière spécifique ?
Pour cette 2° option attention de ne pas utiliser les mêmes lignes car la procédure de suppression comme son nom l’indique supprime les cellules donc décalerait les éventuelles images situées après sur ces mêmes lignes
Sur la base du choix réalisé en N4 ?

Merci de me dire

Ce qui serait top est qu’apres avoir fait mon choix en N4, je puisse chosir la cellule ou mettre mon image directement.

Sinon peut etre trouver un mecanisme qui dit que des que la colonne comporte une image on passe a la colonne B de la meme ligne et ainsi de suite.

A voir le plus simple