OVH Cloud OVH Cloud

ThisWorkbook.Path

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

Comment modifier cette macro déclanchée en cliquant sur le bouton
‘‘B_photo’’ d’un Userform qui va chercher un fichier .jpg dans le même
répertoire que le fichier actif pour mettre le nom du fichier dans la zone de
texte du Userform nommée Photo

1 ) This ThisWorkbook.Path ne marche pas il prend en fait le dernier
répertoire utilisé au lieu de prendre le répertoire du fichier actif
2 ) Il met dans la zone de texte du Userform par exemple
D:\DISCOTHEQUE\BACH37779.jpg alors que je souhaiterais avoir BACH37779.jpg



Private Sub B_photo_Click()
repertoire = ThisWorkbook.Path & "\"
nf = Application.GetOpenFilename("Fichiers jpg,*.jpg")
If Not nf = False Then
Me.Photo = nf
End If
End Sub

A + j’espère

--
Jean-Paul V

4 réponses

1 2
Avatar
LSteph
;o))
pas autant que moi qui m'étais contenté du minimum
Chdir Thisworkbook.path

..ou ActiveWorkBook.path selon le risque que j'ai évoqué

Merci d'avoir repris l'ensemble.

On 16 juin, 16:08, Daniel.C wrote:
Tout à fait exact.
Pure flemme de ma part.
Daniel



> Bonjour Daniel,

> Pour être vraiment sûr, j'aurais ajouter ceci au cas où ...
> ;-)

> ChDrive Left(ActiveWorkbook.Path, 1)
> ChDir ActiveWorkbook.Path

> le reste de la macro.

> "Daniel.C" a écrit dans le message de grou pe de
> discussion :  #
> Bonjour.
> Private Sub B_photo_Click()
>     ChDir ActiveWorkbook.Path
>     nf = Application.GetOpenFilename("Fichiers jpg,*.jpg")
>     If Not nf = False Then
>       Me.Photo = Dir(nf)
>     End If
> End Sub
> Cordialement.
> Daniel

>> Bonjour à tous

>> Comment modifier cette macro déclanchée en cliquant sur le bouton
>> ‘‘B_photo’’ d’un Userform qui va chercher un fichier .jpg da ns le même
>> répertoire que le fichier actif pour mettre le nom du fichier dans l a zone
>> de texte du Userform nommée Photo

>> 1 )  This ThisWorkbook.Path ne marche pas il prend en fait le dernie r
>> répertoire utilisé au lieu de prendre le répertoire du fichier a ctif
>> 2 ) Il met dans la zone de texte du Userform par exemple
>> D:DISCOTHEQUEBACH37779.jpg alors que je souhaiterais avoir BACH37779 .jpg

>> Private Sub B_photo_Click()
>>     repertoire = ThisWorkbook.Path & ""
>>     nf = Application.GetOpenFilename("Fichiers jpg,*.jpg")
>>     If Not nf = False Then
>>       Me.Photo = nf
>>     End If
>> End Sub

>> A + j’espère- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Daniel.C
Même avec le multisession ? ;-)))
Daniel

Ok pour D, mais ce doit être un peu plus compliqué d'enregistrer le fichier !
;-))


"Daniel.C" a écrit dans le message de groupe de
discussion :
D, c'est souvent le lecteur CD...
Daniel

Rassure-toi, le demandeur n'a sûrement pas plus d'un lecteur !
;-)

"Daniel.C" a écrit dans le message de groupe de
discussion : u$M7#
Tout à fait exact.
Pure flemme de ma part.
Daniel

Bonjour Daniel,

Pour être vraiment sûr, j'aurais ajouter ceci au cas où ...
;-)

ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path

le reste de la macro.




"Daniel.C" a écrit dans le message de groupe de
discussion : #
Bonjour.
Private Sub B_photo_Click()
ChDir ActiveWorkbook.Path
nf = Application.GetOpenFilename("Fichiers jpg,*.jpg")
If Not nf = False Then
Me.Photo = Dir(nf)
End If
End Sub
Cordialement.
Daniel

Bonjour à tous

Comment modifier cette macro déclanchée en cliquant sur le bouton
‘‘B_photo’’ d’un Userform qui va chercher un fichier .jpg dans le même
répertoire que le fichier actif pour mettre le nom du fichier dans la zone
de texte du Userform nommée Photo

1 ) This ThisWorkbook.Path ne marche pas il prend en fait le dernier
répertoire utilisé au lieu de prendre le répertoire du fichier actif
2 ) Il met dans la zone de texte du Userform par exemple
D:DISCOTHEQUEBACH37779.jpg alors que je souhaiterais avoir BACH37779.jpg



Private Sub B_photo_Click()
repertoire = ThisWorkbook.Path & ""
nf = Application.GetOpenFilename("Fichiers jpg,*.jpg")
If Not nf = False Then
Me.Photo = nf
End If
End Sub

A + j’espère








Avatar
Jean-Paul V
Bonjour Daniel

merci pour le Me.Photo = Dir(nf) ça marche
par contre MichDenis avait raison il fallait ajouter le ChDrive
Left(ActiveWorkbook.Path, 1) car sur mon micro j'ai C et D

Merci à tous

--
Jean-Paul V


"Daniel.C" wrote:

Bonjour.
Private Sub B_photo_Click()
ChDir ActiveWorkbook.Path
nf = Application.GetOpenFilename("Fichiers jpg,*.jpg")
If Not nf = False Then
Me.Photo = Dir(nf)
End If
End Sub
Cordialement.
Daniel

> Bonjour à tous
>
> Comment modifier cette macro déclanchée en cliquant sur le bouton
> ‘‘B_photo’’ d’un Userform qui va chercher un fichier .jpg dans le même
> répertoire que le fichier actif pour mettre le nom du fichier dans la zone de
> texte du Userform nommée Photo
>
> 1 ) This ThisWorkbook.Path ne marche pas il prend en fait le dernier
> répertoire utilisé au lieu de prendre le répertoire du fichier actif
> 2 ) Il met dans la zone de texte du Userform par exemple
> D:DISCOTHEQUEBACH37779.jpg alors que je souhaiterais avoir BACH37779.jpg
>
>
>
> Private Sub B_photo_Click()
> repertoire = ThisWorkbook.Path & ""
> nf = Application.GetOpenFilename("Fichiers jpg,*.jpg")
> If Not nf = False Then
> Me.Photo = nf
> End If
> End Sub
>
> A + j’espère





Avatar
Jean-Paul V
Bonjour MichDenis

J'avais bien à tort négligé cette partie de votre réponse en l'exploitant et
en complétant :
Private Sub UserForm_Initialize()
Dim Repertoire As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
...
End Sub

ça marche sinon je n'avais pas mes photos à la première ouverture du fichier
et du Userform merci encore
--
Jean-Paul V


"MichDenis" wrote:

L'auteur de ceci : Public Sub ChDirNet(szPath As String)
C'est un certain M. Rob Bovey
;-)

"MichDenis" a écrit dans le message de groupe de discussion :
#
Bonjour Jean-Paul,

Déclaration de l'API dans le haut du module standard
Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long
'------------------------------------------
Public Sub ChDirNet(szPath As String)
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub

'------------------------------------------
Private Sub B_photo_Click()
Dim Repertoire As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
nf = Application.GetOpenFilename("Fichiers jpg,*.jpg")
If Not nf = False Then
Me.Photo = nf
End If
End Sub
'------------------------------------------



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

Comment modifier cette macro déclanchée en cliquant sur le bouton
‘‘B_photo’’ d’un Userform qui va chercher un fichier .jpg dans le même
répertoire que le fichier actif pour mettre le nom du fichier dans la zone de
texte du Userform nommée Photo

1 ) This ThisWorkbook.Path ne marche pas il prend en fait le dernier
répertoire utilisé au lieu de prendre le répertoire du fichier actif
2 ) Il met dans la zone de texte du Userform par exemple
D:DISCOTHEQUEBACH37779.jpg alors que je souhaiterais avoir BACH37779.jpg



Private Sub B_photo_Click()
repertoire = ThisWorkbook.Path & ""
nf = Application.GetOpenFilename("Fichiers jpg,*.jpg")
If Not nf = False Then
Me.Photo = nf
End If
End Sub

A + j’espère

--
Jean-Paul V




1 2