Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Épurer les lignes vides d'une cellule puis fractionner la cellule en plusieurs lignes

de_hanstrapp

XLDnaute Occasionnel
Bonjour le forum,

Dans le fichier exemple joint, je cherche à :
1/ supprimer toutes les lignes vides contenues dans les cellules de la colonne "C" pour arriver au résultat de l'onglet 2
2/ fractionner les lignes contenues dans les cellules pour arriver au résultat de l'onglet 3

J'ai cherché sur le forum mais dans les codes d'épurage trouvés, il ne prend jamais en compte la première ligne et pour spliter en plusieurs lignes on fait référence à un caractère alors que la il s'agit d'une tabulation.

Des idées ?

Merci par avance,

De_Hanstrapp
 

Pièces jointes

  • Exemple.xlsm
    14.9 KB · Affichages: 10

JFL_XLD

XLDnaute Junior
Bonjour à tous !
Une autre approche Power Query ?
Après insertion d'un tableau structuré feuille "INITIAL" nommé "tSource" :
PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="tSource"]}[Content],
    Fractt = Table.ExpandListColumn(Table.TransformColumns(Source, {{"PROGRAMME", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv)}}), "PROGRAMME"),
    Filtre = Table.SelectRows(Fractt, each ([PROGRAMME] <> "" and [PROGRAMME] <> " "))
in
    Filtre
 

de_hanstrapp

XLDnaute Occasionnel
Merci JFL_XLD
 

Staple1600

XLDnaute Barbatruc
Re

A la relecture, j'aurais du cocher [x] Lignes
Ce qui donne le code M suivant généré par l'Assistant PQ
(sans aucune modification manuelle de ma part]
PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    #"Type modifié" = Table.TransformColumnTypes(Source,{{"JOUR", Int64.Type}, {"DISCIPLINE", type text}, {"PROGRAMME", type text}}),
    #"Fractionner la colonne par délimiteur" = Table.ExpandListColumn(Table.TransformColumns(#"Type modifié", {{"PROGRAMME", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "PROGRAMME"),
    #"Type modifié1" = Table.TransformColumnTypes(#"Fractionner la colonne par délimiteur",{{"PROGRAMME", type text}}),
    #"Lignes filtrées" = Table.SelectRows(#"Type modifié1", each ([PROGRAMME] <> "" and [PROGRAMME] <> " "))
in
    #"Lignes filtrées"
 

fanch55

XLDnaute Barbatruc
Salut à tous,
Pour le Fun et les aficionados des macros :

VB:
Sub Onglet3()
Dim Line As Variant, Li As Variant
Dim L As Integer
Dim FSource As Worksheet, FTarget As Worksheet
    Set FSource = Sheets("Initial")
    Set FTarget = Sheets("Feuil2"): FTarget.Cells.Delete
    L = 1
    For Each Line In FSource.UsedRange.Rows
        For Each Li In Split(Line.Columns("C"), vbLf)
            If Trim(Li) <> "" Then
                If FTarget.Rows(L).Columns("C") <> "" Then L = L + 1
                FTarget.Rows(L).Columns("A:B").Value = Line.Columns("A:B").Value
                FTarget.Rows(L).Columns("C") = Li
            End If
        Next
    Next
    FTarget.Columns.AutoFit
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…