Copier donnée en supprimant les lignes blanches

Bonjour,

Je viens à vous car je galère avec un fichier excel...

J'ai des données dans une colonne qui contient des lignes blanches.

Ce que je souhaiterai c'est copier ces données dans une autre colonne en enlevant les lignes blanches. J'ai essayé avec un filtre pour enlever les cases vides mais le soucis c'est que j'ai des formules du style: =Si(A1<X;"";A1) et même si la case apparaît vide, il la considère comme non vide car elle contient une formule.

Ci joint un fichier exemple.

En colonne C les données avec les lignes blanches et en colonne E les données triées à la main et que j'aimerais automatiser.

Cordialement,

Bonjour,

Une piste avec les valeurs en "dur" en colonne F et les valeurs issues des formules correspondantes en colonne G :

Sub Test()

    Dim Plage As Range
    Dim Cel As Range
    Dim Lig As Long

    With Worksheets("Feuil1")

        Set Plage = .Range(.Cells(1, 3), .Cells(.Rows.Count, 3).End(xlUp))

        For Each Cel In Plage

            If Cel.Text <> "" Then

                Lig = .Cells(.Rows.Count, 6).End(xlUp).Row + 1
                If Cells(1, 6).Value = "" Then Lig = 1

                'en colonne F, les valeurs en "dur"
                Cells(Lig, 6).Value = Cel.Value

                'en colonne G, les valeurs issues des formules
                Cells(Lig, 7).Formula = Cel.Formula

            End If

        Next Cel

    End With

End Sub

Merci Theze, ça marche très bien! Je mets le sujet en "Résolu".

Bonjour letruite, Theze,

Une proposition par formule matricielle.

En "E1"

=RECHERCHE("zzzzz";CHOISIR({1;2};"";INDEX(C:C;PETITE.VALEUR(SI($C$1:$C$99<>"";LIGNE($C$1:$C$99));LIGNES($E$1:E1)))))

Tirer vers le bas autant que nécessaire.

Bien sûr la solution de Theze est bien moins gourmande en ressource.

Cordialement.

Merci Mdo100 pour ta solution.

Par contre je comprend pas très bien comment fonctionne ta formule.

Pourrais tu me l'expliquer argument par argument pour ma culture personnelle?

Bonjour letruite,

Pas facile a expliquer, mais je vais essayer.

  • On recherche toutes les valeurs uniquement alphabétique
  • Dans toute la colonne "C"
  • Les petites valeurs si différent de vides dans la plage "C1:Cx"
  • Choisir si c'est "VRAI" =1; si "FAUX =2
  • Si "Choisir" = 1 alors on copie "k" à partir de la cellule "E1"
  • Si "Choisir" = 2 alors on copie rien.

Cordialement.

Ok super merci pour l'explication!

Rechercher des sujets similaires à "copier donnee supprimant lignes blanches"