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 :

génération de lignes en fonction d'une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2019
    Messages : 16
    Par défaut génération de lignes en fonction d'une cellule
    Bonjour à tous,
    J'ai un tableau excel avec 5 colonnes. (exp_depart.xlsx)
    Dans la colonne "PHOTO" j'ai des immatriculations séparés par un ";"

    J'ai besoin de générer autant de lignes que d'immatriculations en recopiant les champs de la ligne d'origine dans chaque ligne générée et avec une seule immatriculation (exp_reultats.xlsx)
    Est-ce que quelqu'un pourrait m'aider pour la formule ?
    Merci d'avance
    Alice

    exp_gener_lignes.xlsx

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonsoir, n'étant pas un grand connaisseur des formules, voici une solution vba:

    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
    Sub SplitNoms()
        Dim depart As Worksheet
        Dim resultat As Worksheet
        Dim lastRow As Long
        Dim i As Long, j As Long
        Dim noms() As String
     
        Set depart = ThisWorkbook.Sheets("exp_depart")
        Set resultat = ThisWorkbook.Sheets("exp_resultats")
     
        lastRow = depart.Cells(Rows.Count, 1).End(xlUp).Row
     
        Application.ScreenUpdating = False
     
        For i = 2 To lastRow
            noms = Split(depart.Cells(i, 5).Value, " ; ")
            For j = LBound(noms) To UBound(noms)
                resultat.Cells(resultat.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Resize(1, 4).Value = depart.Cells(i, 1).Resize(1, 4).Value
                resultat.Cells(resultat.Cells(Rows.Count, 1).End(xlUp).Row, 5).Value = noms(j)
            Next j
        Next i
    End Sub

  3. #3
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour
    En quelques clics via PowerQuery
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let
        Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
        #"Type modifié" = Table.TransformColumnTypes(Source,{{"REF", type text}, {"COM", type text}, {"COPY", type text}, {"TICO", type text}, {"PHOTO", type text}}),
        #"Fractionner la colonne par délimiteur" = Table.ExpandListColumn(Table.TransformColumns(#"Type modifié", {{"PHOTO", Splitter.SplitTextByDelimiter("; ", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "PHOTO"),
        #"Lignes triées" = Table.Sort(#"Fractionner la colonne par délimiteur",{{"REF", Order.Ascending}})
    in
        #"Lignes triées"
    Fichiers attachés Fichiers attachés

  4. #4
    Membre averti
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2019
    Messages : 16
    Par défaut
    Merci beaucoup à vous deux, ça fonctionne impec! :-)

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/08/2018, 08h32
  2. [XL-2016] VBA- couleur de police sur une ligne en fonction d'une cellule
    Par Apoulit dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/02/2017, 11h54
  3. Insérer des lignes en fonction d'une cellule
    Par g.dupin.gemma dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/04/2014, 11h24
  4. Suppression d'une ligne en fonction d'une cellule
    Par flo1411 dans le forum Excel
    Réponses: 6
    Dernier message: 26/03/2013, 16h28
  5. [XL-2003] Remplir automatiquement une ligne en fonction d'une cellule
    Par Tonio68 dans le forum Excel
    Réponses: 8
    Dernier message: 25/03/2011, 18h51

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