Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

modifier un String

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...
 
J

Jean-Marie

Guest
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
 
D

Delors

Guest
s´il te plaît Jean Marie, peux-tu le faire pour moi et me présenter le code de VBA? Tout dans mon ordinateur est en langue allemande...
ce serait très gentil si je pouvais obtenir le code VBA.
 
A

arnaud

Guest
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.
 
D

Delors

Guest
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
 
J

Jean-Marie

Guest
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
 

Discussions similaires

  • Question
Microsoft 365 Macro VBA
Réponses
1
Affichages
344
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…