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

Supprimer Retour Chariot

  • Initiateur de la discussion Initiateur de la discussion munity
  • 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 !

M

munity

Guest
bonjour à tous

j'ai 2 petits problèmes avec l'instructions suivante :
problème 1:
sur certains fichiers texte il ne considère qu'une seule ligne alors qu'il y en a plusieurs (il ne prend pas en compte le retour chariot ???)

'Open Chemin + Fichier For Input As #1
' Do While Not EOF(1)
' Line Input #1, texte
' NbLignes = NbLignes + 1
' Loop
' Close #1

problème 2 :
Je souhaiterai qu'en plus du comptage de ligne, il me supprime le retour chariot de la dernière ligne si présent

merci à tous de votre aide

munity
 
Re : Supprimer Retour Chariot

salut renauder

non je ne pense pas qu'il vienne d'unix
par contre une personne ouvre ces fichiers avec Ultra Edit pour controler ceux ci avant intégration dans outil Informatique
moi je ne fais que lister les fichiers et prendre quelque informations afin d'éviter d'ouvrir tous les fichiers présent sur le serveur (gain de temps important)
la solution semblait idéal et rapide moins de 2 sec pour une 20éne de fichiers
malheureusement je me suis rendu compte (par hasard) du problème énoncé dans le fil et je ne parviens pas à le résoudre avec ces instructions
la parade c d'ouvrir les fichiers par macro
compter les lignes non vides et le fermer sans enregistrer
plus long mais pas plus de problème
enfin si tu as la soluce avec la méthode EOF je suis preneur (plus propre et plus rapide)

merci

munity
 
Re : Supprimer Retour Chariot

Bonjour,
Moi aussi j'ouvrais ce fichier avec Ultra Edit et pourtant !!!
Pour résoudre ce problème, j'ai utilisé un exécutable UNIX2DOS.EXE qui me permettait de mettre un retour chariot pour chaque ligne.
J'utilise la syntaxe :
CmdConvert = "C:\Excel\5-2-3E~1\Unix\UNIX2DOS.EXE C:\Excel\5-2-3E~1\Unix\ZSD_ST~1.txt"
Set oShell = CreateObject("WSCript.shell")
Tmp = oShell.Run(CmdConvert, 1, True)
Le tmp ..., permet d'attendre la fin de l'exécution de conversion avant de continuer le programme.
Il faut utiliser des noms DOS (8.3)
L'utiliaire Clipname permet de trouver la syntaxe exacte pour le nom DOS

Envoies ton fichier si tu veux que je regarde

erenaud@orange.fr
 
Re : Supprimer Retour Chariot

salut renauder et le phorum

ci dessous le code que j'utilise
PETITE précision il s'agit en fait de fichier texte et csv
mais jusqu'à présent je n'avais pas eu ce problème
peut être s'agit il d'un problème lors de la génération du ou des fichiers??
enfin si tu as le temps de jeter un oeil n'hésite pas 🙂🙂

Sub ListeFichier()
Dim Chemin As String
Dim Fichier As String
Dim Ligne As Integer
Dim Ext
Dim ColonneFin, LigneSup
Dim i As Integer
Application.ScreenUpdating = False
With Sheets("ImpressionListe")
.Range("a2:r65536").ClearContents
End With

Ligne = Sheets("Rel Réabo Paymt").Range("a65536").End(xlUp).Row + 1
Chemin = "C:\Documents and Settings\"
Fichier = Dir(Chemin & "*.*")
FichierBase = ActiveWorkbook.Name
Sheets("Rel Réabo Paymt").Select
While Fichier <> ""
'CODE UTILISE POUR PALIER LE NON PASSAGE A LA LIGNE
Cells(Ligne, 5) = Fichier
Workbooks.Open Filename:=Chemin + Fichier, ReadOnly:=True, local:=True
LigneSup = Cells(65536, 1).End(xlUp).Row
Workbooks(FichierBase).Activate
Sheets("Rel Réabo Paymt").Select
Cells(Ligne, 5) = Fichier
Cells(Ligne, 6) = LigneSup
Cells(Ligne, 7) = CDate(Date)
'Ligne = Ligne + 1
Workbooks(Fichier).Activate: Application.CutCopyMode = False: ActiveWindow.Close (False)
ANCIEN CODE QUI NE FONCTIONNE PLUS COMME ATTENDU
'Open Chemin + Fichier For Input As #1
' Do While Not EOF(1)
' Line Input #1, texte
' NbLignes = NbLignes + 1
' Loop
' Close #1
CODE OK POUR IDENTIFIER LA PREMIERE LIGNE DU FICHIER TXT ET UTILISE CERTAINES INFORMATIONS
Open Chemin + Fichier For Input As #1
Line Input #1, texte
VarLigne = Split(texte, ";")
For i = 1 To UBound(VarLigne)
ValLi = VarLigne(0)
ValSoc = VarLigne(2)
ValVag = VarLigne(3)
Next i
Close #1
'Workbooks(FichierBase).Activate
COPIE DANS LE FICHIER SOURCE
With Sheets("Paramètres").Range("e2:e" & Range("e65536").End(xlUp).Row)
Set c = .Find(ValSoc, LookIn:=xlValues)
If Not c Is Nothing Then
NomSoc = c.Offset(0, 1)
End If
End With
Cells(Ligne, 1) = ValVag
Cells(Ligne, 3) = NomSoc
Cells(Ligne, 4) = ValLi
Cells(Ligne, 5) = Cells(Ligne, 4) & " " & Cells(Ligne, 3) & " - " & Fichier
NomFic = Cells(Ligne, 5)
Ligne = Ligne + 1
SUPPRESSION DE FICHIER GENERE LORS OUVERTURE PAR ULTRAEDIT
If Right(Fichier, 3) = "bak" Then
Rows(Ligne - 1).Delete
Ligne = Ligne - 1
End If
RENOMME NOM FICHIER SANS OUVRIR CELUI CI (TRES PRATIQUE)
Name Chemin + Fichier As Chemin + NomFic
NbLignes = 0
Fichier = Dir
Wend
SUITE PROCESSUS
DISPATCH
End Sub

munity
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
324
Réponses
15
Affichages
989
Réponses
2
Affichages
708
  • Question Question
Microsoft 365 Erreur de macro
Réponses
4
Affichages
859
H
Réponses
3
Affichages
1 K
Hotburn
H
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…