Ouverture fichier txt sous notepad++

excelo

XLDnaute Occasionnel
Bonjour tout le monde,
Je fais appel à votre aide, car je BEUG
Je suis sur Excel 2003 et je voudrais rédiger une macro qui me permettrait :
d'ouvrir un fichier txt avec "notepad++" puis de lancer le programme "trim trailing and save" jusqu'à la fin du fichier (de manière à ce qu'il me supprime toutes les lignes vides) et de fermer ce même fichier.
Je n'y arrive pas, quelqu'un pourrait m'aider?
 

excelo

XLDnaute Occasionnel
Re : Ouverture fichier txt sous notepad++

Bonjour Michel,
Je parle de notepad++, parce que c'est la seule application que je connaisse qui me permets de supprimer les lignes vides sur les fichier txt, maintenant si open peut le faire pourquoi pas, mais je connaissais pas, je jette un oeuil sur ton lien,
merci
 

mromain

XLDnaute Barbatruc
Re : Ouverture fichier txt sous notepad++

Bonjour excelo, Michel,

Voici une macro pour supprimer les lignes vides d'un fichier texte :
VB:
Sub Test()
Dim myFso As Object, fichier1 As Object, fichier2 As Object, pathFichierTxt As String, pathNouvFichierTxt As String, ligneTxt As String

    'chemin du fichier texte
    pathFichierTxt = "E:\XLS\test\Nouveau Document texte.txt"
    'générer le chemin du nouveau fichier
    pathNouvFichierTxt = Left(pathFichierTxt, InStrRev(pathFichierTxt, "\")) & "tmp_" & Format(Now, "yyyymmddhhnnss") & ".txt"
    
    'récupérer le fichier (en mode lecture)
    Set myFso = CreateObject("Scripting.FileSystemObject")
    Set fichier1 = myFso.OpenTextFile(pathFichierTxt, 1)
    'créer / récupérer un nouveau fichier (en écriture)
    Set fichier2 = myFso.CreateTextFile(pathNouvFichierTxt, True)
    
    'boucler sur chaque ligne du fichier texte
    While Not fichier1.AtEndOfStream
        ligneTxt = fichier1.ReadLine
        'si la ligne n'est pas vide, la rajouter au nouveau fichier
        If ligneTxt <> "" Then fichier2.WriteLine ligneTxt
    Wend
    
    'fermer les fichiers
    fichier1.Close: fichier2.Close
    
    'supprimer l'ancien fichier texte
    myFso.DeleteFile pathFichierTxt, True
    
    'renommer le nouveau vichier texte (nom de l'ancien)
    Name pathNouvFichierTxt As pathFichierTxt
    
    'détruire les objets
    Set myFso = Nothing: Set fichier1 = Nothing: Set fichier2 = Nothing
    
End Sub
a+
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Ouverture fichier txt sous notepad++

Re , Bonjour Mickaël

Sinon en modifiant la macro du post précédent cela donne ceci :

Code:
Sub Extrait()
Close #1
Close #2
nomFich = "C:\SupLigneVide.txt"
nomFich2 = "C:\SupLigneVide2.txt"
'n = 1
'p = 1
Open nomFich For Input As #1
Open nomFich2 For Output As #2
Do While Not EOF(1)
Line Input #1, strline
MsgBox Len(strline)
'Cells(p, 1) = strline: p = p + 1
'If strline = "- <customBucketList>" Then n = 2
'If strline = "</customBucketList>" Then n = 0
'If n = 1 Then Print #2, strline
'If n = 0 Then n = n + 1
If Len(strline) <> 0 Then Print #2, strline
Loop
Close #1
Close #2
'Open nomFich2 For Input As #1
'p = 1
'Do While Not EOF(1)
'Line Input #1, strline
'Cells(p, 4) = strline: p = p + 1
'Loop
'Close #1
End Sub

ou si tu débutes en VBA sans les commentaires:

Code:
Sub Extrait()
Close #1
Close #2
nomFich = "C:\SupLigneVide.txt"
nomFich2 = "C:\SupLigneVide2.txt"
Open nomFich For Input As #1
Open nomFich2 For Output As #2
Do While Not EOF(1)
Line Input #1, strline
If Len(strline) <> 0 Then Print #2, strline
Loop
Close #1
Close #2
End Sub
 
Dernière édition:

excelo

XLDnaute Occasionnel
Re : Ouverture fichier txt sous notepad++

Re,
oui j'ai ouvert le dernier fichier du lien, mais je t'avoue que je ne comprends pas trop le code VBA, je n'ai pas un trés bon niveau en VBA, je me débrouille un peu grace au forum, j'ai commencé un code qui marche bien mais le soucis c'est que le résultat de mon fichier txt me laisse des lignes vide ce qui me permets pas de l'intégrer sur mon logiciel, il faut que je retravaille le fichier txt en supprimant les lignes vide manuellement pour que le fichier puisse être intégré.
 

excelo

XLDnaute Occasionnel
Re : Ouverture fichier txt sous notepad++

Re,
je viens de tester les codes, le fichier txt présente toujours des lignes vides,
Voici mon code VBA :

Sub txt()

Sheets("INCORP MAL, MAT, PAT").Select
'je selecte les cellules ("A1:F1000") pour la copie mais le tableau est souvent plus
'court donc je selectionne des cellules vides (exemple le tableau va de A1:F200) selection vide
'de A201:F1000, ce sont celles qui me génèrent des lignes vides lorsque je colle par la suite
'sur txt

Range("A1:F1000").Select
Selection.Copy
'je copie ces cellules sur un fichier excel "EFTM sur bati.xls"
ChDir "C:\incorpor VARIABLES\VARIABLES"
Workbooks.Open Filename:= _
"C:\incorpor VARIABLES\incorporation du mois\EFTM sur bati.xls"
Range("A1").Select
'puis je colle ces cellules
ActiveSheet.Paste
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'je mets les cellules date au bon format
Range("C1:C1000").Select
Selection.NumberFormat = "dd/mm/yyyy"
'je mets les cellules date au bon format
Range("E1:F1000").Select
Selection.NumberFormat = "dd/mm/yyyy"
'normalement le programme ci dessous devrait supprimer les lignes vides sur excel
'avant l'enregistrement sous txt mais ça ne marche pas:

For I = Range("a65536").End(xlUp).Row To 1 Step -1
If Cells(I, 1) = "" Then Rows(I).Delete
Range("A1").Select
Next
'je procède maintenant à l'enregistrement sous txt
ChDir "C:\incorpor VARIABLES\incorporation du mois"
ActiveWorkbook.SaveAs Filename:= _
"C:\incorpor VARIABLES\incorporation du mois\INCORP MAL, MAT, PAT sur acti.txt", FileFormat _
:=xlText, CreateBackup:=False
'je ferme mon fichier txt
ActiveWorkbook.Save
ActiveWindow.Close SaveChanges:=False
'quand j'ouvre ce fichier txt, j'ai des lignes vide que je n'arrive pas à enlever,
'je souhaiterai les enlever en ajoutant un programme, ma solution était de réouvrir
'le fichier txt sous notepad++ et de lancer la macro "trim trailing and save" jusqu'à la
'fin du fichier et de fermer ce même fichier

End Sub

Je ne sais pas comment faire,

Merci pour votre aide
 
Dernière édition:

excelo

XLDnaute Occasionnel
Re : Ouverture fichier txt sous notepad++

Bonjour,
je reviens vers vous car j'ai beau essayer d'adapter les codes de suppression de ligne vides sur les fichier txt mais je n'y arrive pas, le résultat donné comporte différente erreur que je n'explique pas, le souci c'est que je ne comprends pas exactement la signification des codes donc je ne sais pas quels sont les annomalies qui peuvent bloquer, j'ai essayé à la suite de mon code de rajouter :
Close #1
Close #2
nomFich = "C:\incorpor VARIABLES\incorporation du mois\INCORP MAL, MAT, PAT sur acti.txt"
nomFich2 = "C:\incorpor VARIABLES\incorporation du mois\INCORP MAL, MAT, PAT sur acti2.txt"
Open nomFich For Input As #1
Open nomFich2 For Output As #2
Do While Not EOF(1)
Line Input #1, strline
If Len(strline) <> 0 Then Print #2, strline
Loop
Close #1
Close #2
mais ça ne marche pas, quelqu'un pourrait m'expliquer comment marche ce programme?
Merci pour votre aide
 

excelo

XLDnaute Occasionnel
Re : Ouverture fichier txt sous notepad++

Bonjour Mickael,
j'ai utilisé ton code à la suite de mon code VBA en modifiant bien entendu le chemin du fichier à retravailler, mais le résultat du fichier txt présente toujours des lignes vides, peux tu me préciser quel bout de ton code permet de supprimer les lignes vides sur le fichier txt?
 

excelo

XLDnaute Occasionnel
Re : Ouverture fichier txt sous notepad++

Bonsoir à tous,
je ne sais pas pourquoi, mais je n'arrive pas à supprimer les lignes vides avec les codes, je vous envoie mon fichier txt, les lignes vides se trouvent en dessous du tableau, en fait je sais pas si on peut considérer que les lignes sont vides lorsqu'il y a des espaces?
Merci pour votre aide
 

Pièces jointes

  • INCORP.zip
    278 bytes · Affichages: 40

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 019
dernier inscrit
BenKmc