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 :

Récupérer chaines caractères séparées par des espaces


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 20
    Points
    20
    Par défaut Récupérer chaines caractères séparées par des espaces
    Bonjours à tous,

    J'aimerais pouvoir récupérer les différentes chaines de caractères séparées par des espaces contenues dans une cellule de ma feuille.

    Exemple : j'ai dans ma cellule "A1" : "Ceci est un test"
    je voudrais pouvoir récupérer comme je veux les mots: "Ceci", "est", "un" et "test".

    Je ne sais pas si il existe une fonction sous VBA qui est capable de faire ça.
    Si quelqu'un peut m'aider.
    Merci d'avance.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    La fonction Split (à lire, avec ses exemples, dans ton aide en ligne)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut nbcar
    voici un fichier explicatif
    NBCAR gestion d'espace.xls

    cordialement

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    voici une fonction VBA évoluée qui permet de découper une chaine
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Public Function DecoupeChaine(ByVal chaine As Variant, _
                           ByVal sep As String, _
                           ByVal numero As Variant, _
                           Optional ByVal blnValue As Boolean = True, _
                           Optional ByVal blnRecursive As Boolean = False) As String
    Dim t() As String
    Dim i As Integer
     
    If Not blnRecursive Then
        If IsNumeric(numero) Then
            If blnValue Then
                If numero <> -1 Then
                    DecoupeChaine = Split(Trim(chaine), sep)(numero - 1)
                Else
                    DecoupeChaine = Split(Trim(chaine), sep)(UBound(Split(Trim(chaine), sep)))
                End If
            Else
                DecoupeChaine = Split(Range(chaine.Address).FormulaLocal, sep)(numero - 1)
            End If
        ElseIf Right(numero, 2) = "--" Then
            numero = CInt(Left(numero, Len(numero) - 2))
            t = Split(chaine, sep)
            For i = numero - 1 To UBound(t)
                DecoupeChaine = DecoupeChaine & sep & t(i)
            Next i
            DecoupeChaine = Mid(DecoupeChaine, Len(sep) + 1)
        ElseIf Left(numero, 2) = "--" Then
            numero = CInt(Right(numero, Len(numero) - 2))
            t = Split(chaine, sep)
            For i = 0 To numero - 1
                DecoupeChaine = DecoupeChaine & sep & t(i)
            Next i
            DecoupeChaine = Mid(DecoupeChaine, Len(sep) + 1)
        End If
    Else
        DecoupeChaine = Split(chaine, sep)(numero - 1)
    End If
     
     
    End Function
    sur ta chaine exemple, ça donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =decoupechaine(A1;" ";"2")
    résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =decoupechaine(A1;" ";"2--")
    résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =decoupechaine(A1;" ";"--2")
    résultat

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Merci à tous pour vos réponse.
    J'ai plus qu'a regarder tous ça de plus près.

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/02/2015, 16h02
  2. [AC-2002] Récupérer chaîne de caractères séparées par virgules
    Par benziz dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 31/12/2010, 11h06
  3. Découper une chaine séparée par des séparateur ;
    Par d.tellier dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 23/12/2010, 19h21
  4. Découper une chaine séparée par des ; SQL SERVER 2005 express
    Par DESPREZ dans le forum Développement
    Réponses: 2
    Dernier message: 06/11/2008, 11h09
  5. Champs complété par des espaces
    Par DeitY dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 23/06/2005, 16h07

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