Rapport de message :*
 

Re: Consigne aléatoire

Titre du sujet : Re: Consigne aléatoire
par Guy le 24/06/2010 14:35:34

Bonjour wilplan,

Normal que Citation :
[tu] ne vois pas où [tu] dois récupérer les smileys
puisqu'ils sont masqués. Jette un oeil à la procédure MasqueSmiley() qui pose à False (msoFalse) la propriété Visible des trois compères.
Pour te faciliter la vie le classeur joint porte un bouton qui affiche ou masque les smileys utilisés.

Selon la valeur de la cellule F6 l'un des smileys est cloné et ce clone est placé en cellule appelante.

Pour ce qui est de Citation :
tu parles de Feuil2 que déjà je ne retrouve pas dans le fichier
il s'agit du nom de code de la feuille dont l'onglet a pour nom «feuil de rte».
J'ai l'habitude de pointer une feuille par son nom de code plutôt que par son nom d'onglet, libre à l’usager de changer le nom d’onglet si ça lui chante.
Pour apercevoir le nom de code assure-toi que dans l’éditeur VBA (VBE : Visual Basic Editor) la fenêtre de propriétés soit affichée (raccourci F4) et en sélectionnant la feuille notée Feuil2 (feuil de rte) dans l’explorateur de projet (raccourci Ctrl+R) tu verras ceci :



La feuille Feuil2 porte, entre autres, deux propriétés Name. L’une notée (Name) l’autre notée Name. Les parenthèses sont importantes!
La propriété (Name) est le nom de code de la feuille et est accessible dans le code avec Feuil2.CodeName ou Worksheets("feuil de rte").CodeName
La propriété Name est le nom d’onglet de la feuille et est accessible dans le code avec Feuil2.Name ou Worksheets("feuil de rte").Name.
On peut modifier l’un ou l’autre nom dans le code ou dans l’éditeur VBE. Pour l’usager seul le nom d’onglet est accessible.

Citation :
Aussi sur quoi intervenir pour centrer les smileys? Est-ce du code à rajouter ou doit-on intervenir dans les propriétés de l'objet?

C’est un peu de code, un peu de peaufinage de l’image et pas du tout une propriété de celle-ci.

Tout d’abord j’ai modifié les images des smileys pour qu’elles soient centrées dans leur cadre.
J’ai défusionné les cellules G1:G4 et porté la formule dans la cellule G3. À noter que la formule porte maintenant une référence absolue à la cellule $F$6.
Ensuite pour assurer le centrage de ces images dans la cellule G3 j’ai ajouté le petit bout de code suivant :

 ' Récupération des dimensions de la cellule cible
  HauteurCible = Application.Caller.Height
  LargeurCible = Application.Caller.Width
 
  ' Puis positionner ce clone en le rendant visible et en le renommant.
  With S
         
    .Top = Application.Caller.Top + (HauteurCible - .Height) / 2
    .Left = Application.Caller.Left + (LargeurCible - .Width) / 2
    .Name = .Name & "_clone"
    .Visible = msoTrue
   
  End With
 

Voilà!

En espérant que ceci t’éclaire un tant soit peu.

Ce 24 juin est le jour de la fête Nationale du Québec. À toutes les Québécoises et tous les Québécois en ligne: bonne fête Nationale et épivardez-vous dans la joie

Cordialement,

Guy

Édition : tu peux t'amuser à modifier la hauteur ou la largeur de la cellule G3 et tu verras que le smiley reste bel et bien centré dans la cellule.