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

XL 2016 suppression ligne fichier csv

  • Initiateur de la discussion Initiateur de la discussion Excelo92
  • Date de début Date de début

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 !

Excelo92

XLDnaute Nouveau
Bonjour,
Je souhaiterai supprimer les lignes ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" d'un fichier csv
En cherchant sur les forums j'ai trouvé ce code que j'ai essayé d'adapter à mon fichier :

Public Sub ModifDonnees()
ReDim Tablo(0) As String
Dim NomDuFich As String, NoDuFich As Integer
Dim ChaineSource As String, ChaineDestin As String
Dim Ligne As String, TotLig As Long, I As Long
'init
NomDuFich = "C:\Import variable Talentia\IMPDV.csv" '<<< à remplir !!!!!!!!!
ChaineSource = ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
ChaineDestin = ""
' load
NoDuFich = FreeFile: TotLig = 0
Open NomDuFich For Input As #NoDuFich
Do While Not EOF(NoDuFich)
Line Input #NoDuFich, Ligne
If Ligne = ChaineSource Then
Ligne = ChaineDestin
Else
I = InStr(Ligne, ChaineSource)
If I Then Ligne = Left(Ligne, I - 1) & ChaineDestin & Mid(Ligne, I + Len(ChaineSource))
End If
TotLig = TotLig + 1: ReDim Preserve Tablo(TotLig): Tablo(NoLig) = Ligne
Loop
Close NoDuFich
'recopie
If TotLig > 0 Then
NoDuFich = FreeFile: Open NomDuFich For Output As #NoDuFich
For I = 1 To TotLig: Print #NoDuFich, Ligne: Next
Close NoDuFich
End If
End Sub

Le problème c'est qu'il me supprime tout le fichier
Auriez vous une solution à me proposer?
Merci pour vos retours
Bien à vous
 
bonjour
VB:
Sub noblankRow()
    Dim fichier$, vide$, x&, y&
    fichier = "C:\Import variable Talentia\IMPDV.csv"
    vide = ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" & vbCrLf
    'lecture
    x = FreeFile: Open fichier For Binary Access Read As #x: laChaine = String(LOF(x), " "): Get #x, , laChaine: Close #x
    'ecriture
    y = FreeFile: Open fichier For Output As #y: Print #y, Replace(laChaine, vide, ""): Close #y
End Sub
 

Merci pour ton retour,
Je viens de tester et j'ai une erreur mais je ne vois pas d'ou elle peut provenir, tu as une idée, voir copie écran
Merci pour votre aide
Cordialement,
 

Pièces jointes

  • message vba.png
    28.1 KB · Affichages: 39
Merci pour ton retour,
Je viens de tester et j'ai une erreur mais je ne vois pas d'ou elle peut provenir, tu as une idée, voir copie écran
Merci pour votre aide
Cordialement,
Bonjour,
Voir juste avant le surlignage jaune. Je pense que c'est
laChaine = String(LOF(x), "") au lieu de laChaine = String(LOF(x), " ")

Bon week-end à tous et à toutes.
 
bonjour
non @cp4 laisse l'espace il fallait simplement dimer "lachaine" en string
VB:
Sub noblankRow()
    Dim fichier$, vide$, x&, y&, lachaine$
    fichier = "C:\Import variable Talentia\IMPDV.csv"
    vide = ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" & vbCrLf
    'lecture
    x = FreeFile:    Open fichier For Binary Access Read As #x:    lachaine = String(LOF(x), " "):    Get #x, , lachaine:    Close #x
    'ecriture
    y = FreeFile: Open fichier For Output As #y: Print #y, Replace(lachaine, vide, ""): Close #y
End Sub
j'ai testé chez moi tout fonctionne et ca fait le job

si ca fonctionne pas c'est que vous avez un soucis d’autorisation sur le fichier ou vos librairies en vrac
et comme la fonction open et propre a excel alors c'est votre excel qui a pris des coups de serpette
 
Bonjour patrickToulon😉,
Etant donné que notre ami ne nous a pas communiqué le le message d'erreur renvoyer. En effet, tu as absolument raison la variable lachaine n'était pas déclarée.

Bon we
 

Merci, je viens de tester et c'est nickel
ça fait 4 ans que je n'ai pas travaillé sur du vba et de reprendre c'est difficile,
Un grand merci à vous
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
280
Réponses
5
Affichages
87
Réponses
2
Affichages
69
Réponses
4
Affichages
75
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…