Perte de qualité image via la formule "decaler"

Bonjour

Mes images sont des PNG dont la taille varie entre 256x256 ou 802x949

Déjà en PNG c'est bien. La 2ieme taille est mieux que la première. De base je dirais qu'il ne faut pas agrandir la première taille d'ailleurs petite. Par contre réduire la deuxième taille ne posera pas de souci. Donc gardez la deuxième mais n'agrandissez pas la première.
Vous devez préparer les images avant de les placer dans le fichier bien entendu.

- Si le fichier est gros pour moi ce n'est pas trop grave. Après peut être que ça fonctionne moins bien ?

Plus le fichier sera gros plus ce sera lent à l'utilisation. Ce que vous devez surtout voir ce sont les types de formules qui sont placées dans les cellules. Attention aux formules matricielles.
Comme vous avez des images, cela risque de ralentir mais bon vous verrez à l'utilisation.

je n'ai pas regardé encore les macro de x-cellus mais sachant qu'il est très actif dans les jeux, il a certainement déjà été confronté à ces soucis d'image et donc son avis sera de bon conseil. Reste à voir avec votre Mac si cela fonctionne comme souhaité

Bonsoir,

J'ai suivi vos indications et créé un nouveau fichier avec les images insérées 1 à 1 sur la feuille Test2. Noms à partir de V164 et badges de U164 afin de ne pas modifier les dimensions de mes lignes et colonnes pour mes fiches joueurs. Ce fichier se nomme : "Scouting indiv V2"

https://docs.google.com/spreadsheets/d/13gkWVdPvAwOXdOrBnDDeUy4jPlOH6rua/edit?usp=drive_link&ouid=11...

- dernière question sur les images. Je souhaite utiliser excel via format image et couleur pour uniformiser la couleur de chaque badge. Vous me confirmez que cette opération ne modifiera pas la qualité des images en lien avec les listes déroulantes à venir ?

- @X Cellus peux tu me conseiller sur le choix de tes 2 options qui te parait le plus logique dans mon cas et me guider un peu pour la mise en place sur 2 ou 3 joueurs ?

Sachant que la cible du joueur 1 badge 1 sera la cellule I3 et la cible du joueur 1 badge 2 sera J3.

J'ai regardé ça mais je n'ai pas très bien compris où positionner les badges et "comment" les mettre les unes sur les autres ?

Les macros ça reste compliqué pour moi ...

Une fois que j'aurais pigé un peu ou repris le code je pourrai créer mes 12 feuilles différentes sur le même modèle je pense. Merci.

Cordialement

Olivier

Bonjour,

Je suppose que vous vous adressez à moi concernant les lignes décrites avant Xcellus

Noms à partir de V164 et badges de U164 afin de ne pas modifier les dimensions de mes lignes et colonnes pour mes fiches joueurs. Ce fichier se nomme : "Scouting indiv V2"

Ok mais vous auriez pu aussi les mettre en colonne A ou alors sur une autre feuille. Mais ok si cela vous convient

- dernière question sur les images. Je souhaite utiliser excel via format image et couleur pour uniformiser la couleur de chaque badge. Vous me confirmez que cette opération ne modifiera pas la qualité des images en lien avec les listes déroulantes à venir ?

Vous pouvez essayer mais bon par sûr que cela soit idéal. Comme je vous ai écrit avant, le mieux restera de traiter cela en dehors d'excel.
Excel c'est pour du calcul pas pour faire des retouches images. Bon nombre de personnes semblent l'oublier.

Bonsoir Nolive, Dan,

peux tu me conseiller sur le choix de tes 2 options qui te parait le plus logique dans mon cas et me guider un peu pour la mise en place sur 2 ou 3 joueurs ?

Sachant que la cible du joueur 1 badge 1 sera la cellule I3 et la cible du joueur 1 badge 2 sera J3.

J'ai regardé ça mais je n'ai pas très bien compris où positionner les badges et "comment" les mettre les unes sur les autres ?

J'ai posté la 2ième option afin de pallier au cas ou la 1ière ne fonctionnerait pas idéalement sur ton ordi.

Donc il vaudrait mieux utiliser la première (macro évènementielle) surtout que tu indiques placer une douzaine de feuilles dans le fichier. Chacune de ses feuilles comportant plusieurs images. De plus si les ces feuilles ont une présentation identique, c'est à dire le même emplacement de cellule pour la liste déroulante et les images (A me confirmer). Il est possible de ne créer qu'une seule macro au niveau classeur pour toutes les pages.

Pour positionner les badges, il suffit d'insérer comme le précise Dan, chacune dans la cellule de destination. On clique sur chaque image afin de la sélectionner et on la déplace avec la souris vers sa cellule d'affichage. On peut aussi se servir des touches de direction (image toujours sélectionnée) quand on est sur la cellule afin de bien l'insérer entre les bords de la cellule. Une fois la première image incluse, on fait de même pour les autres, elles se superposent. Ne pas oublier de les renommer par le menu format d'image.

image

La 1ière image placée, on sélectionne la 2ième (un crochet apparait au dessus d'elle et 8 ronds sur ses bords qui permettent de la modifier en hauteur, largeur. Ici ce ne sera pas le cas on la laisse telle quelle, on ne fait que la déplacer.

image

Quand on sélectionne une image on peut accéder au menu format de l'image puis au volet sélection. Sur ce volet on peut nommer chaque image et l'afficher ou la masquer.

Je te laisse faire deux feuilles exemples avec tous les éléments. Cela t'entraîneras puis je te renverrais la macro adaptée au fichier.

Bonsoir

OK merci je teste ça demain et je pense te faire un retour vendredi. Merci beaucoup pour tes explications.

NB : en effet, je confirme que sur les 12 feuilles (1 par équipe) les emplacements seront identiques pour les listes déroulantes et les images.

Bonsoir,

Tout d'abord merci pour le suivi du sujet. J'ai préparé un fichier (V3) avec un exemple pour 2 joueurs sur 12 présents sur la feuille.

https://docs.google.com/spreadsheets/d/1PgEyjAWgPzfjnpruCGAF01BPtSiXAVA9/edit?usp=drive_link&ouid=11...

Voici ce que j'ai effectué sur la Feuille Test2

- j'ai redimensionné mes encarts joueurs pour accueillir les images en colonnes I et J sur certaines lignes.

- mise en place de la liste déroulante "noms" à partir de V152

- insertion des badges via le procédé indiqué par Dan en U152. Ces badges ont été tous coloré de la même façon via excel (pour le moment). Ils ont été nommé "Image +..." en fonction de leur signification.

- pour le joueur 1 : N2 et Q2 insertion formule =EQUIV(..;noms;0) et N3 et Q3 insertion de la liste déroulante "noms"

En I3 j'ai dupliqué toutes les images (via commande+pomme), renommé chacune d'elle en fonction du joueur concerné/du badge/1er mot du nom correspondant. Puis je les ai masqué dans cette case sauf 1 (via le volet de sélection).

Illustration du naming image en I3 : j1=joueur1 / b1=badge1 / all around player=all --> soit nom de l'image "j1b1all". J'ai procédé de la sorte pour toutes les images afin de m'y retrouver. Du coup en J3 c'est le badge 2 du joueur 1. Donc le naming c'est j1b2+1er mot de l'image correspondante.

NB : l'image en I3 étant a synchroniser avec la liste déroulante en N3. L'image en J3 avec la liste déroulante en Q3. Pour le joueur n°2, l'image en I13 se lie avec la liste en N13, l'image en J13 avec la liste en Q13. Et ainsi de suite pour les joueurs suivants ... J'ai gardé le même procédé pour le naming image pour ne pas me mélanger, joueur après joueur. j2b1+1er mot de l'image correspondante pour le badge 1. j2b2+1er mot pour le badge 2 de ce même joueur.

Avant de continuer à positionner toutes les images (dans les 2 cases correspondantes pour chaque joueur) je voulais savoir si j'avais bien compris ce qu'il fallait faire ? Faut-il que je continue pour les 12 joueurs avant de mettre en place ta macro ?

J'espère avoir été clair dans mon descriptif.

Cordialement

Olivier

Bonsoir Nolive,

exemple pour 2 joueurs sur 12 présents sur la feuille.

Premièrement:

S'il existe 12 joueurs, donc il faudra différencier les joueurs 1 à 9 par J01 à J09 puisque les joueurs suivants se nommeront J10 à J12.

Deuxièmement:

Il n'est pas nécessaire et même plus contraignant de rajouter le début des nommages des joueurs. Un tableau ou une fiche peut être réalisé si besoin pour soi.

Troisièmement :

Une seule macro devra être créée sur la partie code du WorkBook. Elle s'appliquera automatiquement sur toutes les feuilles comportant les images

Dans le cas ou existerait une ou plusieurs feuilles sans liste déroulante et images, il faudra les différencier des autres afin que la macro générale ne s'applique pas.

Ci-dessous la macro pour ton fichier.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'La ligne suivante devra être décommentée si d'autres feuilles autre que celles des joueurs sont présentes et nommées en débutant par Div
'If Sh.Name = "Div*" Then Exit Sub
Select Case Target.Address
'Liste déroulante Badge1
Case "$N$3"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$3"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
End Select
End Sub

Bonne insertion.

Attention, toutes les feuilles devront être présentes et complètes avant d'insérer la macro. Ou sinon mettre en mode création, l'éditeur VBA par clic sur cette icone.

image

Bonjour,

Suite à ton message X Cellus, j'ai mis en place l'intégralité des feuilles avec toutes les images.

https://docs.google.com/spreadsheets/d/1jfurOl8IY85Bi3SlD7olieW1_wcMRhou/edit?usp=drive_link&ouid=11...

- j'ai essayé d'intégré la macro via ThisWorkbook et j'ai eu le message suivant quand j'ai voulu enregistrer :

capture d e cran 2023 09 11 a 13 21 57

j'ai fini par faire oui mais du coup ça a coincé. Du coup je ne peux pas sauvegarder avec le code. Désolé car comme je l'ai précisé je ne suis pas calé en VBA ...

- voici le code complet que j'ai voulu collé par rapport à mes 12 joueurs (en ajoutant les cellules concernées).

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'La ligne suivante devra être décommentée si d'autres feuilles autre que celles des joueurs sont présentes et nommées en débutant par Div
'If Sh.Name = "Div*" Then Exit Sub
Select Case Target.Address
'Liste déroulante Badge1
Case "$N$3"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$3"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$13"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$13"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$23"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$23"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$33"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$33"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$43"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$43"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$53"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$53"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$63"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$63"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$73"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$73"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$83"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$83"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$93"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$93"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$103"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$103"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
'Liste déroulante Badge1
Case "$N$113"
For I = 1 To 12
'Cache toutes les images de la cellule I3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b1").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N3)
ActiveSheet.Shapes("J" & Right("0" & Range("N3"), 2) & "b1").Visible = True
Next I
'Liste déroulante Badge2
Case "$Q$113"
For I = 1 To 12
'Cache toutes les images de la cellule J3
ActiveSheet.Shapes("J" & Right("0" & I, 2) & "b2").Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q3)
ActiveSheet.Shapes("J" & Right("0" & Range("Q3"), 2) & "b2").Visible = True
Next I
End Select
End Sub

- j'ai alors affiché tous les badges pour le joueur 1 en I3 (j1b1) via le volet sélection. J'ai sélectionné ankle breaker dans ma liste déroulante. J'ai eu le message suivant :

capture d e cran 2023 09 11 a 13 38 33

--> je vais donc encore vous embêter un peu pour m'accompagner dans la mise en place. On y est presque ^^

Merci

Bonsoir Nolive,

j'ai mis en place l'intégralité des feuilles avec toutes les images.

Apparemment l'image n'est pas nommée comme il le faudrait, puisque même la première d'entre elles te bloque déjà.

Ensuite tu as allongé le code pour les lignes supérieures à la ligne 3 (de 13 à 113) mais en gardant toujours la référence aux listes déroulantes en N3 et Q3.

Donc tes listes déroulantes en N13 jusqu'à Q113 n'ont aucune utilité.

Je te laisse un modèle général ou tu n'as pas besoin d'ajouter des lignes de code. Il servira pour toutes tes listes déroulantes. Seul recommandation, nomme bien les images comme je le précise en note rouge.

J'ai réalisé les 4 premières listes déroulantes, de N3 à Q13 sur le fichier. A toi de compléter sur la feuille BaseMacro.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Si d'autres feuilles sont présentes et débutent par DIV
If Sh.Name Like "DIV*" Then Exit Sub
'Selon colonne N (colonne 14) ou Q (colonne 17)
Select Case Target.Column
Case 14
'Ici réalisé pour 4 joueurs mais remplacer seulement For I = 1 to 4 par For I = 1 to 12. Idem pour l'autre boucle.
For I = 1 To 4
'Cache toutes les images de la cellule selon colonne N et ligne cible
ActiveSheet.Shapes("N" & Target.Row & Right("_J0" & I, 4)).Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N et ligne)
ActiveSheet.Shapes("N" & Target.Row & Right("_J0" & Range("N" & Target.Row - 1), 4)).Visible = True
Next I
Case 17
For I = 1 To 4
'Cache toutes les images de la cellule selon colonne Q et ligne cible
ActiveSheet.Shapes("Q" & Target.Row & Right("_J0" & I, 4)).Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q et ligne)
ActiveSheet.Shapes("Q" & Target.Row & Right("_J0" & Range("Q" & Target.Row - 1), 4)).Visible = True
Next I
End Select
End Sub

Bonsoir,

Tout d'abord désolé pour le délai de réponse mais je me suis retrouvé dans une période très intense de reprise ...

Là je viens de renommer toutes les images comme demandé.

Puis j'ai repris toutes les feuilles de mon doc en .xlsx pour les insérer dans ton doc x-cellus-modele-general en .xlsm. Ce dernier contenant la macro indiquée dans ton précédent post. Je ne sais pas si j'ai bien fait de fonctionner de la sorte ?!?

J'ai voulu la tester comme ça mais là encore mon incompétence me rattrape avec ce message d'erreur :

erreur

Je te sollicite donc encore pour la mise en application du code et ce que je n'ai pas bien réalisé.

Mon document de base de travail est la V6 disponible ici :

https://drive.google.com/file/d/1G71ta5Bsm3HRU7avuIl_me_fPRTY6Z3x/view?usp=drive_link

Merci par avance pour votre soutien

Cordialement

Olivier

Bonjour,

Je ne sais pas si ça a un lien mais peut être ai-je commis une erreur en renommant les images :

- X-cellus, sur ton doc toutes les images sont N-n°ligne-joueur je crois. Ce qui voudrait dire que toutes les images concernant un joueur ont la même dénomination ?

Dans mon document, j'ai renommé de la façon suivante : N-n°ligne-J01 (la 1ere image) / N-n°ligne-J02 (la 2ème image) etc ...

- pour le moment j'ai gardé ta macro pour la tester comme dans ton exemple sur 4 badges. Bien évidemment, j'ajouterai ensuite les références manquantes.

Merci et bon dimanche ^^

Bonjour Nolive,

Comme indiqué dernièrement.

Seul recommandation, nomme bien les images comme je le précise en note rouge.

Ces images débutent par N ou Q, cela respectivement pour désigner la colonne où elles sont présentes. Et aussi différencier les badges 1 et 2. Revoir ma note.

La lettre initiale est suivi de la ligne où est présente chaque image. Donc 3 pour la première des doubles listes déroulantes, 13 pour la deuxième... jusqu'à la 113 pour la dernière des doubles listes déroulantes.

Enfin les joueurs sont répertoriés sur les quatre derniers caractères. Donc de _J01 à _J09 jusqu' au J010 à J012.

Si je reprends pour la ligne 3 on a aura colonne N les images nommées N3_J01 à N3_J09 puis N3J010 à N3J012. Soit sur 6 caractères

Et en colonne Q des images nommées Q3_J01 à Q3_J09 puis Q3J010 à Q3J012. Idem sur 6 caractères.

Les images des lignes 13 à 93 seront sur 7 caractères.

Pour la ligne 113 on a aura colonne N les images nommées N113_J01 à N113_J09 puis N113J010 à N113J012. Soit sur 8 caractères.

Ne pas oublier au dessus de toutes les listes déroulantes (donc en ligne 2 à 112) la formule EQUIV doit se référer à la ligne comportant la liste déroulante.

image

Evidemment la liste de noms (Formules noms) doit comporter 12 joueurs.

Bonsoir,

Héhéhé pas facile dès fois de bien comprendre pour ma part via un forum. Avant de faire la modification tu me confirmes que les 21 images bien que différentes auront au final la même dénomination pour 1 joueur ?

C'est cette étape qui me fait cafouiller. Je dois bien saisir pour avancer.

Exemple : les images en I3 constituant le badge 1 du joueur 1 (faisant référence à la liste déroulante N3)

--> l'image all around player = N3_J01 / l'image ankle breaker=N3_J01 / l'image corner specialist=N3_J01 etc etc ...

Si l'on veut passer au badge 2 du joueur 1 (faisant référence à la liste déroulante Q3)

--> l'image all around player = Q3_J01 / l'image ankle breaker=Q3_J01 / l'image corner specialist=Q3_J01 etc etc ...

Et de fait si je passe au joueur 2, pour son badge 1 :

--> l'image all around player = N13_J02 / l'image ankle breaker=N13_J02 / l'image corner specialist=N13_J02 etc etc ...

Oulala désolé pour le temps que tu passes sur le sujet X-Cellus ...

Merci

Bonsoir Nolive,

tu me confirmes que les 21 images bien que différentes auront au final la même dénomination pour 1 joueur ?

Non, car il faut pouvoir distinguer les 21 images pour n'importe quel joueur.

En fait ce qui différencie les joueurs c'est la ligne de la feuille qui reçoit les images. Tu m'indiques partir de la ligne 3 jusqu'à la ligne 113 par pas de 10.

Donc tes 12 joueurs s'échelonnent ici. En ligne 3 le premier joueur avec ses deux listes déroulantes en N3 (badge 1) et Q3 (badge 2).

La colonne N étant celle du badge 1 et Q pour le badge 2.

Pour exemple:

Les images se trouvant en I3 se reportant à la liste déroulante N3. Elles seront nommées N3_J01 à N3J021 puisque tu en disposes de 21 différentes.

Et celles pour la liste déroulante en Q3 seront nommées Q3_J01 à Q3J021. Là aussi pour 21 images à différencier, sur 4 caractères.

Pour le 12ième joueur, celui se trouvant à la ligne 113, ses images auront pour nom N113_J01 à N113J021 (badge1) et Q113_J01 à Q113J021 (badge2).

Car la formule EQUIV... en haut de la liste déroulante ressortira un numéro à 1 caractère ou 2 caractères (nombres de 10 à 21). Or il faut bien distinguer la partie image des lignes et de la colonne afin de bien cibler l'image. Ce qui oblige à rajouter l'underscore _ pour les numéros d'images inférieurs à 10.

Bonsoir X Cellus,

Merci pour tes explications. Je comprends mieux. J'ai rectifié et mis en place ta macro.

GENIAL, ça marche à merveille ! C'est exactement ce que je voulais mettre en place. Je te remercie beaucoup car ce fut un travail assez long et peut être fastidieux pour toi ...

Avant de clôturer le sujet, j'ai un dernier réglage que je voudrai te demander. En effet, dans chacune de mes listes déroulantes de badges, j'ai laissé un intitulé "N.A".

Ce dernier est l'abréviation de "non applicable". C'est à dire que j'aimerai que quand je sélectionne cette option il n'y ait aucuns badge qui s'affichent dans l'encart attitré. Ceci étant bien sûr à appliquer sur tous les badges et pour tous les joueurs. Est ce que tu crois que c'est possible de me concocter un petit quelque chose ?

Voici en lien mon dernier fichier :

https://drive.google.com/file/d/1yaFJWym9fhR-ZQMpL0eDJikU68Ys-Q5V/view?usp=drive_link

Merci sincèrement pour ton aide et la patience dont tu as fait preuve.

Cordialement

Olivier

Bonjour Nolive,

Il serait possible de créer des images particulières Non Accessible pour toutes les listes. Mais cela grossirait le fichier de 24 images.

Plus simplement on va modifier la dernière ligne de chaque boucle gérant les badges. Ainsi lorsque le numéro au dessus d'une liste sera égale à 22, aucune image ne s'affichera dans les cellules Badges.

Bien sur, il faudra placer le terme N.A en fin des listes déroulantes. Donc ne pas oublier de rajouter par le gestionnaire de noms une dernière ligne nommée N.A (à la fin des 21 badges précédemment nommés)

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Si d'autres feuilles sont présentes et débutent par DIV
If Sh.Name Like "DIV*" Then Exit Sub
'Selon colonne N (colonne 14) ou Q (colonne 17)
Select Case Target.Column
Case 14
'Ici réalisé pour 21 images. 
For I = 1 To 21
'Cache toutes les images de la cellule selon colonne N et ligne cible
ActiveSheet.Shapes("N" & Target.Row & Right("_J0" & I, 4)).Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule N et ligne) sauf pour 22
If Range("N" & Target.Row-1) < 22 then ActiveSheet.Shapes("N" & Target.Row & Right("_J0" & Range("N" & Target.Row - 1), 4)).Visible = True
Next I
Case 17
For I = 1 To 21
'Cache toutes les images de la cellule selon colonne Q et ligne cible
ActiveSheet.Shapes("Q" & Target.Row & Right("_J0" & I, 4)).Visible = False
'Dévoile uniquement l'image correspondante à la sélection (ici cellule Q et ligne) sauf pour 22
If Range("Q" & Target.Row-1) < 22 then ActiveSheet.Shapes("Q" & Target.Row & Right("_J0" & Range("Q" & Target.Row - 1), 4)).Visible = True
Next I
End Select
End Sub

Bonjour X Cellus

Bon ba là c'est parfait ! Mission accomplie avec un sacré travail proposé. Ce dernier m'est très utile sur le plan professionnel.

Je remercie l'ensemble des acteurs de ce forum pour l'aide apportée et le suivi des sujets. Merci à toi X Cellus qui a continué de m'accompagner tout au long de la démarche.

Si je peux faire quelque chose pour rendre servie à mon tour ce sera avec plaisir.

Je vais donc clôturer le sujet en laissant mon fichier accessible si cela peut aider d'autres utilisateurs.

https://drive.google.com/file/d/1yaFJWym9fhR-ZQMpL0eDJikU68Ys-Q5V/view?usp=drive_link

Bon week end

Cordialement

Olivier

Rechercher des sujets similaires à "perte qualite image via formule decaler"