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

XL 2010 tronquer chaine de caractères

  • Initiateur de la discussion Initiateur de la discussion Mgn_91
  • 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 !

Mgn_91

XLDnaute Nouveau
Bonjour,

J'ai des cellules qui contiennent noms de documents (ex: abcdef.pdf, blablabla.ppt, lalalala.pptx). Je souhaite grâce à une formule ne garder que les noms des documents sans les extensions.

Je n'y parviens pas avec les formules DROITE ni GAUCHE. Quelqu'un peut-il éclairer ma lanterne ?

Merci pour votre aide.
 
re,

comme quoi un fichier exemple avec les différentes option de valeur est toujours le bienvenue dans les demandes mais bon un essai avec une formule un peu plus complexe qui va toujours aller sur le dernier point

Regardes et dis nous

Cordialement
 

Pièces jointes


Merci pour la formule.

Malheureusement mon fichier est un fichier xls qui contient des macro. J'ai donc le message suivant qui apparaît " Impossible d'entrer la formule spécifiée car elle utilise plus de niveaux d'imbrication que n'autorise le format de fichier actuel."
 
En scrutant mon fichier je constate que je dois à nouveau "nettoyer" le contenu des cellules.

En effet en plus de tronquer la fin des chaines de caractères (les extensions) je souhaite également tronquer le début de la chaine de caractère. C'est à dire effacer les caractères suivant "..\......\" pour ne garder que le nom du fichier.

Exemple : la celulle contient "..\123\abcd_edfgijklm_nopkrst.ppt" Je souhaite uniquement garder " abcd_edfgijklm_nopkrst " et donc supprimer "..\123\" et ".ppt"

Merci encore une fois.
 

Pièces jointes

Bonsoir le Forum,

Un découpage astucieux le code ci-dessous :

Sub test()

For i = 1 To 9
Cells(i, 3) = Split(Split(Cells(i, 1), "\")(UBound(Split(Cells(i, 1), "\"))), ".")(UBound(Split(Split(Cells(i, 1), "\")(UBound(Split(Cells(i, 1), "\"))), ".")) - 1)
Next i

End Sub

en rapport avec votre dernier fichier Excel les valeur se copie en colonne C en face des lignes (sur la base des valeur Colonne A ligne 1 à 9
 

Merci,

Ce code fonctionne parfaitement. Dans le cas où la liste n'est pas limitée à 9 lignes en colonne A mais est variable, comment dois-je procéder ? J'imagine que "For i = 1 To 9" doit être remplacé par une autre valeur ?
 
J'ai finalement trouvé la solution en identifiant la dernière ligne de la colonne.

De quelle manière ce code doit-il être modifié si le nom du document comporte plusieurs points. Exemple sur le ligne 10,11,12 du document en pièce jointe.

Merci pour votre aide
 

Pièces jointes

Bonsoir,

Voici le code associer au dernier fichier excel que vous avez posté :

VB:
Sub test()
For i = 1 To 12
' decoupage
Var = Split(Cells(i, 1), "\")
' resultat
Var = Var(UBound(Var))
' test sur le nombre de .
Var = Split(Var, ".")
If UBound(Var) < 2 Then
    Var = Var(LBound(Var))
    Cells(i, 3) = Var
Else
' pour tous les points
    For j = 0 To UBound(Var) - 1
        If j = 0 Then
            Nouv = Var(j)
            Cells(i, 3) = Nouv
        Else
            Nouv = Nouv & "." & Var(j)
            Cells(i, 3) = Nouv
        End If
    Next j
    Nouv = Empty
End If
Next i
End Sub
 
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…