IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Supprimer une photo dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 34
    Par défaut Supprimer une photo dans une cellule
    Bonjour à tous
    Je cherche comment supprimer une photo dans un cellule
    j'ai deja quelque chose mais ça ne marche pas
    si quelqu'un peux m'aider je suis preneur
    merci d'avance

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Efface les images du champ A120

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub EffaceMentShapeChamp()
      For Each s In ActiveSheet.Shapes
        If Not Intersect(s.TopLeftCell, Range("$A$1:$D$20")) Is Nothing Then  s.Delete
      Next s
    End Sub
    Boisgontier
    http://boisgontierjacques.free.fr

  3. #3
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 34
    Par défaut
    Bonjour BoigontierJacques
    Merci pour ton aide ça marche
    seulement ça efface tout le champ meme les boutons
    je vais mettre les bouton hors du champ

    moi j'avais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets(Feuil1).Select
    For Each Sh In WorkSheets(Feuil1).Shapes
    If Sh TopLeftCell.Address=Range("C2").Address Then
    Sh Delete
    End If
    Next
    ça ne marche pas pourquoi?
    Bonne journée et encore merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par legland Voir le message
    seulement ça efface tout le champ meme les boutons
    Bonjour,

    En reprenant la solution de Jacques, si le nom de vos images commencent par une chaîne générique comme "Image YYYYY", il suffirait de tester les premiers caractères du nom pour les différencier des autres formes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           If Mid(S.Name, 1, 5) = "Image" Then S.Delete

  5. #5
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 34
    Par défaut
    Bonjour Eric Kergresse
    les nom de mes photos sont les noms et prenoms des gens
    mais ce que m'a communiqué Boigontier jacques c'est bon ça marche
    merci à vous deux
    si quelqu'un pouvait m'expliquer pourquoi ma macro ne marchait pas
    j'aurai appris quelque chose

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub EffaceMentShapeChampSaufBoutons()
      For Each s In ActiveSheet.Shapes
        If Not Intersect(s.TopLeftCell, Range("$A$1:$D$20")) Is Nothing Then
          If s.Type <> 8 And s.Type <> 12 Then s.Delete
        End If
      Next s
    End Sub
    Boisgontier
    http://boisgontierjacques.free.fr
    Fichiers attachés Fichiers attachés

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par legland Voir le message
    si quelqu'un pouvait m'expliquer pourquoi ma macro ne marchait pas
    j'aurai appris quelque chose
    Ce que vous avez mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sheets(Feuil1).Select
    For Each Sh In WorkSheets(Feuil1).Shapes
    If Sh TopLeftCell.Address=Range("C2").Address Then
    Sh Delete
    End If
    Next

    Ce que vous auriez dû mettre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub Essai()
     
    Dim Sh As Shape
     
        For Each Sh In Sheets("Feuil1").Shapes
       '  For Each Sh In Feuil1.Shapes ' Alternative
            If Sh.TopLeftCell.Address = Range("C2").Address Then Sh.Delete
        Next
     
    End Sub

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par boisgontierjacques Voir le message
    Salut Jacques,

    Astucieuse, ta solution.

  9. #9
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 34
    Par défaut
    Bonjour à Jacques et à Eric

    Merci beaucoup Vous m'avez bien aidé

    Je ne sais pas comment mettre Resolu

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut
    Bonjour,

    MERCI !!! c'est aussi ce que je cherchais depuis longtemps ! !

    Pour optimiser la durée d'exécution rajouter "Exit for" dans la boucle afin de sortir plus rapidement.



    Sub Essai()

    Dim Sh As Shape

    For Each Sh In Sheets("Feuil1").Shapes
    ' For Each Sh In Feuil1.Shapes ' Alternative
    If Sh.TopLeftCell.Address = Range("C2").Address Then
    Sh.Delete
    Exit For
    End if
    Next

    End Sub



    Autre question :
    Pourquoi est-il nécessaire de "scanner" l'ensemble de la feuille si on connait déjà l'emplacement de l'image dans cellule (mais pas son nom) ???


  11. #11
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    il n'y a pas d'obligation mais lorsque le nom n'est pas connu cette méthode est bien plus simple …

    ___________________________________________________________________________________________________________
    Je suis Paris, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Dans une table, copier une valeur dans les cellules vides suivantes
    Par stsym dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/12/2016, 21h09
  2. Réponses: 2
    Dernier message: 23/03/2014, 12h05
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  5. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo