PB:navigation et extraction d'une partie d'une cellule

davidouz Messages postés 24 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 28 juin 2004 - 7 juin 2004 à 08:48
cs_BadNews Messages postés 98 Date d'inscription samedi 30 novembre 2002 Statut Membre Dernière intervention 10 septembre 2007 - 8 juin 2004 à 07:46
davidouz
LUT, je récupère une adresse complète dans une cellule ex: "C:...\...\toto.xls" et j'aimerai bien récupérer "toto.xls", c'est à dire l'adresse excel simplement. Je pense qu'il faut le faire avec une boucle qui va chercher le dernier "" mais je n'arrive pas. PLEASE HELP ME.

5 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
7 juin 2004 à 08:56
Dim chaine As string
Dim tablo() As string

chaine = "c:\rep1\rep2\rep3\toto.xls"
tablo = Split(chaine,"",,vbtextcompare)

MsgBox tablo(Ubound(tablo))

Manu
0
cs_BadNews Messages postés 98 Date d'inscription samedi 30 novembre 2002 Statut Membre Dernière intervention 10 septembre 2007 1
7 juin 2004 à 09:15
Y'a surement plus simple, mais moi je fais comme ça:

Dim CheminComplet, excel As string
CheminComplet = "C:...\...\toto.xls"
For i = 1 To Len(CheminComplet)
If Left(Right(CheminComplet, i), 1) = "" Then GoTo Find
Next i
Find:
excel = Right(CheminComplet, i - 1)

Dans ce cet exemple, la variable excel te retourneras le mot "toto.xls"

Mais comme je te dis, il y a surement un façon plus simple de le faire. J'espère t'avoir aidé pour l'instant =) .

@+

BadNews
0
cs_BadNews Messages postés 98 Date d'inscription samedi 30 novembre 2002 Statut Membre Dernière intervention 10 septembre 2007 1
7 juin 2004 à 09:16
oops, j'ai pas été assé rapide ... :)
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
7 juin 2004 à 11:27
lol
Et ton code aura sans doute aussi du mal, au niveau de la rapidité !

Deux p'tites notes pour toi :

For i = 1 To Len(CheminComplet)

A chaque passage dans la boucle, il évalue
Len(CheminComplet)

Comme tu es sûr de ne pas modifier la chaine, il est préférable d'écrire :

x = Len(cheminComplet)
For i=1 To x

De plus, ta syntaxe Left(Right(CheminComplet, i), 1) = ""
peut se résumer par Mid(CheminComplet,i,1) si tu fais varier i de Len(CheminComplet) à 1 Step -1

Bonne prog'

Manu
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_BadNews Messages postés 98 Date d'inscription samedi 30 novembre 2002 Statut Membre Dernière intervention 10 septembre 2007 1
8 juin 2004 à 07:46
Merci du conseil! :)

Comme tu peux le constater, je ne suis pas un programmer de haut niveau et la plupart du temp, j'apprends seul. Les erreurs que j'ai fait sont des erreurs d'inattention. Pour ce qui est du Mid(), je le connaissais mais je ne savais pas trop l'utiliser. Maintenant oui :big)

...

J'ai une question pour toi qui n'a aucun raport avec le reste.
je l'ai posté sur le forum aujourd'hui; La voici:

Comme dois-je faire pour changer la police d'écriture du blocnote avant sont ouverture, ou pendant?

Si tu as une idée, merci de bien vouloir m'aider. :approve)

Merci encore!
0
Rejoignez-nous