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 :

Splitter un chemin contenue dans une variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Stagiaire
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Par défaut Splitter un chemin contenue dans une variable
    Bonjour voila je vous explique mon problème , je récupère les donné d'une cellule dans une variable et les données que je récupère dans ma colonne A sont des chemin et j'aimerais avoir une fonction comme par exemple un Split ou autre chose pour séparer ce chemin a chaque "\"
    Je vous transmet aussi mon fichier excel pour que vous voyez la colonne A

    Merci =)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    repertoire = Cells(i, 1) 'Je récupère la valeur de A comme ceci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Bonjour,

    Voici une fonction codée à la va vite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Option Explicit
    Function Scinder(Chaine As String, Separateur As String) As String()
    Dim i As Integer
    Dim Word_size As Integer
    Dim Chaine_len As Integer
    Dim Temp() As String
    Chaine_len = Len(Chaine)
    ReDim Temp(0)
     
    Word_size = 1
    For i = 1 To Chaine_len
        If Mid(Chaine, i, 1) = Separateur Then
            Temp(UBound(Temp)) = Mid(Chaine, i - Word_size + 1, Word_size - 1)
            ReDim Preserve Temp(UBound(Temp) + 1)
            Word_size = 1
        ElseIf i = Chaine_len Then
            Temp(UBound(Temp)) = Mid(Chaine, i - Word_size + 1, Word_size)
        Else
            Word_size = Word_size + 1
        End If
    Next i
    Scinder = Temp
    End Function
    En appelant la fonction avec la chaine (la cellule à "split") et le séparateur ("\") alors tu récupères un tableau de type "string" avec tous les éléments séparés par le "\".

    NB : Sinon, sans VBA, tu as Données>Convertir>Délimité>Autre (Mettre \ ) qui te permet de séparer ta colonne en plusieurs en utilisant le " \ " comme séparateur.

    Cordialement,

    Un Poulpe

  3. #3
    Invité
    Invité(e)
    Par défaut Bonjour,test ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim R As Range
    Dim i As Long
    Dim repertoire
     
    Set R = Sheets("Feuille1").Range("A3").CurrentRegion
    For i = 2 To R.Rows.Count
        repertoire = Split(Trim("" & R(i, 1)), "\")
    Next
    End Sub
    Dernière modification par AlainTech ; 06/07/2014 à 10h16. Motif: Suppression de la citation inutile

  4. #4
    Membre averti
    Homme Profil pro
    Stagiaire
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Par défaut
    Merci pour ta réponse Robert mais comment puis-je vérifier si ma chaîne de caractère contenue dans ma variable à bien était séparer car un MsgBox me de déclare une incompatibilité de type ... :s

    Merci d'avance =)

  5. #5
    Invité
    Invité(e)
    Par défaut
    c'est un tableau!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
    Dim R As Range
    Dim i As Long
    Dim repertoire
     
    Set R = Sheets("Feuille1").Range("A3").CurrentRegion
    For i = 2 To R.Rows.Count
        repertoire = Split(Trim("" & R(i, 1)), "\") 'tableau de répertoires
        For i2 = 0 To UBound(repertoire) 'Scan le tableau
            MsgBox repertoire(i2)
        Next
    Next
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Stagiaire
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Par défaut
    Merci de ton complément de réponse, maintenant j'aimerais savoir si il est possible de séparer de la même façon ma chaine mais ce que je voudrai c'est delete cette partie "14.5.1 - 20140404" enfin les chiffre d'avant je voudrai qu'une fois que cette partie de la macro exécuter quand je lance une MsgBox ce la m'affiche seulement par exemple : "ASYNC" ensuite "CodaEU_To_Xerox_Finance_Referential_Data" etc...

    Merci encore pour ta réponse Robert =)

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Le code
    For i2 = 0 To UBound(repertoire) 'Scan le tableau
    MsgBox repertoire(i2)
    Next
    Next
    te permet de boucler sur les éléments du tableau.

    Si tu souhaites ignorer le début, remplace le i2 = 0 par i2 = 1

    Poulpe

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

Discussions similaires

  1. Récupérer un chemin-cible contenu dans une variable
    Par Myrrdin dans le forum ActionScript 1 & ActionScript 2
    Réponses: 14
    Dernier message: 04/07/2010, 12h24
  2. [PHP 4] Affichage d'une image avec chemin contenu dans une variable
    Par terrysharp dans le forum Langage
    Réponses: 1
    Dernier message: 16/07/2009, 14h54
  3. Réponses: 0
    Dernier message: 03/11/2008, 12h40
  4. Condition contenu dans une variable string
    Par tomo0013 dans le forum Access
    Réponses: 6
    Dernier message: 01/12/2005, 14h15
  5. Réponses: 7
    Dernier message: 25/10/2005, 15h19

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