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

ImageContenu.Picture = LoadPicture

4 réponses
Avatar
Jean-Paul V
Bonjour à tous

J’ai une macro qui ouvre un Userform nommé Formulaire dans ce Userform j’ai
le TextBox nommé Photo qui indique le nom du fichier chargé dans Image1 de
Formulaire, lorsque je clique Image1 ceci ouvre un autre Userform nommé
Contenu dans lequel j’ai une image nommée ImageContenu et un TextBox nommé
PhotoContenu

Dans le code du Formulaire j’ai cette macro qui fonctionne bien :
Private Sub Image1_Click()
Dim P As String
Dim i As Integer
i = 1 'NB l'incrémentation de i dans contenu ne marche pas ?
Contenu.PhotoContenu.Value = Photo
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 4) & i & ".jpg"
End With
P = Contenu.PhotoContenu.Value
If Dir(ThisWorkbook.Path & "\" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "\" & P)
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible"
End If
' Unload Me
Contenu.Show
End Sub

Dans le code du Userform Contenu j’ai :
Private Sub ImageContenu_Click()
Dim Repertoire As String
Dim P As String
Repertoire = ThisWorkbook.Path & "\"
ChDirNet Repertoire
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 5) & (Mid(.Value, Len(.Value) -
4, 1)) + 1 & ".jpg"
End With
P = Contenu.PhotoContenu.Value 'Fontionne
'ce qui suit ne marche pas ???
If Dir(ThisWorkbook.Path & "\" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "\" & P)
' Contenu.ImageContenu.Picture = LoadPicture(P) 'ne marche pas plus
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible ou FIN" 'fontionne
End If
End Sub
Pourquoi Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path &
"\" & P) ne fonctionne pas dans le code de Contenu ?
Comment corriger cette macro ?
http://cjoint.com/?ivkJOnR2tO

A + j’espère

--
Jean-Paul V

4 réponses

Avatar
MichDenis
Bonjour Jean-Paul,

Cette procédure "Private Sub ImageContenu_Click()" du formulaire "Contenu",
L'image du contrôle est déjà affichée à partir du formulaire "Formulaire"
Quelles actions doivent être exécutées lors du clic sur le contrôle ?

Selon moi, cette procédure est totalement inutile !

Dans le formulaire "Formulaire" j'ai modifié cette procédure :
Avec la commande Load Contenu , je charge en mémoire le
formulaire mais sans l'afficher. La commande Contenu.Show
affiche le formulaire... et l'image est déjà au rendez-vous. Nul
besoin d'ajouter une procédure "Clic" sur ce contrôle.

'-------------------------------------------
Private Sub Image1_Click()
Dim P As String
Dim i As Integer
i = 1 'NB l'incrémentation de i dans contenu ne marche pas ?
Contenu.PhotoContenu.Caption = Photo

'------------------Ajouter-----------------
'Chargement du formulaire contenu
Load Contenu
'------------------Ajouter-----------------

Contenu.PhotoContenu.Caption = Photo

With Contenu.PhotoContenu
.Caption = Left(.Caption, Len(.Caption) - 4) & i & ".jpg"
End With
P = Contenu.PhotoContenu.Caption
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible"
End If
Unload Me
Contenu.Show
End Sub
'-------------------------------------------




"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous

J’ai une macro qui ouvre un Userform nommé Formulaire dans ce Userform j’ai
le TextBox nommé Photo qui indique le nom du fichier chargé dans Image1 de
Formulaire, lorsque je clique Image1 ceci ouvre un autre Userform nommé
Contenu dans lequel j’ai une image nommée ImageContenu et un TextBox nommé
PhotoContenu

Dans le code du Formulaire j’ai cette macro qui fonctionne bien :
Private Sub Image1_Click()
Dim P As String
Dim i As Integer
i = 1 'NB l'incrémentation de i dans contenu ne marche pas ?
Contenu.PhotoContenu.Value = Photo
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 4) & i & ".jpg"
End With
P = Contenu.PhotoContenu.Value
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible"
End If
' Unload Me
Contenu.Show
End Sub

Dans le code du Userform Contenu j’ai :
Private Sub ImageContenu_Click()
Dim Repertoire As String
Dim P As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 5) & (Mid(.Value, Len(.Value) -
4, 1)) + 1 & ".jpg"
End With
P = Contenu.PhotoContenu.Value 'Fontionne
'ce qui suit ne marche pas ???
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
' Contenu.ImageContenu.Picture = LoadPicture(P) 'ne marche pas plus
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible ou FIN" 'fontionne
End If
End Sub
Pourquoi Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path &
"" & P) ne fonctionne pas dans le code de Contenu ?
Comment corriger cette macro ?
http://cjoint.com/?ivkJOnR2tO

A + j’espère

--
Jean-Paul V
Avatar
Jean-Paul V
Bonjour Denis

Votre macro ce plante car PhotoContenu est un TextBox et donc n'a pas de
Caption, si on remplace Caption par valeur je ne vois pas comment on obtient
les pages suivantes de Contenu puisque votre macro n'incrémente pas i.
Ce n'est pas grave car j'ai trouvé la solution en mettant la Macro dans le
code du bouton > (nommé B_suiv) et bizarrement là ça marche.
Private Sub B_suiv_Click()
Dim Repertoire As String
Dim P As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 5) & (Mid(.Value, Len(.Value) -
4, 1)) + 1 & ".jpg"
End With
P = Contenu.PhotoContenu.Value 'Fontionne
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible ou FIN" 'fontionne
Application.Wait TimeSerial(Hour(Now()), Minute(Now()),
Second(Now()) + 3)
MsgBox ("Il n'y a pas d'autre page.")
Unload Me
Formulaire.Show
End If
End Sub

Comment fait on pour positionner mon message MsgBox dans ma page si je veux
le mettre plus haut dans l'écran ?

à+ Bonne soirée
--
Jean-Paul V


"MichDenis" wrote:

Bonjour Jean-Paul,

Cette procédure "Private Sub ImageContenu_Click()" du formulaire "Contenu",
L'image du contrôle est déjà affichée à partir du formulaire "Formulaire"
Quelles actions doivent être exécutées lors du clic sur le contrôle ?

Selon moi, cette procédure est totalement inutile !

Dans le formulaire "Formulaire" j'ai modifié cette procédure :
Avec la commande Load Contenu , je charge en mémoire le
formulaire mais sans l'afficher. La commande Contenu.Show
affiche le formulaire... et l'image est déjà au rendez-vous. Nul
besoin d'ajouter une procédure "Clic" sur ce contrôle.

'-------------------------------------------
Private Sub Image1_Click()
Dim P As String
Dim i As Integer
i = 1 'NB l'incrémentation de i dans contenu ne marche pas ?
Contenu.PhotoContenu.Caption = Photo

'------------------Ajouter-----------------
'Chargement du formulaire contenu
Load Contenu
'------------------Ajouter-----------------

Contenu.PhotoContenu.Caption = Photo

With Contenu.PhotoContenu
.Caption = Left(.Caption, Len(.Caption) - 4) & i & ".jpg"
End With
P = Contenu.PhotoContenu.Caption
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible"
End If
Unload Me
Contenu.Show
End Sub
'-------------------------------------------




"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous

J’ai une macro qui ouvre un Userform nommé Formulaire dans ce Userform j’ai
le TextBox nommé Photo qui indique le nom du fichier chargé dans Image1 de
Formulaire, lorsque je clique Image1 ceci ouvre un autre Userform nommé
Contenu dans lequel j’ai une image nommée ImageContenu et un TextBox nommé
PhotoContenu

Dans le code du Formulaire j’ai cette macro qui fonctionne bien :
Private Sub Image1_Click()
Dim P As String
Dim i As Integer
i = 1 'NB l'incrémentation de i dans contenu ne marche pas ?
Contenu.PhotoContenu.Value = Photo
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 4) & i & ".jpg"
End With
P = Contenu.PhotoContenu.Value
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible"
End If
' Unload Me
Contenu.Show
End Sub

Dans le code du Userform Contenu j’ai :
Private Sub ImageContenu_Click()
Dim Repertoire As String
Dim P As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 5) & (Mid(.Value, Len(.Value) -
4, 1)) + 1 & ".jpg"
End With
P = Contenu.PhotoContenu.Value 'Fontionne
'ce qui suit ne marche pas ???
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
' Contenu.ImageContenu.Picture = LoadPicture(P) 'ne marche pas plus
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible ou FIN" 'fontionne
End If
End Sub
Pourquoi Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path &
"" & P) ne fonctionne pas dans le code de Contenu ?
Comment corriger cette macro ?
http://cjoint.com/?ivkJOnR2tO

A + j’espère

--
Jean-Paul V




Avatar
MichDenis
| Votre macro ce plante car PhotoContenu est un TextBox
***Ouais, dans ma version du formulaire, j'avais modifié le
textbox pour un Label en conservant le même nom pour
un test... Objectif :éviter une procédure "Testbox_Change"

| macro n'incrémente pas i. Ce n'est pas grave car j'ai trouvé
| la solution en mettant la Macro dans le code du bouton >
| (nommé B_suiv) et bizarrement là ça marche.
*** Voilà qui est déjà plus brillant !

*** Les lignes de code qui se répète dans chaque procédure :
*** Est-ce essentiel ? Il me semble qu'un fois à l'ouverture
du premier formulaire est suffisant. Tu peux mettre dans
une variable Public la valeur du Chemin du fichier actif
et utiliser cette variable dans tout ton code. Non ?
| ChDirNet Repertoire
| ChDrive Left(ActiveWorkbook.Path, 1)
| ChDir ActiveWorkbook.Path

*** Ton truc : MsgBox ("Il n'y a pas d'autre page.")
pour signifier à l'usager qu'il a épuisé la liste des
photos disponibles est faible... Qu'est-ce qui se passe
si l'usager clic une dernière fois... qu'importe la raison ?
Pourquoi ne pas utiliser :
If Dir(ThisWorkbook.Path & "" & P) <> "" And _
Contenu.PhotoContenu <> "Image non disponible ou FIN" Then

else

if
et tu laisses tomber Application.Wait ...



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour Denis

Votre macro ce plante car PhotoContenu est un TextBox et donc n'a pas de
Caption, si on remplace Caption par valeur je ne vois pas comment on obtient
les pages suivantes de Contenu puisque votre macro n'incrémente pas i.
Ce n'est pas grave car j'ai trouvé la solution en mettant la Macro dans le
code du bouton > (nommé B_suiv) et bizarrement là ça marche.
Private Sub B_suiv_Click()
Dim Repertoire As String
Dim P As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 5) & (Mid(.Value, Len(.Value) -
4, 1)) + 1 & ".jpg"
End With
P = Contenu.PhotoContenu.Value 'Fontionne
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible ou FIN" 'fontionne
Application.Wait TimeSerial(Hour(Now()), Minute(Now()),
Second(Now()) + 3)
MsgBox ("Il n'y a pas d'autre page.")
Unload Me
Formulaire.Show
End If
End Sub

Comment fait on pour positionner mon message MsgBox dans ma page si je veux
le mettre plus haut dans l'écran ?

à+ Bonne soirée
--
Jean-Paul V


"MichDenis" wrote:

Bonjour Jean-Paul,

Cette procédure "Private Sub ImageContenu_Click()" du formulaire "Contenu",
L'image du contrôle est déjà affichée à partir du formulaire "Formulaire"
Quelles actions doivent être exécutées lors du clic sur le contrôle ?

Selon moi, cette procédure est totalement inutile !

Dans le formulaire "Formulaire" j'ai modifié cette procédure :
Avec la commande Load Contenu , je charge en mémoire le
formulaire mais sans l'afficher. La commande Contenu.Show
affiche le formulaire... et l'image est déjà au rendez-vous. Nul
besoin d'ajouter une procédure "Clic" sur ce contrôle.

'-------------------------------------------
Private Sub Image1_Click()
Dim P As String
Dim i As Integer
i = 1 'NB l'incrémentation de i dans contenu ne marche pas ?
Contenu.PhotoContenu.Caption = Photo

'------------------Ajouter-----------------
'Chargement du formulaire contenu
Load Contenu
'------------------Ajouter-----------------

Contenu.PhotoContenu.Caption = Photo

With Contenu.PhotoContenu
.Caption = Left(.Caption, Len(.Caption) - 4) & i & ".jpg"
End With
P = Contenu.PhotoContenu.Caption
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible"
End If
Unload Me
Contenu.Show
End Sub
'-------------------------------------------




"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous

J’ai une macro qui ouvre un Userform nommé Formulaire dans ce Userform j’ai
le TextBox nommé Photo qui indique le nom du fichier chargé dans Image1 de
Formulaire, lorsque je clique Image1 ceci ouvre un autre Userform nommé
Contenu dans lequel j’ai une image nommée ImageContenu et un TextBox nommé
PhotoContenu

Dans le code du Formulaire j’ai cette macro qui fonctionne bien :
Private Sub Image1_Click()
Dim P As String
Dim i As Integer
i = 1 'NB l'incrémentation de i dans contenu ne marche pas ?
Contenu.PhotoContenu.Value = Photo
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 4) & i & ".jpg"
End With
P = Contenu.PhotoContenu.Value
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible"
End If
' Unload Me
Contenu.Show
End Sub

Dans le code du Userform Contenu j’ai :
Private Sub ImageContenu_Click()
Dim Repertoire As String
Dim P As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 5) & (Mid(.Value, Len(.Value) -
4, 1)) + 1 & ".jpg"
End With
P = Contenu.PhotoContenu.Value 'Fontionne
'ce qui suit ne marche pas ???
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
' Contenu.ImageContenu.Picture = LoadPicture(P) 'ne marche pas plus
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible ou FIN" 'fontionne
End If
End Sub
Pourquoi Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path &
"" & P) ne fonctionne pas dans le code de Contenu ?
Comment corriger cette macro ?
http://cjoint.com/?ivkJOnR2tO

A + j’espère

--
Jean-Paul V




Avatar
Jean-Paul V
Merci pour ces bons conseils
--
Jean-Paul V


"MichDenis" wrote:

| Votre macro ce plante car PhotoContenu est un TextBox
***Ouais, dans ma version du formulaire, j'avais modifié le
textbox pour un Label en conservant le même nom pour
un test... Objectif :éviter une procédure "Testbox_Change"

| macro n'incrémente pas i. Ce n'est pas grave car j'ai trouvé
| la solution en mettant la Macro dans le code du bouton >
| (nommé B_suiv) et bizarrement là ça marche.
*** Voilà qui est déjà plus brillant !

*** Les lignes de code qui se répète dans chaque procédure :
*** Est-ce essentiel ? Il me semble qu'un fois à l'ouverture
du premier formulaire est suffisant. Tu peux mettre dans
une variable Public la valeur du Chemin du fichier actif
et utiliser cette variable dans tout ton code. Non ?
| ChDirNet Repertoire
| ChDrive Left(ActiveWorkbook.Path, 1)
| ChDir ActiveWorkbook.Path

*** Ton truc : MsgBox ("Il n'y a pas d'autre page.")
pour signifier à l'usager qu'il a épuisé la liste des
photos disponibles est faible... Qu'est-ce qui se passe
si l'usager clic une dernière fois... qu'importe la raison ?
Pourquoi ne pas utiliser :
If Dir(ThisWorkbook.Path & "" & P) <> "" And _
Contenu.PhotoContenu <> "Image non disponible ou FIN" Then

else

if
et tu laisses tomber Application.Wait ...



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour Denis

Votre macro ce plante car PhotoContenu est un TextBox et donc n'a pas de
Caption, si on remplace Caption par valeur je ne vois pas comment on obtient
les pages suivantes de Contenu puisque votre macro n'incrémente pas i.
Ce n'est pas grave car j'ai trouvé la solution en mettant la Macro dans le
code du bouton > (nommé B_suiv) et bizarrement là ça marche.
Private Sub B_suiv_Click()
Dim Repertoire As String
Dim P As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
With Contenu.PhotoContenu
.Value = Left(.Value, Len(.Value) - 5) & (Mid(.Value, Len(.Value) -
4, 1)) + 1 & ".jpg"
End With
P = Contenu.PhotoContenu.Value 'Fontionne
If Dir(ThisWorkbook.Path & "" & P) <> "" Then
Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
Else
Contenu.ImageContenu.Picture = Picture
Contenu.PhotoContenu = "Image non disponible ou FIN" 'fontionne
Application.Wait TimeSerial(Hour(Now()), Minute(Now()),
Second(Now()) + 3)
MsgBox ("Il n'y a pas d'autre page.")
Unload Me
Formulaire.Show
End If
End Sub

Comment fait on pour positionner mon message MsgBox dans ma page si je veux
le mettre plus haut dans l'écran ?

à+ Bonne soirée
--
Jean-Paul V


"MichDenis" wrote:

> Bonjour Jean-Paul,
>
> Cette procédure "Private Sub ImageContenu_Click()" du formulaire "Contenu",
> L'image du contrôle est déjà affichée à partir du formulaire "Formulaire"
> Quelles actions doivent être exécutées lors du clic sur le contrôle ?
>
> Selon moi, cette procédure est totalement inutile !
>
> Dans le formulaire "Formulaire" j'ai modifié cette procédure :
> Avec la commande Load Contenu , je charge en mémoire le
> formulaire mais sans l'afficher. La commande Contenu.Show
> affiche le formulaire... et l'image est déjà au rendez-vous. Nul
> besoin d'ajouter une procédure "Clic" sur ce contrôle.
>
> '-------------------------------------------
> Private Sub Image1_Click()
> Dim P As String
> Dim i As Integer
> i = 1 'NB l'incrémentation de i dans contenu ne marche pas ?
> Contenu.PhotoContenu.Caption = Photo
>
> '------------------Ajouter-----------------
> 'Chargement du formulaire contenu
> Load Contenu
> '------------------Ajouter-----------------
>
> Contenu.PhotoContenu.Caption = Photo
>
> With Contenu.PhotoContenu
> .Caption = Left(.Caption, Len(.Caption) - 4) & i & ".jpg"
> End With
> P = Contenu.PhotoContenu.Caption
> If Dir(ThisWorkbook.Path & "" & P) <> "" Then
> Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
> Else
> Contenu.ImageContenu.Picture = Picture
> Contenu.PhotoContenu = "Image non disponible"
> End If
> Unload Me
> Contenu.Show
> End Sub
> '-------------------------------------------
>
>
>
>
> "Jean-Paul V" a écrit dans le message de groupe de
> discussion :
> Bonjour à tous
>
> J’ai une macro qui ouvre un Userform nommé Formulaire dans ce Userform j’ai
> le TextBox nommé Photo qui indique le nom du fichier chargé dans Image1 de
> Formulaire, lorsque je clique Image1 ceci ouvre un autre Userform nommé
> Contenu dans lequel j’ai une image nommée ImageContenu et un TextBox nommé
> PhotoContenu
>
> Dans le code du Formulaire j’ai cette macro qui fonctionne bien :
> Private Sub Image1_Click()
> Dim P As String
> Dim i As Integer
> i = 1 'NB l'incrémentation de i dans contenu ne marche pas ?
> Contenu.PhotoContenu.Value = Photo
> With Contenu.PhotoContenu
> .Value = Left(.Value, Len(.Value) - 4) & i & ".jpg"
> End With
> P = Contenu.PhotoContenu.Value
> If Dir(ThisWorkbook.Path & "" & P) <> "" Then
> Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
> Else
> Contenu.ImageContenu.Picture = Picture
> Contenu.PhotoContenu = "Image non disponible"
> End If
> ' Unload Me
> Contenu.Show
> End Sub
>
> Dans le code du Userform Contenu j’ai :
> Private Sub ImageContenu_Click()
> Dim Repertoire As String
> Dim P As String
> Repertoire = ThisWorkbook.Path & ""
> ChDirNet Repertoire
> ChDrive Left(ActiveWorkbook.Path, 1)
> ChDir ActiveWorkbook.Path
> With Contenu.PhotoContenu
> .Value = Left(.Value, Len(.Value) - 5) & (Mid(.Value, Len(.Value) -
> 4, 1)) + 1 & ".jpg"
> End With
> P = Contenu.PhotoContenu.Value 'Fontionne
> 'ce qui suit ne marche pas ???
> If Dir(ThisWorkbook.Path & "" & P) <> "" Then
> Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path & "" & P)
> ' Contenu.ImageContenu.Picture = LoadPicture(P) 'ne marche pas plus
> Else
> Contenu.ImageContenu.Picture = Picture
> Contenu.PhotoContenu = "Image non disponible ou FIN" 'fontionne
> End If
> End Sub
> Pourquoi Contenu.ImageContenu.Picture = LoadPicture(ThisWorkbook.Path &
> "" & P) ne fonctionne pas dans le code de Contenu ?
> Comment corriger cette macro ?
> http://cjoint.com/?ivkJOnR2tO
>
> A + j’espère
>
> --
> Jean-Paul V
>
>