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 :

Insérer une image pour jeu de plateau VBA/Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Par défaut Insérer une image pour jeu de plateau VBA/Excel
    Bonjour à tous,

    J'ai fait un jeu Plants vs Zombies en VBA avec un jeu de plateau Excel, depuis le début j'ai travaillé avec des noms, c'est à dire que dans les cellules pour les plantes on a "P11", "P12" etc. et pour les zombies on a "Zombie 1" etc.

    J'aimerai désormais afficher des images à la place de ces textes, j'ai alors fait 2 subs que vous retrouverez ci-dessous pour effacer mes images à chaque tour de jeu et les redessiner, mais un problème se pose...
    Dans la Sub pour dessiner les plantes je n'ai mis qu'une sorte d'une plante, c'est normal, je ne l'ai pas finie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub Suppression_Shapes()
        'supression de toutes les shapes
        'dont le point bas droit se trouve sur les colonnes 4 à 13
        Dim boutons As Variant, s As Shape
        boutons = Array("Button 1", "Button 2", "Button 3", "Button 4")
        For Each s In ActiveSheet.Shapes
            If IsError(Application.Match(s.Name, boutons, 0)) Then s.Delete
        Next
     
    End Sub
     
    Sub Dessiner_Shapes()
        'dessine les images là où elles doivent aller
        For i = 4 To 13
            For j = 2 To 7
                Cells(j, i).Select
                If Cells(j, i).Value = "P11" Or Cells(j, i).Value = "P12" Or Cells(j, i).Value = "P13" Or Cells(j, i).Value = "P14" Then
                    ActiveSheet.Pictures.Insert(Sheets("Pions").Range("D2").Value).Select
                End If
            Next j
        Next i
    End Sub
    Pour déplacer une plante dans mon jeu, on doit cliquer sur la cellule où la plante se trouve, sauf que si une image s'y trouve, on clique sur l'image et non la cellule donc la cellule n'est pas prise en compte pour la déplacer...

    Des solutions ? Par avance merci !

  2. #2
    Inactif  
    Homme Profil pro
    Analyste-Programmeur / Intégrateur ERP
    Inscrit en
    Mai 2013
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur / Intégrateur ERP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 511
    Par défaut
    Bonjour,

    Tu pourrais affecter une macro (celle-ci pouvant être la même pour toutes) à chacune de tes images, qui se déclenchera lorsque tu clic dessus :

    Clic droit sur ton image => affecter une macro...


    Ensuite dans ta procédure, il te suffit d'identifier l'image qui a appelé la macro, en testant le contenu de Application.Caller, et faire le bon traitement en fonction.


    Cordialement.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Par défaut
    Bonjour,

    Citation Envoyé par Zirak Voir le message
    Tu pourrais affecter une macro (celle-ci pouvant être la même pour toutes) à chacune de tes images, qui se déclenchera lorsque tu clic dessus
    Ne serait-il pas possible d'afficher les images en "arrière-plan", c'est à dire on les verrait mais lorsqu'on voudrait cliquer dessus on sélectionnerait la cellule car elle serait au "premier plan" et non l'image, si tu vois ce que je veux dire...

    Cordialement.

  4. #4
    Inactif  
    Homme Profil pro
    Analyste-Programmeur / Intégrateur ERP
    Inscrit en
    Mai 2013
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur / Intégrateur ERP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 511
    Par défaut
    Pas à ma connaissance non, peut-être que quelqu'un d'autre saura comment faire si jamais c'est possible, mais pour ma part je ne sais pas.


    Sinon quel est le problème avec la solution proposée ?

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2018
    Messages : 25
    Par défaut
    Citation Envoyé par Zirak Voir le message
    Sinon quel est le problème avec la solution proposée ?
    Corrige moi si je me trompe, mais j'ai fait tout un système de déplacement par rapport aux cellules, je crois comprendre que ce que tu me propose ne dépend plus des cellules mais uniquement des images ?

    Bien à toi,

  6. #6
    Inactif  
    Homme Profil pro
    Analyste-Programmeur / Intégrateur ERP
    Inscrit en
    Mai 2013
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur / Intégrateur ERP
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 511
    Par défaut
    Certes, mais une fois que tu as cliqué sur l'image, tu peux identifier de laquelle il s'agit (via Application.Caller), et ensuite grâce à cela, dans quelle cellule elle se trouve (via l'instruction .TopLeftCell.Address), pour ensuite appliquer ta gestion via l'adresse de la cellule.


    Après pour ma part, je ne vois pas spécialement d'autre solution.

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

Discussions similaires

  1. [XL-2010] Insérer une image variable corps de mail VBA
    Par nonesofar dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/06/2017, 12h26
  2. [XL-2010] Insérer une image dans un mail généré par excel
    Par Nano33320 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/01/2017, 07h32
  3. Réponses: 1
    Dernier message: 05/07/2014, 15h14
  4. Problème pour insérer une image
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 26/04/2006, 23h36
  5. [Images] représentation d'une carte pour jeu en php
    Par maniaco_jazz dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 29/11/2005, 10h41

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