VBA suppression lignes vides dans nouveau fichier créé via fonction PRINT

Bonjour,

Amateur en VBA, je sollicite votre aide svp :

Ce que je veux faire :

1. selectionner une plage de cellule (les cellules sont alimentées par des formules)

ici la selection est faite à partir de B8 jusqu'à la colonne AD et dernière ligne

2. copier la plage selectionner dans une nouveau fichier CSV avec séparteur

3. Supprimer dans le CSV créé les lignes des cellules vides avec pour index la colonne A

Voici mon code

Sub test_export() 'Pour création d'un fichier CSV

Dim Plage As Variant, oL As Variant, oC As Variant, Tmp As String, Sep$

Dim Cells As Variant, texte As String

Sep = ";"

DerLig = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row

Set Plage = ActiveSheet.Range("B8:AD" & DerLig)

Set Index = ActiveSheet.Range("B8" & derlign)

Open "Dernier_test.csv" For Output As #1

For Each oL In Plage.Rows

Tmp = ""

For Each oC In oL.Cells

Tmp = Tmp & CStr(oC.Text) & Sep

Next

Print #1, Tmp

Next

Close

End Sub

Je vous remercie par avance

Bonjour,

Au lieu de supprimer une ligne que ne te convient pas dans le fichier que tu crées, essaie tout simplement de mettre une condition pour ne pas ajouter cette ligne. Comme je n'ai pas compris quelle était cette condition, je ne peux en dire plus.

Bonjour,

Merci H2So4,

Dans un 1er temps,

J'aurais aimé dans ma sélection de plage, pouvoir sélectionner uniquement dans la colonne B, toutes les celles qui, contenant une formule, et affichent un résultat, ça serait plus simple pour tout le reste.

Si pas possible,

la condition serait :

- si une cellule de ma colonne index B du fichier de copie contient une formule sans résultat, ne pas la copier...

Je ne sais pas si je suis assez explicite ?

Merci par avance

Bonjour,

une proposition de modification de ton code

Sub test_export()    'Pour création d'un fichier CSV
    Dim Plage As Variant, oL As Variant, oC As Variant, Tmp As String, Sep$
    Sep = ";"
    DerLig = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row
    Set Plage = ActiveSheet.Range("B8:AD" & DerLig)
    Open "Dernier_test.csv" For Output As #1
    For Each oL In Plage.Rows
        Tmp = ""
        If oL.Cells(1, 1).Value <> "" Then 'cells(1,1) est la première cellule de la plage oL contenant les colonnes B à AD
            For Each oC In oL.Cells
                Tmp = Tmp & CStr(oC.Text) & Sep
            Next
            Print #1, Tmp
        End If
    Next
    Close
End Sub

Hey !

Merci Beaucoup H2So4, your are the best

ça fonctionne !!

Avec ta contrepartie je me suis rendu compte que j'y étais presque, heureusement que tu es là.

Bon week-end

Bonsoir,

content que tu sois arrivé à tes fins. n'oublie pas de clore le sujet si tu as eu ta réponse.

Rechercher des sujets similaires à "vba suppression lignes vides nouveau fichier cree via fonction print"