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 :

Séparer le contenu d'une cellule en plusieurs lignes [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Points : 111
    Points
    111
    Par défaut Séparer le contenu d'une cellule en plusieurs lignes
    Salut a tous,

    j'aimerais savoir comment faire a l'aide d'une macro pour separer le contenu d'une cellule dans une colonne contenant des virgules en plusieurs lignes.

    Exemple :
    Colonne A |Colonne B
    Animal | Lapin, Lion, Chat, Chien
    Voiture | Audi, BMW
    Fruits | Pomme

    Resultats:

    Colonne A | Colonne B
    Animal | Lapin
    Animal | Lion
    Animal | Chat
    Animal | Chien
    Voiture | Audi
    Voiture | BMW
    Fruits | Pomme

    Merci de votre aide d'avance

  2. #2
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Voici un code qui fait ce que tu veux. J'ai essayé de le commenter pour que tu puisses l'adapter à ton problème précis.

    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
    Option Explicit
     
    Public Sub SeparationEnLignes()
        Dim feuilleSource As Worksheet
        Dim feuilleCible As Worksheet
        Dim iSource, iCible, i As Integer
        Dim currentA, currentB As String
        Dim currentSplit() As String
     
        Set feuilleSource = Worksheets("Feuil1") 'A modifier, la feuille contenant les données originales
        Set feuilleCible = Worksheets("Feuil2") 'A modifier, la feuille où l'on veut le résultat
     
        'Initialisation des compteurs de lignes
        iSource = 1
        iCible = 1
     
        Do While feuilleSource.Cells(iSource, "A").Value <> "" 'Tant qu'il y a qq chose en colonne A
            currentA = feuilleSource.Cells(iSource, "A").Value
            currentB = feuilleSource.Cells(iSource, "B").Value
     
            'On décompose la chaine par les virgules
            currentSplit = Split(currentB, ",")
     
            'Pour chaque élément, on l'écrit dans la feuille cible
            For i = 0 To UBound(currentSplit)
                feuilleCible.Cells(iCible, "A").Value = currentA
                feuilleCible.Cells(iCible, "B").Value = LTrim(currentSplit(i)) 'En enlevant les espaces à gauche
                iCible = iCible + 1
            Next i
     
            iSource = iSource + 1
        Loop
    End Sub

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Points : 111
    Points
    111
    Par défaut
    Merci enormement ZebreLoup.. Je suppose que si je souhaite les separer dans differentes colonnes au lieu des differentes lignes, ce code est adaptable ? Je vais essayer cela.

    Merci encore

  4. #4
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Si tu veux mettre ça en colonne, il y aura encore plus simple, la fonction de conversion d'Excel (sous 2003 : Données -> Convertir...) ou son équivalent vba TextToColumns

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Points : 111
    Points
    111
    Par défaut
    Merci enormement

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

Discussions similaires

  1. Répartir le contenu d'une cellule sur plusieurs lignes
    Par Sandrineboubou dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/02/2019, 09h45
  2. Séparer le contenu d'une cellule en plusieurs lignes
    Par CrasherSEP dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/06/2014, 13h32
  3. [XL-2003] Répartir le contenu d'une cellule sur plusieurs lignes
    Par Leehan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/10/2012, 15h06
  4. [Toutes versions] séparer le contenu d'une cellule a partir d'un terme spécifique
    Par thirdeye dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 16/09/2010, 18h00
  5. Réponses: 4
    Dernier message: 22/01/2008, 16h59

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