Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Image : pourvoir afficher la même image dans tous mes onglet

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle fin de journée

J'ai un nouveau problème que je n'arrive pas à solutionner malgré mes recherches et tentatives
Dans le classeur joint, j'ai une image en Feuil1 (il pourra y en avoir 25) et j'ai un p'tit code qui me permet d'afficher ou de masquer.

Ce que je voudrais (pour ne pas avoir à multiplier les images dans tous les onglets),
Pour chaque fichier de travail,"ma z'usine à gaz" lol, j'ai environ 25 clients traités : 1 photo par Client = 25 photos instructions
que j'ai besoin de pouvoir afficher/masquer dans 3 onglets = 75 photos si obligé de les mettre dans les 3 onglets
:

Est-il possible d'afficher la même image dans tous mes onglets ? ... pas sûr du tout !!! lol
Peut-être en stockant je ne sais où, mais accessible pour tous les onglets ?
ça m'arrangerait bien
Auriez-vous la solution ?
Un grand merci par avance,
Amicalement,
lionel
 

Pièces jointes

  • Image_Affiche_TsOnglets.xlsm
    224.5 KB · Affichages: 27
Dernière édition:
Solution
En affectant la macro Supprimer à l'image il suffit de cliquer dessus pour la supprimer, fichier (2) :
VB:
Sub Image_Clients1()
Dim c As Range, lig&, s As Shape
Set c = ActiveCell
lig = c.Row
For Each s In ActiveSheet.Shapes
    If s.Name Like "Client*" Then s.Delete
Next
If Not IsNumeric(CStr(Cells(lig, "J"))) Or lig < 7 Then Exit Sub
On Error Resume Next
Sheets("Images").Shapes("Client " & Cells(lig, "J")).Copy
If Err Then MsgBox "L'image " & Cells(lig, "J") & " n'existe pas...": Exit Sub
Cells(lig, "K").Select 'ou ailleurs...
ActiveSheet.Paste
Selection.OnAction = "Supprimer" 'affecte la macro Supprimer
c.Select 'désélectionne l'image
End Sub

Sub Supprimer()
On Error Resume Next
ActiveSheet.Shapes(Application.Caller).Delete
End...

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @Usine à gaz , le Forum

Un essai en pièce jointe, si j'ai compris !
Il faut dézipper le tout dans un répertoire de test qui contiendra le sub-folder "Drapeaux" et les trois .gif...

Bonne Soirée
@+Thierry
 

Pièces jointes

  • XLD_Usine_a_Gaz_Image_v00.zip
    55.4 KB · Affichages: 8

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir _Thierry,

Merci pour m'avoir répondu et pour ton fichier.
J'ai testé, mais j'en suis désolé, ça ne peut pas correspondre à mon besoin.
Il est très important que les photos soient stockées dans le fichier de travail.
"Je ne sais où dans le fichier, mais accessibles pour tous les onglets".
Mais je garde ta proposition que m'intéresse
Merci à toi,
lionel,
 

job75

XLDnaute Barbatruc
Bonsoir Lionel, _Thierry,

Teste le fichier joint avec ce code dans ThisWorkbook :
VB:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Not Target(1) Like "##" Then Exit Sub
Sh.DrawingObjects.Delete 'RAZ
On Error Resume Next
Sheets("Images").Shapes("Image" & Target(1)).Copy
Application.Goto Sh.[C5] 'ou ailleurs...
If Err Then MsgBox "L'image " & Target(1) & " n'existe pas...": Exit Sub
Sh.Paste
ActiveCell.Activate 'désélectionne l'image
End Sub
Bonne nuit.
 

Pièces jointes

  • Image_Affiche_TsOnglets(1).xlsm
    217.2 KB · Affichages: 5

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Gérard, _Thierry, le Forum,
Bonne journée à toutes et à tous
@Gérard,
je ne suis pas revenu sur le fil car après analyse, ton fichier qui fonctionne super bien ne peut pas être intégré à mon fichier de travail et c'est, encore une fois de ma faute

En effet, pour que ce soit adapté, il aurait fallu que je fasse un fichier test exactement mon fichier de travail et comme c'est toujours long à faire, par manque de temps, je ne l'avais pas fait !

Je suis en train de le faire et je reviens dès que c'est prêt
(Je garde précieusement ton fichier dans ma bibliothèque "Gérard")
@plus
lionel,
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Gérard, _Thierry, le Forum,

J'ai pu terminer le fichier test pour mon besoin.
Voici comment j'ai besoin que ça fonctionne ...
Dans l'onglet "Images', chaque image est nommée comme suit : "Client + le n° du Client"

en Feuille "SuivisAppels"
au 1er clic sur le bouton "CaCh"
Pas de photo affichée
si la ligne active contient le n° 1 en colonne "J", la photo "Client 1" est crée et s'affiche
si la ligne active contient le n° 5 en colonne "J", la photo "Client 5" est crée et s'affiche etc...

au second clic sur le bouton "CaCh"
1 photo affichée
la photo affichée est "supprimée et ...
si la ligne active contient le n° 1 en colonne "J", la photo "Client 1" est crée et s'affiche
si la ligne active contient le n° 5 en colonne "J", la photo "Client 5" est crée et s'affiche etc...

je continue à chercher pour faire le bon code ... mais pas certain de pouvoir le faire.

Je joins le fichier test,
Avec mes remerciements,
Je vous souhaite une belle journée à toutes et à tous,
Amicalement,
lionel
 

Pièces jointes

  • Image_Affiche_TsOngletsM_forum.xlsm
    633.2 KB · Affichages: 3
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Lionel,

Pas bien difficile d'adapter la macro du post #5 :
VB:
Sub Image_Clients1()
Dim c As Range, lig&, s As Shape
Set c = ActiveCell
lig = c.Row
For Each s In ActiveSheet.Shapes
    If s.Name Like "Client*" Then s.Delete
Next
If Not IsNumeric(CStr(Cells(lig, "J"))) Or lig < 7 Then Exit Sub
On Error Resume Next
Sheets("Images").Shapes("Client " & Cells(lig, "J")).Copy
If Err Then MsgBox "L'image " & Cells(lig, "J") & " n'existe pas...": Exit Sub
Cells(lig, "K").Select 'ou ailleurs...
ActiveSheet.Paste
c.Select 'désélectionne l'image
End Sub
A+
 

Pièces jointes

  • Image_Affiche_TsOngletsM_forum(1).xlsm
    634.3 KB · Affichages: 9

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Gérard,
Ca fonctionne super bien !
Je reviens pour une dernière"p'tite" amélioration

Tu l'as compris, afficher l'image du client traité (ligne active) permet de voir le "Cahier des charges" et donc permet de l'avoir sous les yeux sans avoir à consulter les documents papier et la, ça devient très très pratique et rapide

Toutefois,quand on a plus besoin de l'afficher, je voudrais qu'on puisse détruire l'image sans en créer forcément une autre.

En partant de ton code, j'ai fait ceci :
VB:
Sub Supprimer_Images()
Application.ScreenUpdating = False
Dim c As Range, s As Shape
For Each s In ActiveSheet.Shapes
    If s.Name Like "Client*" Then s.Delete
Next
Application.ScreenUpdating = True
End Sub
Plaggia lol
Mais ça m'oblige à créer un autre bouton (y'en a déjà bcp dans la feuille) et j'aimerais :
que si une l'image est déjà affichée et si clic une seconde fois sur le bouton "CaCh", "si je suis toujours sur la même ligne active", que l'image soit détruite sans la création d'une autre.
Cela me permettrait de tout faire avec un seul bouton.

Je cherche comment faire mais, la aussi ... pas sur que je sois capable de le coder.
Un dernier coup de "doigts" ?
Merci Gérard
Si je trouve avant (lol ça m'étonnerait), je te dirai,
lionel,
 

Discussions similaires

Réponses
2
Affichages
299
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…