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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
Merci JFL_XLD
 
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"
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
745
Réponses
38
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…