IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Suppression de caractères dans une chaine [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Par défaut Suppression de caractères dans une chaine
    bonjour
    je suis débutant j 'ai une chaîne de type a="d:\a\bb\ccc" et je souhaiterai récupérer dans un script VBA les derniers caractères après le dernier "\" c'est à dire "ccc" en sachant que cette chaîne peut varier en longueur et avoir plusieurs "\".
    J'ai utilisé la fonction instr mais elle me donne la première position à partir de la gauche de la chaîne.
    Y a t-il un solution pour résoudre cette situation sans développer une usine à gaz ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub essai()
     
    Dim chaine As String
    Dim message As long
    chaine = "d:\a\bb\ccc"
    message = InStr(1, chaine, "\")
    MsgBox (message)
     
    End Sub
    Merci pour votre aide

  2. #2
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub essai()
     
    Dim chaine As String
    Dim message As long, cible
    chaine = "d:\a\bb\ccc"
    cible=Split(chaine,"\")
    message = cible(Ubound(cible)
    MsgBox (message)
     
    End Sub

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    autre possibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub essai()
        Dim chaine As String
        Dim message As String
        chaine = "d:\a\bb\ccc"
        message = Mid(chaine, InStrRev(chaine, "\") + 1)
        MsgBox (message)
    End Sub
    eric

  4. #4
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Par défaut solution trouvée
    merci à tous pour cette résolution rapide

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468

  6. #6
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut re
    Citation Envoyé par Marc-L Voir le message
    Salut!
    j'ai cru comprendre qu'il s'agissait un nom de sous dossier dans une imbrication pouvant être variable.

    La solution InstrRev est immédiatement la première approche qui vient aux habitués des fonctions chaînes.
    Dans le contexte actuel, un risque de résultats inattendus avec plusieurs "\" .
    InstrRev renvoi l'opposé de la position d'une chaîne par rapport à la fin.
    Je me suis parfois posé la question sur l'utilité de cette fonction équivalent à Len(str) - Instr(1, str, cstr) si ce n'est le raccourcissement de code.

    Sinon, Sur le lien, la fonction Instr appliqué à StrReverse sur la chaîne permet de déduire la position et le nombre de caractères à fournir à la fonction Mid. Une alternative à Split.
    Cela dit, les questionneurs sont généralement plus fainéants à chercher par eux même, (malgré le nombre de cas innombrables s'appliquant à leurs besoins) que les contributeurs.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. suppression caractère dans une chaine
    Par courson dans le forum Débuter
    Réponses: 1
    Dernier message: 03/04/2009, 20h36
  2. Suppression de caractères dans une chaine
    Par mouhammed dans le forum C
    Réponses: 19
    Dernier message: 01/11/2008, 17h34
  3. Suppression de certains caractères dans une chaine
    Par Tchupacabra dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2007, 12h08
  4. Réponses: 3
    Dernier message: 31/01/2005, 23h18
  5. Réponses: 8
    Dernier message: 08/06/2004, 01h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo