• Initiateur de la discussion Initiateur de la discussion Delors
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Delors

Guest
j´ai un problème urgent: j´aimerai à partir d´une macro, introduire les crochets dans cette phrase: "C:\AideUrgent\MerciDavance\Delors.xls"
Telle se présentera la phrase après exécution de macro:
"C:\AideUrgent\MerciDavance\[Delors.xls]".
Il faut surtout supposer que j´ignore la longueur de ce String(la macro devrai être aplliquée à de dizaines de fichiers de longueurs variables) et que ce String se trouve dans la cellule "A1" de ma feuille excel.
Comment faire???
Pardon aidez moi...
 
Bonjour Delors

Pour écrire la fonction en VBA, pour moi ce serait trop long. La voici dans en formule feuille de calcul. Gère la longueur de la chaîne, et le nombre de "\".

Voici une formule qui permet de faire la transformation :
=STXT(A1;1;CHERCHE("£";SUBSTITUE(A1;"\";"£";NBCAR(B8)-NBCAR(SUBSTITUE(A1;"\";"")))))&"["&STXT(A1;CHERCHE("£";SUBSTITUE(A1;"\";"£";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"\";""))))+1;NBCAR(A1))&"]"

Fait un enregistrer de macro et colle cette formule, pour l'avoir dans le VBA.

Bonne soirée, heu! bonne journée.

@+Jean-Marie
 
avec une fonction du style


dim monstring as string
dim i as integer
monstring = "c:\toto\titi\tutu.xls"
monstring = monstring & "]"
i = len(monstring)

do while mid (monstring,i,1) <> Chr(92)
i = i-1
loop

monstring = left(monstring,i) & "[" & right (monstring,len(monstring)-i)





g pas tester donc je peut pas t'assuré que ça marche du premier coup. a toi d'adapter.
 
Merci beaucoup Arnaud. Tu ne sais pas combien je suis content de savoir comment commencer. Je n´ai pas encore testé ce code, mais j´aimerai savoir si à la dernière ligne ce n´ai pas plutôt:

monstring = left(monstring, len(monstring)-i) & "[" & right(monstring,i) ?

merci beaucoup pour ta réponse.


Delors
 
Re...

Dans ma formule de feuille de calcul, il y a une erreur, il faut remplacer le B8 par A1. De plus après différents essais, cette fonction peut être réduite =SUBSTITUE(A1;"\";"\[";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"\";"")))&"]"

Et la voici en code VBA :

Sub ChangeString()

Range("A1").Value = Application.Evaluate("=SUBSTITUTE(A1,""\"",""\["",LEN(A1)-LEN(SUBSTITUTE(A1,""\"","""")))&""]""")
End Sub

Bonne journée

@+Jean-Marie
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
740
Réponses
2
Affichages
4 K
Retour