Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3310 connectés 

 


Dernière réponse
Sujet : [VB] Comment supprimer le chemin et garder que le nom
navarro Merci a tout le monde  
je vais voie si je trouve mon bonheur la dedans  
Je vous tiens au courrant
Merci  :jap:  
 
hum....le forum rame a max chez moi c normal?

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
navarro Merci a tout le monde  
je vais voie si je trouve mon bonheur la dedans  
Je vous tiens au courrant
Merci  :jap:  
 
hum....le forum rame a max chez moi c normal?
nur 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 ?
Sylderon 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
nur 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)
navarro 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
navarro 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?
navarro je vous remercie tous  je test tt ca de suite
karlkox 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
navarro ok merci bcp  je le test
nur 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
navarro 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
ceyquem 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+
navarro 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?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)