Supprimer les derniers caractères d'une chaîn
onra
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'utilise un code pour lire le nom d'un classeur excel afin de le modifier. Le code est:
Dim CheminOS, NomOS As String
CheminOS = ActiveWorkbook.Path
NomOS = ActiveWorkbook.Name
Sheets("OS").SaveAs CheminOS & "\" & ActiveWorkbook.Name & IndiceOS
Le ActiveWorkbook.Name me donne bien le nom du fichier mais avec l'extension:
du style "nom.xls"
donc quand je rajoute IndiceOS (par ex: a)
J'obtiens : "nom.xlsa".
Il faudrait donc que je puisse virer les trois derniers caractères afin de rejouter l'indice "a".
Merci d'avance
J'utilise un code pour lire le nom d'un classeur excel afin de le modifier. Le code est:
Dim CheminOS, NomOS As String
CheminOS = ActiveWorkbook.Path
NomOS = ActiveWorkbook.Name
Sheets("OS").SaveAs CheminOS & "\" & ActiveWorkbook.Name & IndiceOS
Le ActiveWorkbook.Name me donne bien le nom du fichier mais avec l'extension:
du style "nom.xls"
donc quand je rajoute IndiceOS (par ex: a)
J'obtiens : "nom.xlsa".
Il faudrait donc que je puisse virer les trois derniers caractères afin de rejouter l'indice "a".
Merci d'avance
A voir également:
- Deux derniers caractères d'un nom
- Caractères spéciaux - Guide
- Comment faire deux colonnes sur word - Guide
- Nombre de jours entre deux dates excel - Guide
- Caracteres speciaux - Guide
- Deux ecran pc - Guide
7 réponses
A....dsl, je ne connait pas ce langage. Je pensé que c'était du C++ auquel j'ais une solution.
Bon courage à vous.
Bon courage à vous.
Bonjour,
quelque chose comme :
Sheets("OS").SaveAs CheminOS & "\" & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & IndiceOS
quelque chose comme :
Sheets("OS").SaveAs CheminOS & "\" & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & IndiceOS
En C++ il existe une fonction qui permet de selectionner le debut d'une chaine jusqu'a un caractere precis:
m_TypeFich = Str.substr(Str.find_first_of("."))
m_TypeFich contiendra nom de nom.txt par exemple
m_TypeFich = Str.substr(Str.last_first_of("."))
m_TypeFich contiendra txt de nom.txt par exemple
m_TypeFich = Str.substr(Str.find_first_of("."))
m_TypeFich contiendra nom de nom.txt par exemple
m_TypeFich = Str.substr(Str.last_first_of("."))
m_TypeFich contiendra txt de nom.txt par exemple
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
et en vba ça existe aussi
ce qui est trompeur c'est que activeWorkBook.name contient "Nom.xls"
mais c'est variable string
Dim CheminOS, NomOS As String
CheminOS = ActiveWorkbook.Path
NomOS = ActiveWorkbook.Name
Sheets("OS").SaveAs CheminOS & "\" & ActiveWorkbook.Name & IndiceOS
donc on peut écrire
NomOS = Left(NomOS, Len(NomOS) - 4) & indiceOSs & ".xls"
explication :
left(lit les charactère de gauche à droite sur la longueur donnée)
je lui donne la longueur total -4 il faut aussi enlever le point
puis ajouter l'indice et le ".xls"
c'est presque comme le c++
ce qui est trompeur c'est que activeWorkBook.name contient "Nom.xls"
mais c'est variable string
Dim CheminOS, NomOS As String
CheminOS = ActiveWorkbook.Path
NomOS = ActiveWorkbook.Name
Sheets("OS").SaveAs CheminOS & "\" & ActiveWorkbook.Name & IndiceOS
donc on peut écrire
NomOS = Left(NomOS, Len(NomOS) - 4) & indiceOSs & ".xls"
explication :
left(lit les charactère de gauche à droite sur la longueur donnée)
je lui donne la longueur total -4 il faut aussi enlever le point
puis ajouter l'indice et le ".xls"
c'est presque comme le c++
Salut,
Ma réponse concerne java comme tu es aussi demandeur...
Tu as "nom.xlsa" et tu voudrais obtenir quoi?
Parceque si tu veux supprimer les 3 derniers caractères tu obtiendras "nom.x" et je doute que ce soit ce que tu veux.
Supposons que tu veux obtenir "noma" on peut faire:
Mais ce n'est peut-être pas non plus ce que tu veux.
Et en plus on n'a pas forcément toujours "unNom.xls" avant la lettre auquel cas on ne pourait pas mettre le type ".xls" en dur.
Alors dis moi ce que tu veux obtenir exactement...
Cordialement,
Dan
Ma réponse concerne java comme tu es aussi demandeur...
Tu as "nom.xlsa" et tu voudrais obtenir quoi?
Parceque si tu veux supprimer les 3 derniers caractères tu obtiendras "nom.x" et je doute que ce soit ce que tu veux.
Supposons que tu veux obtenir "noma" on peut faire:
String monString = "nom.xlsa";
String monString2 = monString.replaceAll(".xls", "");
System.out.println("\n\nmonString = " +"\"" + monString + "\"");
System.out.println("monString2 = " +"\"" + monString2 + "\"");
Mais ce n'est peut-être pas non plus ce que tu veux.
Et en plus on n'a pas forcément toujours "unNom.xls" avant la lettre auquel cas on ne pourait pas mettre le type ".xls" en dur.
Alors dis moi ce que tu veux obtenir exactement...
Cordialement,
Dan
j'ai oublié de préciser le principal.
Je code en VBA sous Excel.