Exporter des données d'un tableau Excel vers un fichier csv sous condition avec "print"
Bonjour à tous !
Je souhaite exporter une plage de données d'un tableau Excel vers un fichier .csv grâce à la commande print.
J'ai créé un bouton avec une macro qui fonctionne et qui me copie toutes les données vers un fichier csv :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Private Sub Bouton_Click()
Dim Plage As Object, oL As Object, oC As Object, Tmp As String
Set Plage = Worksheets("ONGLET_1").Range("a2:g" & Worksheets("ONGLET_1").Range("C65000").End(3).Row)
Open "Nomdefichier.csv" For Output As #1
For Each oL In Plage.Rows
Tmp = ""
For Each oC In oL.Cells
Tmp = Tmp & CStr(oC.Text) & ";"
Next
Print #1, Tmp
Next
Close
Shell "C:\Program Files (x86)\Notepad++\notepad++.exe " & "C:\Users\" & Environ("username") & "\Documents\Nomdefichier.csv", vbNormalFocus
End Sub |
Mon problème c'est que je souhaiterais ne pas recopier les lignes du tableau lorsque le mot "NU" se trouve dans la colonne C.
J'ai essayé d'inclure une condition :
Code:
1 2 3 4 5 6 7 8 9 10 11
| For Each oL In Plage.Rows
Tmp = ""
For Each oC In oL.Cells
While Cells(oL, 3).Value <> NU 'ajout de la commande While
Tmp = Tmp & CStr(oC.Text) & ";"
Wend 'ajout d'un code de fin
Next |
Apparemment ma syntaxe n'est pas bonne mais je n'arrive pas à comprendre où est mon erreur.
Si quelqu'un peut m'aider, je le remercie par avance !
Exporter des données d'un tableau Excel vers un fichier csv sous condition avec "print"
Bonjour,
Après pas mal d'essais, j'arrive au bout de ma macro en utilisant un if comme recommandé par Marc_L.
Voici mon code pour celui ou celle que çà intéresse :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
Private Sub Bouton_Click()
Dim Plage As Object, oL As Object, oC As Object, Tmp As String
Set Plage = Worksheets("ONGLET_1").Range("a2:g" & Worksheets("ONGLET_1").Range("C65000").End(3).Row)
Open "Nomdefichier.csv" For Output As #1
For Each oL In Plage.Rows
If oL.Cells(3) <> "NU" Then
Tmp = ""
For Each oC In oL.Cells
Tmp = Tmp & CStr(oC.Text) & ";"
Next
Print #1, Tmp
Debug.Print Tmp
End If
Next
Close
Shell "C:\Program Files (x86)\Notepad++\notepad++.exe " & "C:\Users\" & Environ("username") & "\Documents\Nomdefichier.csv", vbNormalFocus
End Sub |
Bonne journée à tout le monde !
Exporter des données d'un tableau Excel vers un fichier csv sous condition avec "print"
Bonjour Marc et merci pour cette réponse.
J'ai supprimé la fonction CStr, mais lorsque je lance ma macro, le fichier txt qui s'ouvre ne fait apparaître que des ;;;;.
Je n'ai plus aucune donnée de mon tableau.
Je ne comprends pas mon erreur.
Exporter des données d'un tableau Excel vers un fichier csv sous condition avec "print"
Ok, merci Marc,
Ca marche avec la syntaxe suivante :
Code:
Tmp = Tmp & ";" & (oC.Text)
Je pensais en fait que le oC.Text faisait partie de la fonction à supprimer.