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 :

Envoyer une image en arrière plan / Rappeler une image en premier plan


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2015
    Messages : 28
    Points : 19
    Points
    19
    Par défaut Envoyer une image en arrière plan / Rappeler une image en premier plan
    Hello
    J'ai créé des "shapes" dans une page et je cherche à rendre cette image tantôt invisible, tantôt visible selon des actions de l'utilisateur ...
    Mon idée est donc tantôt d'envoyer l'image en premier plan, tantôt en arrière plan.

    (A noter que j'ai renoncé à des Cut/ Paste à cause des basculements d'écrans !)

    ==> SOS ! - Merci - Patrick

    Pour l'instant mon code ressemble à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Indice = "Icone_" & CStr(Ancienne_Carte)
            Set I = Sheets("Board").Shapes(Indice)
            I.Fill.Visible = msoFalse
            I.Fill.Transparency = 1#
            Rem I.Cut
            Rem Sheets("Board").Select
            Rem Range("AC12").Select
            Rem ActiveSheet.Paste

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par patrick.iribarne Voir le message
    (A noter que j'ai renoncé à des Cut/ Paste à cause des basculements d'écrans !)
    Les écrans basculent parce que tu utilises des Select, pas à cause des Cut / Paste.
    Mais utiliser des Select pour faire ça n'est absolument pas indispensable. Je dirais même qu'à mon avis c'est fortement déconseillé.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2015
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    OK, mais alors comment coller mon image dans la cellule AC12 sans faire de select ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Sheets("Board").Select
            Range("AC12").Select
            ActiveSheet.Paste

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Sheets("Board").Shapes(Indice).Cut
            Sheets("Board").Range("AC12").Paste
    Tu comprends mieux maintenant pourquoi je déconseille les Select ?
    Sans les Select, le code est plus simple et l'exécution plus rapide et plus élégante. Que demander de plus ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2015
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Oui, Compris ! Mais bon, j'ai une erreur d'exécution sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Board").Range("D21").Paste
    ==> Le paste ne semble pas marcher ?

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    J'ai recopier ton code un peu vite.
    Range n'a pas de méthode Paste. Il faut utiliser PasteSpecial.
    https://msdn.microsoft.com/fr-fr/lib.../ff839476.aspx
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2015
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Euh ... Bon ... Pour revenir à ma recherche initiale : Comment envoyer une image "shape'" en background ou en foerground ?

    Avec par exemple I.Fill.Visible = msoFalsen, I.Fill.Transparency = 1# ... Mais je n'arrive pas à le faire fonctionner avec des instructions simples !

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    je cherche à rendre cette image tantôt invisible, tantôt visible
    Si tel est vraiment le but, la propriété visible fait chez moi l'affaire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Shapes("Image 1").Visible = False ' ou true pour montrer
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par patrick.iribarne Voir le message
    Comment envoyer une image "shape'" en background ou en foerground ?
    Ce n'est pas possible. Excel ne marche pas comme Word.
    Il n'est possible de mettre les Shapes "devant" ou "derrière" que les unes par rapport aux autres, pas par rapport aux cellules ou au tableau.
    Pour t'en persuader, crée une Shape unique dans une feuille, fais un clic droit dessus et tu verras que les commandes "mettre dessus/dessous" sont grisées donc indisponibles.
    Crée une seconde Shape et tu verras que ces commandes sont devenues disponibles.

    Avec par exemple I.Fill.Visible = msoFalsen, I.Fill.Transparency = 1# ... Mais je n'arrive pas à le faire fonctionner avec des instructions simples !
    Fill, comme son nom l'indique, concerne le remplissage de la forme, pas la forme elle-même.
    Si tu fais un rectangle, Fill te permet de définir comment il est rempli et, par exemple, de pouvoir le transformer en simple cadre (intérieur transparent).

    Mais ça ne peut pas marcher sur une image puisque l'objet est déjà rempli par lui-même.

    La seule solution est de voir si ça marche en appliquant Visible au Shape (sans Fill).
    https://msdn.microsoft.com/fr-fr/lib.../ff839674.aspx
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2015
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour

    Si tel est vraiment le but, la propriété visible fait chez moi l'affaire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Shapes("Image 1").Visible = False ' ou true pour montrer
    Ca marche pour le passage à False ! : L'image disparait bien !!!

    Mais lorsque je veux la faire "revenir" : j'ai une erreur d'exécution avec Sélection impossible !!! (code ci-dessous)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Indice = "Icone_" & CStr(IDCarte)
        ActiveSheet.Shapes(Indice).Select
        Selection.Visible = True

  11. #11
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Comment peux-tu en effet penser sélectionner ce qui n'est pas visible ?
    Pourquoi, d'ailleurs, sélectionner ?
    Il suffit de (exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Shapes("Image 1").Visible = True
    On ne travaille pas à "coups" de select, selection, etc
    On travaille directement sur les objets Excel (également vrai pour l'utilisation de .visible = False).
    Perds ces habitudes.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  12. #12
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par patrick.iribarne Voir le message
    Mais lorsque je veux la faire "revenir" : j'ai une erreur d'exécution avec Sélection impossible !!!
    Bis

    Citation Envoyé par Menhir Voir le message
    Mais utiliser des Select pour faire ça n'est absolument pas indispensable. Je dirais même qu'à mon avis c'est fortement déconseillé.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Mars 2015
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par unparia Voir le message
    Comment peux-tu en effet penser sélectionner ce qui n'est pas visible ?
    Pourquoi, d'ailleurs, sélectionner ?
    Il suffit de (exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Shapes("Image 1").Visible = True
    On ne travaille pas à "coups" de select, selection, etc
    On travaille directement sur les objets Excel (également vrai pour l'utilisation de .visible = False).
    Perds ces habitudes.
    Ca marche ! Avec le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Shapes("Shape").Visible = False 
    ActiveSheet.Shapes("Shape").Visible = True
    Heu ... le "Me." Connais pas ....

  14. #14
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par patrick.iribarne Voir le message
    Heu ... le "Me." Connais pas ....
    L'aide VBA est ton amie : https://msdn.microsoft.com/fr-fr/lib...ffice.15).aspx
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 22/06/2011, 07h13
  2. fermer une animation flash de premier plan sur une page web
    Par ledisciple dans le forum ActionScript 3
    Réponses: 8
    Dernier message: 23/05/2009, 10h41
  3. Réponses: 0
    Dernier message: 24/03/2009, 18h27
  4. Affichage en premier plan d'une TextBox
    Par molo2003 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/10/2007, 13h28
  5. Réponses: 2
    Dernier message: 07/02/2005, 16h43

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