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

Hulk

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

Hello,

Encore une petite chose.

Me suis appercu que, et ce à chaque fois pour la plupart des codes, les "Dim", par exemple ça (Isidore)
Code:
Dim rCell as Range
ne sert à rien.

Ou plutôt, j'imagine bien qu'il doit servir, mais on peut s'en passer et la macro fonctionne aussi bien sans !

A quoi ça sert finalement ??

Cdt, Hulk.
 

ngogoisidore

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

Hulk,

Sans vouloir jouer les rabat-joies, cette dernière question commence à ne plus avoir de rapport avec le sujet de ce fil. Peut-être que dans un fil différent ...

Concernant la déclaration des variables :

D'abord, c'est vrai que ce n'est pas indispensable dans VBA, sauf si tu inscris l'option de (pseudo) compilation Option Explicit en tête de module, auquel cas, VBA n'accepte de (pseudo) compiler le code que si toutes les variables du code sont déclarées.

D'autres langages de programmation, comme le C, exige la déclaration de variable.

Quand le programme crée une variable, il alloue un espace mémoire à cette variable. La taille de cet espace dépend du type de variable, disons pour faire simple, du nombre de valeurs que peut prendre cette variable.

Si la variable n'a pas été déclarée, VBA considère qu'elle peut prendre n'importe quel type de valeur, pas seulement le type de variable correspondant à sa première affectation dans le code. Ceci est réalisé en lui donnant le type le plus général, ie le type Variant.

Le problème est que les variables de type Variant sont aussi celles qui occupent le plus d'espace en mémoire.

Minimiser/contrôler l'espace mémoire occupé est la première raison d'être de la déclaration de variable. Cela peut affecter la performance du programme (grosse taille mémoire = temps d'acces aux données plus élevé).

De plus, à chaque affection d'une variable non déclarée, VBA se pose la question de son type, ce qui accroit le temps d'exécution.

Peut-être as tu remarqué que quand tu rajoutes un point (".") a une variable objet dans l'éditeur VBA, certaines fois, la liste des propriétés et des méthodes de cet objet apparaissent, ce qui est bien pratique, il faut bien l'avouer.

Ceci n'est possible que si l'éditeur est capable de déterminer à quelle Classe (Classe = Type pour un objet) appartient cet variable objet. Et l'éditeur ne sait le faire que si cette variable a été préalablement déclarée.

Enfin, déclarer les variables, c'est aussi organiser son programme, le contrôler.
Au début du programme, on présente les variables dont on aura besoin dans le corps du programme.

En résumé, déclarer les variables, c'est plus propre et souvent accroit la performance du code.

Ceci n'est visible que sur des programmes importants, mais la déclaration de variable est un reflexe que l'on acquiert même sur de petits programmes (j'écris ça, mais ça m'arrive de ne pas me plier à cette règle ;)).

@+
 
Dernière édition:

job75

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

Bonjour le fil, le forum,

Un petit coucou de Normandie, avec une variante.

Pendant le tirage au sort, chaque prénom est successivement sélectionné.

Chaque tirage au sort dure 3 secondes (on peut évidemment régler ce délai).

A+

Edition : dans la macro principale j'ai remplacé Time par Now autrement il y a un petit problème si l'on fait le tirage au sort quelques secondes avant minuit...
 

Pièces jointes

Dernière édition:

Statistiques des forums

Discussions
315 297
Messages
2 118 167
Membres
113 443
dernier inscrit
renotton