recupérer la racine d'un fichier

  • Initiateur de la discussion benjamin
  • Date de début
B

benjamin

Guest
bonjour
je voudrais récuperer la racine d'un fichier que j'ouvre avec une boite de dialogue dans un uerform.
je vais essayer d'être plus clair,
je voudrais aller chercher une image avec une boite de dialogue (Monfichier = Application.GetOpenFilename('jpg (*.jpg), *.jpg')) ensuite je souhaiterais afficher cette image dans une frame dans l'userform, il me faut donc savoir ou est ce fichier pour pouvoir l'afficher, par la suite je souhaiterais pouvoir l'enregistrer dans un autre dossier avec un autre nom.
si qqun a une petite idée :) cela me serais d'un grand secours
merci
 

Creepy

XLDnaute Accro
Bonjour le Forum, Benjamin,

Je ne suis pas sûr d'avoir bien tout compris mais l'exemple si dessous devrait répondre à ta question.

Code:
Sub Fichier()
' Dans Outils > Référence cocher : Microsoft Scripting Runtime
Dim Chemin As String, Drive As String, Rep As String, Fichier As String
Dim FSO As New FileSystemObject


Chemin = 'c:\\Toto\\Tata\\dede.xls' ' Chemin complet
Drive = FSO.GetDriveName(Chemin) ' Recupère le lecteur
Rep = FSO.GetParentFolderName(Chemin) ' le repertoire
Fichier = FSO.GetFileName(Chemin) ' le nom de fichier ...

' Chr(13) sert à retourner à la ligne dans une msgbox
MsgBox 'Lecteur : ' & Drive & Chr(13) & _
        'Repertoire : ' & Rep & Chr(13) & _
        'Fichier : ' & Fichier, vbInformation + vbOKOnly, 'Infos ...'

Set FSO = Nothing ' pour liberer des ressources
    
End Sub

@+

Creepy
 
A

Amydale

Guest
L'activeworkbook.path ne marchera pas car ce n'est pas un classeur excel, mais un fichier jpg

Je te propose une petite fonction pour le récupérer :

Function GetPath(FullAddress As String) As String
Dim fso
Set fso = CreateObject('Scripting.FileSystemObject')
GetPath = fso.getFolder(FullAddress)
Set fso = Nothing
End Function

et enfin, un exemple pour l'utiliser :
MsgBox GetPath('C:\\test\\monimage.jpg')
(en espérant ne pas avoir fait de fautes, je n'ai pas excel sur ce poste).

Je te conseille d'aller voir dans l'aide en tapant FileSystemObject (et non en tapant F1 sur le mot, ca le trouve pas... jamais compris pourquoi),
ca t'expliquera comment savoir si un fichier existe, un répertoire, copier des fichiers, créer des répertoires, en supprimer etc, des trucs comme ca.
@+
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour Benjamin, creepy, papaye, Amydale

si tu utilises getopenfilename, tu récupères un nom de fichier avec son chemin, getopenfilename simule une boite d'ouverture qui n'ouvre pas les fichiers. tu auras donc dans monfichier le nom du fichier à ouvrir avec son chemin.
une simple instruction filecopy effectuera une copie de ton fichier ou tu veux
exemple
Code:
FileCopy monfichier, 'c:\\test.jpg'
copiera ton fichier sous le nom test.jpg à la racine c

Cordialement, A+
 
B

benjamin

Guest
bonjour creepy, papaye, amydale, yeahou
merci a vous de vous interesser a mon problème mais je l'ai tjrs pas résolu :)
je joint un fichier pour que tout le monde comprenne
il y a 2 userform
j'ouvre le premier n cliquant sur un boutton et ensuite dans ce premier UF il y a un autre bouton pour ajouter une image ensuite ca marche pas trop, j'arrive deja ^pas a avoir un apercu de l'image dans une frame et c'est encore pire quand il faut renommer le fichier et l'enregistrer dans un dossier
voila j'espère que vous avez mieux compris [file name=testajtphoto.zip size=23972]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testajtphoto.zip[/file]
 

Pièces jointes

  • testajtphoto.zip
    23.4 KB · Affichages: 44

Discussions similaires

Réponses
10
Affichages
329
Compte Supprimé 979
C
Réponses
1
Affichages
345
Compte Supprimé 979
C
Réponses
17
Affichages
557