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

Bloquer la màj automatique d'images dynamiques

boblebug

XLDnaute Nouveau
Bonjour,

Je cherche une solution pour résoudre un problème avec un fichier Excel qui rame.

Je m'explique:
Le fichier en pièce jointe est censé permettre aux spectateurs, au cours d'un tournoi de poker, de voir en direct les cartes des joueurs (rassurez-vous, c'est entre copains, on ne craint pas la triche).
L'informaticien tire les cartes à son bureau, les saisit dans l'ordinateur, puis donne le jeu au croupier qui les distribue. L'informaticien affiche ensuite les cartes pour les spectateurs en même temps que se joue la main.

J'ai pour cela créé le tableur en pièce jointe.
Le problème est que ce tableur rame énormément.
Dans ce fichier, il y a 17 images "dynamiques" dont le contenu dépend de la valeur d'une cellule. C'est là qu'à mon avis réside le problème: les 17 images se mettent à jour dès que le contenu de n'importe quelle cellule du fichier est modifié.

Ma question est la suivante: est-il possible que par défaut la mise à jour automatique des images soit bloquée? Et dans ce cas, quelle formule VBA me permet de débloquer cette mise à jour au début de la macro qui modifie les images et quelle formule me permet de la rebloquer ensuite?

J'ai dû retirer quelques images du fichier pour ne pas dépasser les 300ko, évitez de prendre du trèfle pendant les tests

Bonne soirée.
Boblebug
 

Pièces jointes

  • table finale.xlsm
    287.8 KB · Affichages: 63

Dranreb

XLDnaute Barbatruc
Re : Bloquer la màj automatique d'images dynamiques

Bonjour.
Je pense qu'il va falloir changer complètement de système pour gérer ces images.
Ça c'est la mauvaise nouvelle. Au lieu d'utiliser des images Excel, utilisez des contrôles Image VB
Pour en changer l'image il suffit d'affecter à leur propriété Picture une expression de la forme LoadPicture(CheminNomFicher)
En tout cas c'est ce que je ferais. Mais si ça vous fait peur travaillez avec des Shapes, mais prenez en des copies, n'utilisez plus les formules.
La bonne nouvelle maintenant :
Garder les Boutons Excel, c'est mieux, des CommandButton VB n'apporteraient aucun avantage car :
Vous pouvez ainsi utiliser une seule procédure pour tous les boutons.
Démonstration: Dans un module normal cette procédure :
VB:
Option Explicit

Sub Test()
Dim NomBouton As String, Texte As String
NomBouton = Application.Caller
Texte = Feuil1.Shapes(NomBouton).TextFrame.Characters.Text
MsgBox NomBouton & vbLf & Texte
End Sub
Affectez cette procédure Test à un bouton, puis cliquez dessus.
Vous pouvez voir qu'il est possible de récupérer de quoi reconstituer le nom d'un fichier jpg par exemple.
Et ce dans une seule procédure à mettre au point et non pas autant qu'il y a de boutons !

P.S. Pour vérifier si c'était jouable, j'ai ajouté un contrôle Image dans la feuille, puis dans le même module standard que le premier Test, réussi à faire tourner du 1er coup :
VB:
Sub Essai()
Dim Numéro As Long, Img As MSForms.Image
Numéro = 1
Set Img = Feuil1.OLEObjects(Numéro).Object
Img.Picture = LoadPicture("C:\Documents and Settings\luck\Mes documents\Mes images\GlisTrèfle.bmp")
End Sub
Remarque: pour effacer l'image il suffit de faire Img.Picture = LoadPicture("")
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…