Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Afficher une image via une sub

7 réponses
Avatar
simulacre25
Bonjour,

Je souhaiterais savoir s'il est possible d'afficher une image contenue dans une feuille d'un classeur au sein d'une procédure sans passer par l'affichage d'un formulaire. Afficher l'image puis la faire disparaitre lorsque la procédure est terminée. Je n'utilise qu'une image très légère et je ne souhaite pas aller la chercher dans le répertoire mais l'appeler dans le classeur-même.

C'est un gif animé style "Veuillez patienter...". Question : les gif animés fonctionnent-ils dans Excel ?

Merci pour vos réponses.

7 réponses

Avatar
MichD
Bonjour,

As-tu essayé d'insérer ton image directement dans une feuille de calcul et
de jouer avec la propriété "Visible" pour l'afficher ou la masquer selon les
circonstances?



MichD
------------------------------------------
"simulacre25" a écrit dans le message de groupe de discussion :

Bonjour,

Je souhaiterais savoir s'il est possible d'afficher une image contenue dans une
feuille d'un classeur au sein d'une procédure sans passer par l'affichage d'un
formulaire. Afficher l'image puis la faire disparaitre lorsque la procédure est
terminée. Je n'utilise qu'une image très légère et je ne souhaite pas aller la
chercher dans le répertoire mais l'appeler dans le classeur-même.

C'est un gif animé style "Veuillez patienter...". Question : les gif animés
fonctionnent-ils dans Excel ?

Merci pour vos réponses.
Avatar
isabelle
bonjour,

met un control "Microsoft WebBrowser" sur la feuille
et utilise le code suivant pour charger l'image


'Sets the image path - Définit le chemin de l'image

S = "C:imageTemp.gif"

'Defines the size of image display in the WebBrowser.
'Définit les dimensions d'affichage de l'image dans le WebBrowser.

w = ActiveSheet.WebBrowser1.Width * 96 / 72
h = ActiveSheet.WebBrowser1.Height * 96 / 72

'Displays the image in the WebBrowser then remove margins and scrollbars
'Affiche l'image dans le WebBrowser en supprimant les marges et les barres de défilement

ActiveSheet.WebBrowser1.Navigate _
"ABOUT:<HTML><CENTER><HEAD><body scroll='no' LEFTMARGIN=0 TOPMARGIN=0><IMG WIDTH=" & _
w & " HEIGHT=" & h & " SRC='" & S & "'</IMG></BODY></CENTER></HTML>"


tu pourras l'afficher ou le masquer avec la commande suivante

ActiveSheet.WebBrowser1.Visible = True 'Or False



--
isabelle




Le 2012-01-24 08:12, simulacre25 a écrit :
Bonjour,

Je souhaiterais savoir s'il est possible d'afficher une image contenue dans une
feuille d'un classeur au sein d'une procédure sans passer par l'affichage d'un
formulaire. Afficher l'image puis la faire disparaitre lorsque la procédure est
terminée. Je n'utilise qu'une image très légère et je ne souhaite pas aller la
chercher dans le répertoire mais l'appeler dans le classeur-même.

C'est un gif animé style "Veuillez patienter...". Question : les gif animés
fonctionnent-ils dans Excel ?

Merci pour vos réponses.
Avatar
simulacre25
isabelle a écrit le 24/01/2012 à 15h20 :
bonjour,

met un control "Microsoft WebBrowser" sur la feuille
et utilise le code suivant pour charger l'image


'Sets the image path - Définit le chemin de l'image

S = "C:imageTemp.gif"

'Defines the size of image display in the WebBrowser.
'Définit les dimensions d'affichage de l'image dans le WebBrowser.

w = ActiveSheet.WebBrowser1.Width * 96 / 72
h = ActiveSheet.WebBrowser1.Height * 96 / 72

'Displays the image in the WebBrowser then remove margins and scrollbars
'Affiche l'image dans le WebBrowser en supprimant les marges et les barres de
défilement

ActiveSheet.WebBrowser1.Navigate _
"ABOUT:<HTML><CENTER><HEAD><body scroll='no'
LEFTMARGIN=0 TOPMARGIN=0><IMG WIDTH=" & _
w & " HEIGHT=" & h & " SRC='" & S &
"'</IMG></BODY></CENTER></HTML>"


tu pourras l'afficher ou le masquer avec la commande suivante

ActiveSheet.WebBrowser1.Visible = True 'Or False



--
isabelle




Le 2012-01-24 08:12, simulacre25 a écrit :
Bonjour,

Je souhaiterais savoir s'il est possible d'afficher une image contenue dans
une
feuille d'un classeur au sein d'une procédure sans passer par
l'affichage d'un
formulaire. Afficher l'image puis la faire disparaitre lorsque la
procédure est
terminée. Je n'utilise qu'une image très légère et
je ne souhaite pas aller la
chercher dans le répertoire mais l'appeler dans le classeur-même.

C'est un gif animé style "Veuillez patienter...". Question :
les gif animés
fonctionnent-ils dans Excel ?

Merci pour vos réponses.




Merci pour vos réponses.

Vu que la procédure se lance à partir d'un formulaire, je suppose que je dois le décharger durant la procédure afin de voir le web Browser sur ma feuille.

Par contre, je ne vois pas où mettre ta procédure Isabelle. Si je la mets dans un module et que je l'appelle dans ma sub, alors il bloque sur une erreur Objet requis.
Avatar
isabelle
je ne sais pas comment est organisé ton fichier,
mais dans la question initial tu disais :
"sans passer par l'affichage d'un formulaire"
peut tu mettre ton fichier sur cjoint.com et expliquer comment tu veut ça ?


--
isabelle



Le 2012-01-24 12:01, simulacre25 a écrit :

Vu que la procédure se lance à partir d'un formulaire, je suppose que je dois
le décharger durant la procédure afin de voir le web Browser sur ma feuille.

Par contre, je ne vois pas où mettre ta procédure Isabelle. Si je la mets dans
un module et que je l'appelle dans ma sub, alors il bloque sur une erreur Objet
requis.
Avatar
simulacre25
isabelle a écrit le 24/01/2012 à 20h59 :
je ne sais pas comment est organisé ton fichier,
mais dans la question initial tu disais :
"sans passer par l'affichage d'un formulaire"
peut tu mettre ton fichier sur cjoint.com et expliquer comment tu veut
ça ?


--
isabelle



Le 2012-01-24 12:01, simulacre25 a écrit :

Vu que la procédure se lance à partir d'un formulaire, je
suppose que je dois
le décharger durant la procédure afin de voir le web Browser sur
ma feuille.

Par contre, je ne vois pas où mettre ta procédure Isabelle. Si
je la mets dans
un module et que je l'appelle dans ma sub, alors il bloque sur une erreur
Objet
requis.




Je progresse (affichage d'un texte dans web browser plutôt qu'une image) mais je bute désormais sur un épineux problème. J'affiche désormais correctement le web browser mais au milieu de ma procédure, je suis obligé de positionner un screenupdating à false qui bloque l'affiche dynamique de mon web browser qui est figé (forcément). Un moyen de contourner cela ?

sub ()
Unload UserForm_Accueil

ActiveSheet.WebBrowser1.Visible = True

'----------- message pendant le transfert ----
'Permet de créer un message d'attente défilant dans le WebBrowser pendant le transfert
'des données (au format binaire) dans les cellules de la nouvelle feuille.
Dim LeTexte As String
Dim LaCouleur As String

LeTexte = "Veuillez patienter... traitement en cours ..."
LaCouleur = "#CC0000"
ActiveSheet.WebBrowser1.Navigate _
"about:<html><body BGCOLOR ='#CCCCCC' scroll='no'><font color= " & LaCouleur & _
" size='5' face='Arial'>" & _
"<marquee>" & LeTexte & "</marquee></font></body></html>"

Application.ScreenUpdating = False

Call Ajout_Formules_BD

Sheets("accueil").Select
ActiveSheet.WebBrowser1.Visible = False

Message = MsgBox("Les données ont été correctement importées.", vbInformation, "Bravo !")

Application.ScreenUpdating = True
Load UserForm_Accueil
UserForm_Accueil.Show
End Sub
Avatar
isabelle
bonjour,

essai en déplaçant la commande
Application.ScreenUpdating = True

juste avant la commande
ActiveSheet.WebBrowser1.Visible = False


--
isabelle



Le 2012-01-25 05:30, simulacre25 a écrit :

Je progresse (affichage d'un texte dans web browser plutôt qu'une image) mais
je bute désormais sur un épineux problème. J'affiche désormais correctement le
web browser mais au milieu de ma procédure, je suis obligé de positionner un
screenupdating à false qui bloque l'affiche dynamique de mon web browser qui est
figé (forcément). Un moyen de contourner cela ?

sub ()
Unload UserForm_Accueil

ActiveSheet.WebBrowser1.Visible = True

'----------- message pendant le transfert ----
'Permet de créer un message d'attente défilant dans le WebBrowser pendant le
transfert
'des données (au format binaire) dans les cellules de la nouvelle feuille.
Dim LeTexte As String
Dim LaCouleur As String

LeTexte = "Veuillez patienter... traitement en cours ..."
LaCouleur = "#CC0000"
ActiveSheet.WebBrowser1.Navigate _
"about:<html><body BGCOLOR ='#CCCCCC' scroll='no'><font color= "& LaCouleur&
_
" size='5' face='Arial'>"& _
"<marquee>"& LeTexte& "</marquee></font></body></html>"

Application.ScreenUpdating = False

Call Ajout_Formules_BD

Sheets("accueil").Select
ActiveSheet.WebBrowser1.Visible = False

Message = MsgBox("Les données ont été correctement importées.", vbInformation,
"Bravo !")

Application.ScreenUpdating = True
Load UserForm_Accueil
UserForm_Accueil.Show
End Sub
Avatar
simulacre25
isabelle a écrit le 25/01/2012 à 15h33 :
bonjour,

essai en déplaçant la commande
Application.ScreenUpdating = True

juste avant la commande
ActiveSheet.WebBrowser1.Visible = False


--
isabelle



Le 2012-01-25 05:30, simulacre25 a écrit :

Je progresse (affichage d'un texte dans web browser plutôt qu'une image)
mais
je bute désormais sur un épineux problème. J'affiche
désormais correctement le
web browser mais au milieu de ma procédure, je suis obligé de
positionner un
screenupdating à false qui bloque l'affiche dynamique de mon web
browser qui est
figé (forcément). Un moyen de contourner cela ?

sub ()
Unload UserForm_Accueil

ActiveSheet.WebBrowser1.Visible = True

'----------- message pendant le transfert ----
'Permet de créer un message d'attente défilant dans le
WebBrowser pendant le
transfert
'des données (au format binaire) dans les cellules de la nouvelle
feuille.
Dim LeTexte As String
Dim LaCouleur As String

LeTexte = "Veuillez patienter... traitement en cours ..."
LaCouleur = "#CC0000"
ActiveSheet.WebBrowser1.Navigate _
"about:<html><body BGCOLOR ='#CCCCCC' scroll='no'><font
color= "& LaCouleur&
_
" size='5' face='Arial'>"& _
"<marquee>"& LeTexte&
"</marquee></font></body></html>"

Application.ScreenUpdating = False

Call Ajout_Formules_BD

Sheets("accueil").Select
ActiveSheet.WebBrowser1.Visible = False

Message = MsgBox("Les données ont été correctement
importées.", vbInformation,
"Bravo !")

Application.ScreenUpdating = True
Load UserForm_Accueil
UserForm_Accueil.Show
End Sub




Marche pas mais ce n'est pas grave. C'était pour apporter une touche "interactive".

Tant pis pour le gif animé.

Je vous remercie car j'ai pu comprendre l'utilisation du web browser.

Merci pour tout.

Nicolas