Ouverture d'un fichier=>Récupérer nom du dossier où se trouve le fichier [Résolu]

triv 16 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mars 2013 Dernière intervention - 24 mars 2013 à 13:08 - Dernière réponse : triv 16 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mars 2013 Dernière intervention
- 25 mars 2013 à 18:53
Bonjour, j'ai un petit problème sur mon programme en vb.

En faite, je veux, sur un clique d'un bouton demander l'ouverture d'un fichier et que après, je récupère le nom du dossier où se trouve le fichier.

Si par exemple le fichier se situe dans C:\Temp\,
je veux une message box qui me marque : "Temp"

Mais je veux un programme qui s'adapte au chemin du fichier, c'est à dire que si le fichier que l'on va chercher se trouve dans :
C:\Program Files\Windows\Config, je veux qu'il m'écrive "Config".

J'ai commencé par écrire se programme :

Dim sChemin As String ' Chemin du fichier

sChemin = Application.GetOpenFilename ' C:\Temp

répertoire = Mid(sChemin, 1, InStrRev(sChemin, "") - 1)

répertoire = Mid(répertoire, 4, InStrRev(répertoire, "") + 2)
msgbox répertoire



Le problème avec ce programme est qu'il s'adapte uniquement pour le chemin C:\Temp. Si je change le chemin, il ne récupère plus le dernier dossier.

J'espère que j'ai été assez clair dans mes explications...lol

Si vous avez une solutions, ce serait super sympa de me la faire partager.

Merci à tous.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
3
Merci
Bonjour triv.

Il me semble que vous n'êtes pas dans la bonne section du forum. Vous vous êtes inscrit en vb.net, alors que vous programmez en vb6. Dites-moi si je me trompe.

Cordialement.



Étant illettré, je signe d'une croix : ×

Merci Zermelo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de Zermelo
Meilleure réponse
Utilisateur anonyme - 24 mars 2013 à 14:45
3
Merci
Re:
Ok... en VB6 alors:
Dim sChemin As String
Dim Liste() As String
sChemin = "c:\users\toto\desktop\fichier.txt" 'exemple d'un chemin complet
Liste = Split(sChemin, "")
MsgBox Liste(UBound(Liste) - 1)



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 24 mars 2013 à 14:06
0
Merci
Bonjour,

C'est ça que tu veux faire?
 OpenFileDialog1.ShowDialog()
        Dim Liste As New ListBox
        Liste.Items.Clear()
        For Each Rep In Split(OpenFileDialog1.FileName, "")
            Liste.Items.Add(Rep)
        Next
        MessageBox.Show(Liste.Items.Item(Liste.Items.Count - 2))



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
triv 16 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mars 2013 Dernière intervention - 24 mars 2013 à 14:07
0
Merci
Bonjour a ok, désolé je n'ai pas fait attention. Est-il possible de déplacer mon topic dans la bonne section ?

Merci.
Commenter la réponse de triv
0
Merci
Re.

Il vous faudra attendre qu'un administrateur bienveillant fasse ce déplacement.

Cordialement.


Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
triv 16 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mars 2013 Dernière intervention - 24 mars 2013 à 15:01
0
Merci
Oki ton programme marche impeccable acive.

Merci à tous pour vos réponses et bon dimanche
Commenter la réponse de triv
triv 16 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mars 2013 Dernière intervention - 25 mars 2013 à 18:32
0
Merci
Bonjour, je relance le topic car je veux faire évoluer mon programme: je veux faire des sélections multiples.

Le seul problème est que lorsque je fais ainsi, la variable schemin n'est plus un string mais un variant et le code du dessous ne marche plus (erreur incompatibilité de type).

sChemin = Application.GetOpenFilename(, , , , True) ' C:\Temp

répertoire = Mid(sChemin, 1, InStrRev(sChemin, "") - 1)


répertoire = Mid(répertoire, 4, InStrRev(répertoire, "") + 2)

msgbox répertoire


j'ai essayé de faire une instruction pour transformer un variant en string mais ça ne marche pas.

Un peu d'aide ne serait pas de refus

Je vous remercie d'avance
Commenter la réponse de triv
triv 16 Messages postés dimanche 25 novembre 2007Date d'inscription 25 mars 2013 Dernière intervention - 25 mars 2013 à 18:53
0
Merci
C'est bon j'ai trouvé la réponse, j'ai vu qu'en faite sChemin était un tableau donc je complété mon code en écrivant ceci :

Dim ouvrir As Variant
Dim sChemin As String


ouvrir = Application.GetOpenFilename(, , , , True) ' C:\Temp

sChemin = ouvrir(1)
MsgBox sChemin
répertoire = Mid(sChemin, 1, InStrRev(sChemin, "") - 1)
MsgBox répertoire
répertoire = Mid(répertoire, InStrRev(répertoire, "cas"), 50)

MsgBox répertoire


MAintenant j'enregistrer cette macro en tant que "classeur de macro personnel" mais la quand je veux lancer l'enregistrement de la macro, il me dit :
Le classeur Macros personnelles dans le dossier de démarrage doit être ouvert pendant l'enregistrement

Enregistrement impossible


Je ne comprend pas trop la signification de cette erreur.

Si vous pouvez m'éclairer...

merci
Commenter la réponse de triv

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.