Excel VBA images suppression
Résolu/Fermé
Evedll
Messages postés
74
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
26 septembre 2023
-
17 juin 2012 à 18:40
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 22 juin 2012 à 00:07
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 22 juin 2012 à 00:07
A voir également:
- Excel VBA images suppression
- Forcer suppression fichier - Guide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
8 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 17/06/2012 à 21:39
Modifié par eriiic le 17/06/2012 à 21:39
Bonjour,
est-ce que tes images ont toujours la même position relative par rapport à ta cellule ?
Par exemple IMG_3_G1 dans D104 ou 3 cellules à droite de D104...
(tenir compte de l'angle supérieur gauche)
Et si tu pouvais mettre un fichier avec 3 images.
eric
est-ce que tes images ont toujours la même position relative par rapport à ta cellule ?
Par exemple IMG_3_G1 dans D104 ou 3 cellules à droite de D104...
(tenir compte de l'angle supérieur gauche)
Et si tu pouvais mettre un fichier avec 3 images.
eric
Evedll
Messages postés
74
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
26 septembre 2023
17 juin 2012 à 23:00
17 juin 2012 à 23:00
Bonsoir Eric,
Merci de ta réponse.
Oui tout à fait, par exemple, pour l'adresse D104 l'image est dans la fusion de cellules (B101:B105) donc je pense en B101; pour l'adresse D111 l'image est dans la fusion de cellules (B108:B112); pour l'adresse D118 l'image est dans la fusion de cellules (B115:B119). Je suis désolée de ne pas pouvoir mettre mon fichier car comme c'est pour le boulot, je préfère qu'il ne soit pas public (il y a le logo).
Par contre si tu trouves une solution pour que je puisses te l'envoyer directement, pas de soucis. J'ai essayé de mettre une impression écran mais on ne peut pas mettre d'image.
Ca commence à l'adresse D6 jusqu'à D146.
Même chose pour la colonne H, H6 jusqu'à H146 (peut-être plus je ne sais pas encore) avec les images en colonne F. Toujours positionnées de la même façon par rapport à la cellule à contrôler.
C'est une sorte de tickets à remettre.
J'espère que tu comprends ma demande. Dans la négative, précise moi comment je peux te l'envoyer hors forum.
Je te remercie de bien vouloir m'aider.
Bonne soirée
Evelyne
Merci de ta réponse.
Oui tout à fait, par exemple, pour l'adresse D104 l'image est dans la fusion de cellules (B101:B105) donc je pense en B101; pour l'adresse D111 l'image est dans la fusion de cellules (B108:B112); pour l'adresse D118 l'image est dans la fusion de cellules (B115:B119). Je suis désolée de ne pas pouvoir mettre mon fichier car comme c'est pour le boulot, je préfère qu'il ne soit pas public (il y a le logo).
Par contre si tu trouves une solution pour que je puisses te l'envoyer directement, pas de soucis. J'ai essayé de mettre une impression écran mais on ne peut pas mettre d'image.
Ca commence à l'adresse D6 jusqu'à D146.
Même chose pour la colonne H, H6 jusqu'à H146 (peut-être plus je ne sais pas encore) avec les images en colonne F. Toujours positionnées de la même façon par rapport à la cellule à contrôler.
C'est une sorte de tickets à remettre.
J'espère que tu comprends ma demande. Dans la négative, précise moi comment je peux te l'envoyer hors forum.
Je te remercie de bien vouloir m'aider.
Bonne soirée
Evelyne
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 17/06/2012 à 23:50
Modifié par eriiic le 17/06/2012 à 23:50
Re,
C'est toujours mieux avec un fichier, d'autant plus avec des objets...
Il suffit de supprimer ou remplacer ce qui est personnel.
Teste avec ça pour voir :
https://www.cjoint.com/?BFrxLH4UHKS
eric
PS: j'avais oublié la colonne, remplace le code du fichier par celui collé ici.
Si tu as 2 shapes superposés en B3 (par exemples), les 2 seront effacés.
C'est toujours mieux avec un fichier, d'autant plus avec des objets...
Il suffit de supprimer ou remplacer ce qui est personnel.
Teste avec ça pour voir :
Sub suppShapes() Dim shap As Shape, lig As Long, col As Long For Each shap In Sheets("Feuil1").Shapes lig = shap.TopLeftCell.Row col = shap.BottomRightCell.Column If lig >= 3 And lig <= 146 And (col = 2 Or col = 6) Then If Cells(lig + 3, col + 2) = "" Then shap.Delete End If Next shap End SubSinon dépose un fichier allégé que tu peux me passer en mp.
https://www.cjoint.com/?BFrxLH4UHKS
eric
PS: j'avais oublié la colonne, remplace le code du fichier par celui collé ici.
Si tu as 2 shapes superposés en B3 (par exemples), les 2 seront effacés.
Evedll
Messages postés
74
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
26 septembre 2023
18 juin 2012 à 00:01
18 juin 2012 à 00:01
RE,
Comment te mettre le fichier en message privé, je ne l'ai jamais fait
Merci
Comment te mettre le fichier en message privé, je ne l'ai jamais fait
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Evedll
Messages postés
74
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
26 septembre 2023
18 juin 2012 à 00:14
18 juin 2012 à 00:14
Re,
ça y est je te l'ai envoyé en message privé.
Encore merci
Bonne nuit,
ça y est je te l'ai envoyé en message privé.
Encore merci
Bonne nuit,
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
18 juin 2012 à 08:43
18 juin 2012 à 08:43
Bonjour,
Lorsque tu vides D6 toutes les autres dates se retrouvent en erreur.
Si tu veux supprimer également les images dont les cellules liées sont en erreur ;
J'ai également ajouté le test du type d'objet car tu en as d'autres types sur la feuille.
eric
Lorsque tu vides D6 toutes les autres dates se retrouvent en erreur.
Si tu veux supprimer également les images dont les cellules liées sont en erreur ;
Sub suppShapes() Dim shap As Shape, lig As Long, col As Long For Each shap In ActiveSheet.Shapes If shap.Type = msoPicture Then lig = shap.TopLeftCell.Row col = shap.BottomRightCell.Column If lig >= 3 And lig <= 146 And (col = 2 Or col = 6) Then If IsError(Cells(lig + 3, col + 2)) Then shap.Delete ElseIf Cells(lig + 3, col + 2) = "" Then shap.Delete End If End If End If Next shap End Sub
J'ai également ajouté le test du type d'objet car tu en as d'autres types sur la feuille.
eric
Evedll
Messages postés
74
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
26 septembre 2023
19 juin 2012 à 13:11
19 juin 2012 à 13:11
Bonjour Eric,
Merci de ta réponse. J'ai une semaine chargée, dès que je trouve un moment, j'essaie d'analyser pour comprendre ce que tu as fait et je le teste (je suis pressée de comprendre). Dès que possible, je t'en fais part.
Encore merci
Evelyne
Merci de ta réponse. J'ai une semaine chargée, dès que je trouve un moment, j'essaie d'analyser pour comprendre ce que tu as fait et je le teste (je suis pressée de comprendre). Dès que possible, je t'en fais part.
Encore merci
Evelyne
Evedll
Messages postés
74
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
26 septembre 2023
21 juin 2012 à 22:57
21 juin 2012 à 22:57
Bonsoir,
Merci beaucoup car ça marche. J'ai un peu compris les lignes pour la première macro mais en ce qui concerne la deuxième, ce que tu as ajouté pour que ça fonctionne je ne l'ai pas tout à fait compris ( If shap.Type = msoPicture Then).
J'arrive parfois à adapter des macros que j'ai effectuées avec l'enregistreur mais la tienne, je n'aurais jamais trouvée.
J'ai trouvé une solution pour les remettre ensuite.
J'ai modifié ta macro pour qu'il supprime le reste, ensuite dans la colonne S j'ai placé des images de la même façon qu'en colonne B et j'ai créé une macro avec l'enregistreur pour les coller dans les colonnes B et F. De cette façon, je les récupère pour une prochaine utilisation.
Je me doute que ce n'est pas la meilleure façon mais j'ai essayé à maintes reprises et n'ai pas trouvé d'autre solution. Du moment que ça marche, c'est super.
Encore merci pour ton aide (il m'arrive dès que je peux de regarder tes macros car je comprends mieux quand il y a un exemple entier pour l'analyser. C'est ma façon pour progresser). Je n'ai pas la prétention de dire que je sais écrire des lignes mais avec l'enregistreur et l'aide de tous, je m'en sort un peu)
A bientôt
Evelyne
Merci beaucoup car ça marche. J'ai un peu compris les lignes pour la première macro mais en ce qui concerne la deuxième, ce que tu as ajouté pour que ça fonctionne je ne l'ai pas tout à fait compris ( If shap.Type = msoPicture Then).
J'arrive parfois à adapter des macros que j'ai effectuées avec l'enregistreur mais la tienne, je n'aurais jamais trouvée.
J'ai trouvé une solution pour les remettre ensuite.
J'ai modifié ta macro pour qu'il supprime le reste, ensuite dans la colonne S j'ai placé des images de la même façon qu'en colonne B et j'ai créé une macro avec l'enregistreur pour les coller dans les colonnes B et F. De cette façon, je les récupère pour une prochaine utilisation.
Je me doute que ce n'est pas la meilleure façon mais j'ai essayé à maintes reprises et n'ai pas trouvé d'autre solution. Du moment que ça marche, c'est super.
Encore merci pour ton aide (il m'arrive dès que je peux de regarder tes macros car je comprends mieux quand il y a un exemple entier pour l'analyser. C'est ma façon pour progresser). Je n'ai pas la prétention de dire que je sais écrire des lignes mais avec l'enregistreur et l'aide de tous, je m'en sort un peu)
A bientôt
Evelyne
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 22/06/2012 à 00:11
Modifié par eriiic le 22/06/2012 à 00:11
Bonsoir,
If shap.Type = msoPicture Then
Les autres objets n'ont pas forcément les même propriétés (TopLeftCell,...) et ça plante dans ce cas.
J'ai trouvé une solution pour les remettre ensuite.
Tu ne voulais pas les supprimer ?
Sinon on peut les réduire à 1pixel et les rétablir après, ou changer l'image si elle est dans un répertoire précis...
mais avec l'enregistreur et l'aide de tous, je m'en sort un peu
Je n'ai pas commencé autrement et tu vois qu'on progresse ;-)
eric
If shap.Type = msoPicture Then
Les autres objets n'ont pas forcément les même propriétés (TopLeftCell,...) et ça plante dans ce cas.
J'ai trouvé une solution pour les remettre ensuite.
Tu ne voulais pas les supprimer ?
Sinon on peut les réduire à 1pixel et les rétablir après, ou changer l'image si elle est dans un répertoire précis...
mais avec l'enregistreur et l'aide de tous, je m'en sort un peu
Je n'ai pas commencé autrement et tu vois qu'on progresse ;-)
eric