Selection d'une image en fonction de la valeur d'une cellule

Jean-Pierre 47

XLDnaute Nouveau
Bonjour a tout le monde sur le forum,

Malgre avoir trouver quelque topic evoquant le sujet, j'ai toujours une petite question a propos de mon fichier excel..

En gros: c'est un tirage au sort aleatoire, sans doublon.
7 participants auxquels j'attribue 7 numeros, je lance ma macro, qui attribue aleatoirement 1 numero a chaque participant.

Pour plus de suspens, j'ai fait une "boucle" assez grosse. Voir fichier, vous comprendrez rapidement.

Ce que je voudrais faire maintenant, c'est attribuer une photo a chaque participant.

Ainsi, lors du tirage, il faudrait entre 5 et 10 secondes pour connaitre qui va recevoir un cadeau de qui.

Donc en K10, l'image devrait varier en meme temps que le nom correspondant en G9. Mais je n'y arrive pas!




Je ne sais pas si mes explications ont ete tres clairs, je peux reexpliquer avec plus de details si vous voulez!

Merci beaucoup pour votre aide, ce forum est vraiment d'une enorme utilite, une vraie mine d'or!

Merci baucoup!

JP
 

Pièces jointes

job75

XLDnaute Barbatruc
Re : Selection d'une image en fonction de la valeur d'une cellule

Bonjour Jean-Pierre, bienvenue sur le forum,

Voyez si le fichier joint vous convient.

J'ai revu votre macro et ajouté celles-ci :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
photo
End Sub

Sub photo()
On Error Resume Next
Range("K:Q").EntireColumn.Hidden = True
Range("K12:Q12").Find(ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole).EntireColumn.Hidden = False
End Sub

Les images sont dans les 7 cellules K10 à Q10. Quand on clique sur un prénom, l'image correspondante apparaît (la colonne est alors démasquée).

Pour remplacer les images par des photos, désactivez la 1ère macro en la mettant en commentaires, puis sélectionnez la plage des colonnes J à R et menu Format-Colonne-Afficher.

A+
 

Pièces jointes

Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : Selection d'une image en fonction de la valeur d'une cellule

Bonjour,
Je viens de terminer ceci,
j'ai mis des explications dans le fichier
J'utilise des controles Images.
Pour alléger le fichier je n'ai pas mis de photos en propriété picture
je t'en laisse le soin si cela te conviens
j'ai supprimé les formules, la macro s'en occuppe
Amicalement
 

Pièces jointes

Hulk

XLDnaute Barbatruc
Re : Selection d'une image en fonction de la valeur d'une cellule

Hello le Forum, P.S. salut Job ;)

Encore une petite proposition...

...Avec mes héros préférés :D

A prendre ici.

EDIT :

Pour tout de même préciser que dans cette version, il faut que le photos soient dans le même répertoire que le fichier, et il faut nommer les photos comme les noms.
La photo s'adapte à la taille de la cellule (K10).


Bon dimanche à tous.

Hulk.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Selection d'une image en fonction de la valeur d'une cellule

Rebonjour à tous,

Jean-Pierre, juste pour dire que je pars en vacances pour 15 jours. Si vous avez besoin de moi, envoyez-moi un message privé à partir du 1er mars.

A+
 

youky(BJ)

XLDnaute Barbatruc
Re : Selection d'une image en fonction de la valeur d'une cellule

Re,
petite gourde de ma part...
en macro remplacer la ligne ou il y a le mot Like par cette ligne
sinon c'est pas la bonne photos

If c.Name Like "Image" & num(k - 10) Then 'ici j'ai mis num(k-10)

Amicalement
 

ngogoisidore

XLDnaute Occasionnel
Re : Selection d'une image en fonction de la valeur d'une cellule

Bonjour Jean-Pierre, job75, youky(BJ), Hulk, le forum !

Aller, moi aussi je vais y aller de mon petit exemple (j'ai trop peiné pour trouver les icônes pour que cela dorme seulement sur mon disque dur :)).

Avec une approche légèrement différente pour les images (ImageList) et aussi pour le tirage aléatoire.

@+ et bonne fin de dimanche !

PS : J'espère que Jean-Pierre ne s'est pas découragé, et qu'il va nous revenir pour profiter de la foison d'exemples à sa disposition ;).
 

Pièces jointes

Dernière édition:

Hulk

XLDnaute Barbatruc
Re : Selection d'une image en fonction de la valeur d'une cellule

Re,

Absolument d'accord avec toi, je dis ça parce que je trouve que chacune de tes interventions sont impressionantes.. (c'est mon avis personnel)

Au plaisir, Hulk.
 

Jean-Pierre 47

XLDnaute Nouveau
Re : Selection d'une image en fonction de la valeur d'une cellule

Bonsoir a tous, et vraiment un grand merci a vous!

J'etais parti en week end, et ne m'attendais absolument pas a avoir autant de reponse, et de talent!

Donc tout est parfait, et la solution d'isidore est celle que je vais adopter je pense, elle repond le mieux a mon probleme(sans vouloir vexer les autres bien entendu!).

Juste une petite question: j'ai essayer de modifier la taille des images dans la propriete de ImageListCtrl, et j'ai un message d'erreur me disant:
"La propriete est en lecture seule si la liste de dessins contient des dessins".

Savaez-vous ce que cela signifie, et comment je peux modifier la taille des images?

Dans tous les cas, merci beaucoup a tous pour votre tres utile support!

JP
 

Hulk

XLDnaute Barbatruc
Re : Selection d'une image en fonction de la valeur d'une cellule

Hello,

Je reviens là dessus, car étant inspiré par l'excellent fichier d'Ngogo, mais sans avoir aucune prétention de l'égaler, (je fais ça plutôt pour m'entraîner) j'ai modifié donc ma chose, et je voulais savoir pourquoi je n'arrive pas à faire une boucle sur le With du code.

Voyez plutôt ces deux fichiers, le N°1 c'est ok, il fait bien le With à chaque image, mais j'aimerais faire un petit raccourci avec une boucle sur le fichier N°2 pour avoir le même résultat que N°1, mais je n'y arrive pas !

Il affecte le With qu'à la dernière image ?? C'est moi qui tourne en boucle :D

D'ailleurs J'ai aussi essayer de faire une boucle sur l'application de l'image, afin de réduire un maximum le code, mais en vain.

La suite de mon "exercice" consistera à faire comme Ngogo c'est à dire affecter une image aléatoirement, mais pour l'instant j'en suis pas là.

Tirage.zip

Un Génie me donnerait-il un coup de main :D

Merci.

Cdt, Hulk.

P. S. Ne vous moquez pas de mon oeuvre plutôt "puérile" please :rolleyes:
 
Dernière édition:

ngogoisidore

XLDnaute Occasionnel
Re : Selection d'une image en fonction de la valeur d'une cellule

Bonjour à tous,

J'ai corrigé une petite coquille dans mon fichier exemple (voir le lien : Lien supprimé)

Jean-Pierre,

Peut-être le savais tu déjà, mais pour redimensionner les images sans changer la taille de l'image originale, il faut effectivement, d'une part, passer en mode design et redimensionner le contrôle Image conteneur, et, d'autre part, ne pas oublier de régler la propriété (click droit sur le contrôle, puis Properties) PictureSizeMode de ce contrôle à fmPictureSizeModeZoom ou fmPictureSizeModeStretch.

Hulk,

Une proposition de procédure :

Code:
Sub Insere_Image()
    Dim rCell As Range

    For Each rCell In [I11:I17]
        ActiveSheet.Shapes.AddPicture Filename:=ThisWorkbook.Path & "\" & rCell.Offset(, -2).Value & ".jpg", _
        LinkToFile:=msoFalse, _
        SaveWithDocument:=msoTrue, _
        Left:=rCell.Left, _
        Top:=rCell.Top, _
        Width:=rCell.Width, _
        Height:=rCell.RowHeight
    Next rCell

    [G11].Select
End Sub

Quelques remarques :

  • L'instruction On Error Resume Next est valable pour tout le code au dessous de l'endroit où elle est écrite. Il est donc inutile de la répéter plusieurs fois de suite. L'instruction pour l'annuler est On Error Goto 0.
    D'autre part, il est préférable, à mon avis, de limiter son utilisation. Un message d'erreur, ça n'est pas bien agréable, mais ça signifie qu'il y a un problème. Avec cette instruction, on peut manquer l'apparition d'un problème.
  • La propriété Pictures de la Classe Worksheet est bien pratique, mais elle n'est plus officiellement supportée par Microsoft depuis Excel 97. La version officielle est la propriété Shapes.
  • Je te déconseille de donner le nom Shape à une variable, du fait que c'est déjà le nom d'une Classe et de propriétés de Classes.

Bonne reprise ;) !
@+
 
Dernière édition:

Hulk

XLDnaute Barbatruc
Re : Selection d'une image en fonction de la valeur d'une cellule

Hello tout l'monde :D

Bestial Ngogo et merci pour les infos!

Incroyable comme on peut abréger un code... C'est des bons exemples pour les débutants ça !

Par contre j'ai dis une bêtise hier...
Dans ton exemple, il donne aussi une et même image à chaque nom et à chaque fois non ?

Donc je me trompais en disant
La suite de mon "exercice" consistera à faire comme Ngogo c'est à dire affecter une image aléatoirement, ...
Autant pour moi.

Dans tous les cas merci encore et @+, Hulk. ;)
 

Statistiques des forums

Discussions
315 297
Messages
2 118 165
Membres
113 442
dernier inscrit
Nancy3608