Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/04/2008, 13h37   #1
Membre du Club
 
Inscription : mars 2008
Messages : 291
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 291
Points : 67
Points : 67
Par défaut recuperer une partie de ma variable

bonjour,

je voudrais recuperer une partie de ma variable (string) en VBA

ma variable "FileName" contient un chemin
D:/toto/cortex.svg

et moi je voudrais recuperer cortex.svg

est ce que quelqu'un a une idée?

merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 13h50   #2
Membre régulier
 
Développeur .NET
Inscription : juin 2007
Messages : 77
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : juin 2007
Messages : 77
Points : 88
Points : 88
salut,
en utilisant les fonctions Mid et InstrRev tu dois pouvoir le faire.

la fonction Mid(Chaine, Start, Length) extrait une partie de la chaine

la fonction InstrRev(Start, ChaineConteneur, CaratereRecherche) te renvoi la position du caractère recherché dans la chaine, ici en commencant par la fin de la chaine (utile si ton chemin contient un nombre indéterminé de "\"), sinon Instr commence par le début

j'espère que ça pourra t'aider
robri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h03   #3
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 417
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 417
Points : 2 309
Points : 2 309
Salut !

Tu peux également utiliser la méthode split de la classe String :

Code :
1
2
3
 
s = "D:/toto/cortex.svg"
Dim res() as string = s.split(TonSeparateur)
split parse la chaîne selon le séparateur, et renvoie un tableau de string.
=> res(s.length -1) est le nom de ton fichier...
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h10   #4
Membre du Club
 
Inscription : mars 2008
Messages : 291
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 291
Points : 67
Points : 67
re

Code :
1
2
Dim res As String
res = svgFileName.Split("/")
ceci ne fonctione pas!
le qualifiquateur est incorect (svgFileName)

svgFileName : est la variable qui contient mon chemin

merci

sinon j'ai essayer aussi

Code :
1
2
Dim res As String
res = Mid(svgFileName, InStrRev(svgFileName, "/"))
mais ca ne fonctionne pas!

merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h22   #5
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 417
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 417
Points : 2 309
Points : 2 309
split renvoie un tableau !
(relis mon post...)

Et lis aussi les messages d'erreur quand ça ne marche pas :
- ça peut t'aider à avancer
- ça peut nous aider à comprendre ce qui ne marche pas
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h23   #6
Membre régulier
 
Développeur .NET
Inscription : juin 2007
Messages : 77
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : juin 2007
Messages : 77
Points : 88
Points : 88
j'avais complètement oublié split

par contre la syntaxe correcte est : Split(Chaine, Separateur)

Code :
1
2
Dim res() As String
res = Split(svgFileName,"/")
?
robri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h25   #7
Membre actif
 
Inscription : février 2008
Messages : 227
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 227
Points : 174
Points : 174
Bonjour,
ce ceode n'est pas optimise mais bon
Code :
1
2
3
4
5
6
7
Dim nom As String = "Nom/belge/mons"
        Dim i As Integer
        For i = 1 To Len(nom)
            If (Mid(nom, i, 1) = "/") Then
                MsgBox(Mid(nom, i + 1, Len(nom) - i))
            End If
        Next
A la fin de la boucle j'obtiens mons

Bonne continuation
quentincabo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h30   #8
Responsable .NET
 
Avatar de tomlev
 
Homme Thomas Levesque
Développeur .NET
Inscription : février 2004
Messages : 16 779
Détails du profil
Informations personnelles :
Nom : Homme Thomas Levesque
Âge : 30
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2004
Messages : 16 779
Points : 26 802
Points : 26 802
Il y a plus simple que de passer par des Split...
Code :
1
2
Dim fi As New FileInfo("D:\toto\cortex.svg")
Dim name As String = fi.Name
Ou encore plus simple:
Code :
Dim name As String = Path.GetFileName("D:\toto\cortex.svg")
(Pour les 2 méthodes, il faut importer le namespace System.IO)
__________________

Pas de questions techniques par MP ! Le forum est là pour ça...

Tutoriels : Les markup extensions en WPF - La sérialisation XML avec .NET (Aller plus loin) - Une visite guidée de WPF (traduction)
Projet : Dvp.NET, la librairie .NET open-source des membres de Developpez !

Envie de contribuer à la rubrique .NET ?
tomlev est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h40   #9
Membre actif
 
Inscription : février 2008
Messages : 227
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 227
Points : 174
Points : 174
merci Tomlev

Simple, cours, performant que demander de plus???

Et encore merci
quentincabo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h42   #10
Membre du Club
 
Inscription : mars 2008
Messages : 291
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 291
Points : 67
Points : 67
Code :
1
2
3
4
5
6
Dim ii As Integer
        For ii = 1 To Len(svgFileName)
            If (Mid(svgFileName, ii, 1) = "/") Then
             res = (Mid(svgFileName, ii + 1, Len(svgFileName) - ii))
            End If
        Next
ceci me renvoi :
res =""

ensuite j'ai essayer
Code :
1
2
Dim res As String
res = Mid(svgFileName, InStrRev(svgFileName, "/"))
il me retourne l'erreur suivante : "argument ou appel de procedure incorect"
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h45   #11
Responsable .NET
 
Avatar de tomlev
 
Homme Thomas Levesque
Développeur .NET
Inscription : février 2004
Messages : 16 779
Détails du profil
Informations personnelles :
Nom : Homme Thomas Levesque
Âge : 30
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2004
Messages : 16 779
Points : 26 802
Points : 26 802
utilise ce que j'ai indiqué 3 posts plus haut...
__________________

Pas de questions techniques par MP ! Le forum est là pour ça...

Tutoriels : Les markup extensions en WPF - La sérialisation XML avec .NET (Aller plus loin) - Une visite guidée de WPF (traduction)
Projet : Dvp.NET, la librairie .NET open-source des membres de Developpez !

Envie de contribuer à la rubrique .NET ?
tomlev est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h47   #12
Membre du Club
 
Inscription : mars 2008
Messages : 291
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 291
Points : 67
Points : 67
re,

Code :
1
2
Dim res As String
res = Path.GetFileName("svgFileName")
ceci me dit que Path n'est pas defini

merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h52   #13
Membre actif
 
Inscription : février 2008
Messages : 227
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 227
Points : 174
Points : 174
Pour répondre à ta question:
Citation:
Pour les 2 méthodes, il faut importer le namespace System.IO
J'ai réessayer avec ma procédure et j'obtiens le résultat escompté càd cortex.svg
Code :
1
2
3
4
5
6
7
8
9
 
 Dim svgfilename As String = "D:/toto/cortex.svg"
Dim ii As Integer
        For ii = 1 To Len(svgFileName)
            If (Mid(svgFileName, ii, 1) = "/") Then
             res = (Mid(svgFileName, ii + 1, Len(svgFileName) - ii))
            End If
        Next ii
msgbox(res)
quentincabo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 14h56   #14
Membre du Club
 
Inscription : mars 2008
Messages : 291
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 291
Points : 67
Points : 67
je travail sur visio, importer le namespace System.IO est ce posible ?

si oui comment faire?

merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 15h03   #15
Responsable .NET
 
Avatar de tomlev
 
Homme Thomas Levesque
Développeur .NET
Inscription : février 2004
Messages : 16 779
Détails du profil
Informations personnelles :
Nom : Homme Thomas Levesque
Âge : 30
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2004
Messages : 16 779
Points : 26 802
Points : 26 802
Tout au début de ton fichier, ajoute ça :
__________________

Pas de questions techniques par MP ! Le forum est là pour ça...

Tutoriels : Les markup extensions en WPF - La sérialisation XML avec .NET (Aller plus loin) - Une visite guidée de WPF (traduction)
Projet : Dvp.NET, la librairie .NET open-source des membres de Developpez !

Envie de contribuer à la rubrique .NET ?
tomlev est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 15h08   #16
Membre du Club
 
Inscription : mars 2008
Messages : 291
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 291
Points : 67
Points : 67
j'ai ajouté Imports System.IO au deut de mon fichier mais il me dit :

Instruction incorrecte a l'exterieur d'une procedure

est ce que cela est posible sur Visio??
merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 15h13   #17
Responsable .NET
 
Avatar de tomlev
 
Homme Thomas Levesque
Développeur .NET
Inscription : février 2004
Messages : 16 779
Détails du profil
Informations personnelles :
Nom : Homme Thomas Levesque
Âge : 30
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2004
Messages : 16 779
Points : 26 802
Points : 26 802
Laisse moi deviner... tu fais du VBA (Visual Basic pour Applications) ?
Dans ce cas tu n'es pas sûr le bon forum... ici c'est le forum VB.NET, donc les solutions qu'on te donne ne marchent qu'avec VB.NET et non avec VBA...

Confirme moi si c'est ça, je déplacerai la discussion
__________________

Pas de questions techniques par MP ! Le forum est là pour ça...

Tutoriels : Les markup extensions en WPF - La sérialisation XML avec .NET (Aller plus loin) - Une visite guidée de WPF (traduction)
Projet : Dvp.NET, la librairie .NET open-source des membres de Developpez !

Envie de contribuer à la rubrique .NET ?
tomlev est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 15h15   #18
Membre du Club
 
Inscription : mars 2008
Messages : 291
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 291
Points : 67
Points : 67
ok desolé
oui c'est bien du VBA
merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 15h24   #19
Responsable .NET
 
Avatar de tomlev
 
Homme Thomas Levesque
Développeur .NET
Inscription : février 2004
Messages : 16 779
Détails du profil
Informations personnelles :
Nom : Homme Thomas Levesque
Âge : 30
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2004
Messages : 16 779
Points : 26 802
Points : 26 802
Code VB :
1
2
3
    svgfilename = "D:/toto/cortex.svg"
    s = Mid(svgfilename, InStrRev(svgfilename, "/") + 1)
    MsgBox s

Ca devrait marcher sous VBA

Je déplace la discussion
__________________

Pas de questions techniques par MP ! Le forum est là pour ça...

Tutoriels : Les markup extensions en WPF - La sérialisation XML avec .NET (Aller plus loin) - Une visite guidée de WPF (traduction)
Projet : Dvp.NET, la librairie .NET open-source des membres de Developpez !

Envie de contribuer à la rubrique .NET ?
tomlev est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2008, 08h53   #20
Membre du Club
 
Inscription : mars 2008
Messages : 291
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 291
Points : 67
Points : 67
bonjour,

maintenant plus fort!!

je voudrai recuperer le repertoir sans le titre du fichier cad :

D:\toto\...\cortex.svg

recuperer
D:\toto\...\

merci
cortex59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h42.


 
 
 
 
Partenaires

Hébergement Web