Comment supprimer le chemin et garder que le nom [VB] - Programmation
Marsh Posté le 15-08-2001 à 14:55:47
Vlà la soluce :
Utilise la fonction Split :
a = Split("C:\Windows\Bureau\MonDocument.xls","\" )
b=a(Ubound(a))
alors, tu auras b="MonDocument.xls"
Vlà !
a+
Marsh Posté le 15-08-2001 à 15:18:47
Trop simpa Merci
Mais je l'ai essayer et il connait pas UBound
Pourkoi? il me fait une erreur de compilation
il manque p etre une bibliotheque?
Je ne sais pas
Marsh Posté le 15-08-2001 à 16:17:13
on peut faire aussi :
i=1
do
tt=right(temp,i)
loop while(mid(right(temp,i),1,1)<>"\" )
tt=mid(tt,1,len(tt))
' tt contient la variable temp débarassée du chemin
Marsh Posté le 15-08-2001 à 18:57:38
ok merci bcp je le test
Marsh Posté le 16-08-2001 à 07:57:46
Ou encore comme ca, sous forme de fonction :
Function GetFileName(ByVal Filename As String) As String
Dim L As Integer, J As Integer
L = Len(Filename)
For J = L To 1 Step -1
If Mid(Filename, J, 1) = "\" Then Exit For
Next J
GetFileName = Mid(Filename, J + 1)
End Function
Marsh Posté le 16-08-2001 à 08:08:32
je vous remercie tous je test tt ca de suite
Marsh Posté le 16-08-2001 à 08:47:37
La methode de KarLKoX marche tres bien
merci
La methode de nur fait une boucle infinie (while je sais pas pk) mais si je ve garder
Bureau\MonDocument.xls c'est possible ca?
Marsh Posté le 16-08-2001 à 09:12:11
en fait mon probleme c'est que je dois executer une macro
qui se trouve ds un fichier Excel mais pas au meme niveau que le fichier duquel elle est lancee
j'utilise ca : Application.Run MonDocument + "!load"
avec MonDocument le fichier qui est ds un repertoire project
ds ce fichier il y a la Macro load
avec cette ligne g mis MonDocument = "project\" + MonDocument
Mais il ve pas l'executer Pourquoi?
Merci pour votre aide
Marsh Posté le 16-08-2001 à 10:37:29
desole j'ai juste oublie de rajouter la ligne "i=i+1" dans la boucle
temp="c:\documets\toto.xls"
i=1
do
tt=right(temp,i)
I=I+1 'oublie
loop while(mid(right(temp,i),1,1)<>"\" )
tt=mid(tt,1,len(tt))
msgbox(tt)
Marsh Posté le 16-08-2001 à 10:48:53
Pour la réponse de ceyquem, c'est pas plutot la fonction Split qui n'est pas référencée (elle apparait avec vb6, donc Office2000)
Auquel cas tu peux programmer la fonction Split dont voici le code vb
Public Function Split(ByVal sIn As String, Optional sDelim As _
String, Optional nLimit As Long = -1, Optional bCompare As _
VbCompareMethod = vbBinaryCompare) As Variant
Dim sRead As String, sOut() As String, nC As Integer
If sDelim = "" Then
Split = sIn
End If
sRead = ReadUntil(sIn, sDelim, bCompare)
Do
ReDim Preserve sOut(nC)
sOut(nC) = sRead
nC = nC + 1
If nLimit <> -1 And nC >= nLimit Then Exit Do
sRead = ReadUntil(sIn, sDelim)
Loop While sRead <> ""
ReDim Preserve sOut(nC)
sOut(nC) = sIn
Split = sOut
End Function
Je rajoute la fonction qui fait le contraire, à savoir join()
Public Function Join(source() As String, Optional _
sDelim As String = " " ) As String
Dim sOut As String, iC As Integer
On Error GoTo errh:
For iC = LBound(source) To UBound(source) - 1
sOut = sOut & source(iC) & sDelim
Next
sOut = sOut & source(iC)
Join = sOut
Exit Function
errh:
Err.Raise Err.Number
End Function
Marsh Posté le 16-08-2001 à 11:09:43
pour garder "bureau\toto\xls" :
temp="c:\bureau\toto.xls"
i=1
do
tt=right(temp,i)
I=I+1 'oublie
loop while(mid(right(temp,i),1,1)<>"b" )
tt=right(temp,i+1)
tt=mid(tt,2,len(tt))
msgbox(tt)
MAIS:
pour lancer la macro dans un autre chemin il n'y a pas besoin
de garder le chemin puisque les 2 classeurs sonts ouverts:
application.run(nom du fichier!load)
il faut peut etre faire:
si tt=toto ('on suprime .xls)
tt=tt&"!" & nom de la macro
pour supprimer .xls :tt=mid(tt,1,len(tt)-4)aulieu de: tt=mid(tt,1,len(tt)-1) (dans la premiere version sans bureau)
c'est peut etre un peu confus ?
Marsh Posté le 16-08-2001 à 11:40:53
Merci a tout le monde
je vais voie si je trouve mon bonheur la dedans
Je vous tiens au courrant
Merci
hum....le forum rame a max chez moi c normal?
Marsh Posté le 15-08-2001 à 14:09:28
En VB j'aimerais par exemple supprimer le chemin lorsqu il est stocker ds une variable
Dim temp As String
si par exemple ds temp il y a C:\Windows\Bureau\MonDocument.xls
j'aimerais recuperer MomDocument.xls sans le chemin
Commemt om fais ca?
Y a a til une fomction "concatenation" ou qqch comme ca?
---------------
Une ptite aide en VB et jVBien