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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Reduire une chaine de caractere en VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Reduire une chaine de caractere en VBA

n°1317559
misteroliv​ier
Posté le 03-03-2006 à 09:13:13  profilanswer
 

Bonjour,  
 
Je developpe actuellement un petit soft en VBA sous Excel, j'importe des fichiers en utilisant la fonction GetOpenFileName qui renvoi le chemin complet avec le nom de mon fichier dans une variable déclarée en Variant.  
Ca c'est bon, j'obtiens donc ma valeur sous le style c:\excel\essai.txt.  
 
Mon problème est que j'ai besoin de récupérer dans cette valeur juste le nom de mon fichier sans l'extention juste " essai ".  
 
Comment je peux faire?  
 
Merci pour vos réponses.  
Olivier

mood
Publicité
Posté le 03-03-2006 à 09:13:13  profilanswer
 

n°1317563
Profil sup​primé
Posté le 03-03-2006 à 09:20:05  answer
 

Dim xString as String
 
xString = Mid ( MonTexte, Len(MonTexte) - InStr ( StrReverse ( MonTexte), "\" )) ' là xstring = "essai.txt"
 
xString = left( MonTexte, InStr (xString, "." ) -1) ' là xString = "essai"

Message cité 1 fois
Message édité par Profil supprimé le 03-03-2006 à 09:21:25
n°1317571
misteroliv​ier
Posté le 03-03-2006 à 09:36:55  profilanswer
 


 
Bonjour,
 
Merci pour cette super info, juste une petite chose, ta première instruction me renvoi "txt" et non "essai.txt

n°1317607
Profil sup​primé
Posté le 03-03-2006 à 10:48:07  answer
 

Code :
  1. Dim xString As String
  2. Dim MonTexte As String
  3. MonTexte = "c:\excel\essai.txt"
  4. xString = Mid(MonTexte, 2 + Len(MonTexte) - InStr(StrReverse(MonTexte), "\" ))        ' là xstring = "essai.txt"
  5. xString = Left(xString, InStr(xString, "." ) - 1)  ' là xString = "essai"


Message édité par Profil supprimé le 03-03-2006 à 10:48:28
n°1317613
misteroliv​ier
Posté le 03-03-2006 à 10:55:28  profilanswer
 

:bounce:  
Merci beaucoup, ça marche

n°1317705
Lord Nelso​n
Posté le 03-03-2006 à 12:31:25  profilanswer
 

Salut,
 
Autre formulation possible avec InstrRev (non disponible avec Office 97) :
 
xString = Right(MonTexte, Len(MonTexte) - InStrRev(MonTexte, "\" ))
xString = Left(xString, InStrRev(xString, "." ) - 1)
 
A+
Horatio

n°1317735
Profil sup​primé
Posté le 03-03-2006 à 13:10:13  answer
 

Lord Nelson a écrit :

Salut,
 
Autre formulation possible avec InstrRev (non disponible avec Office 97) :
 
xString = Right(MonTexte, Len(MonTexte) - InStrRev(MonTexte, "\" ))
xString = Left(xString, InStr(xString, "." ) - 1)
 
A+
Horatio

;)  :D  

n°1317772
Lord Nelso​n
Posté le 03-03-2006 à 13:45:59  profilanswer
 

Hé Hé,  
 :non:  
MonTexte = "C:\Documents\Divers\Test.d'un.fichier.avec.des.points.xls"
xString = Right(MonTexte, Len(MonTexte) - InStrRev(MonTexte, "\" ))  
xString = Left(xString, InStrRev(xString, "." ) - 1)  
 :D  
A+
Horatio
 

n°1317837
Profil sup​primé
Posté le 03-03-2006 à 15:01:45  answer
 

Lord Nelson a écrit :

Hé Hé,  
 :non:  
MonTexte = "C:\Documents\Divers\Test.d'un.fichier.avec.des.points.xls"
xString = Right(MonTexte, Len(MonTexte) - InStrRev(MonTexte, "\" ))  
xString = Left(xString, InStrRev(xString, "." ) - 1)  
 :D  
A+
Horatio


xString = Left(xString, InStrRev(xString, "." ) - 1)  >>> "ess" et non "essai"  ;)
 
Donc c'est bien :
 
xString = Left(xString, InStr(xString, "." ) - 1) >>> "essai" (jusqu'à la lettre avant le point)


Message édité par Profil supprimé le 03-03-2006 à 15:02:48
n°1318121
Lord Nelso​n
Posté le 03-03-2006 à 19:45:43  profilanswer
 

Bizarre, bizarre,
 
xString = Left(xString, InStrRev(xString, "." ) - 1)
me donne bien essai pas ess  :non:  
 
à suivre...
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Reduire une chaine de caractere en VBA

 

Sujets relatifs
[javascript] Impossible de réduire la taille d'un popupVBA - ACCESS Fichier texte de plus de 20 000 lignes
[VBA] Compatibilité Office 10 & 11Compter le nombre de caractère d'une ligne d'un fichier
déclaration chaine de caractères ???Identifier le type d'un caractere (majuscule, minuscule; nombre...)
Problème de n° d'index des feuilles Excel créées en VBA[Perl] Remplacement et chaine de texte
Programmation VBA combobox[resolu]découper une chaine
Plus de sujets relatifs à : Reduire une chaine de caractere en VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR