OVH Cloud OVH Cloud

Retour chariot?(word 2003)

9 réponses
Avatar
Mahdat
Bonjour,
J'ai une serie de fichiers texte avec séparateur de champ = tabulation
mais quelques champs ont des retours chariot (Chr(13)) en plein milieu
J'ai ecrit ça mais ?????
Sub Macro1()
'
' Macro1 Macro

nb = 0
Do While Selection.Active <> ActiveDocument.Range.End ' ça marche pas
boucle sans fin
Debug.Print Selection, Asc(Selection)
Selection.MoveRight unit:=wdCharacter, Count:=1
If Asc(Selection) = 9 Then nb = nb + 1
If nb = 23 Then ' j'ai dans ce cas 24 champs
nb = 0
Selection.MoveRight unit:=wdWord, Count:=2 ' s'arrete avant la
derniere tabulation
Selection.MoveRight unit:=wdCharacter, Count:=1 ' pour passer le
LF
End If
If Asc(Selection.Text) = 13 And nb <> 23 Then
Selection.Delete ' suprime le LF
Selection.InsertAfter Chr(32) ' met un espace au cas ou il y aurait
qq chose
End If
Loop
End Sub

Si ça vous inspire, Merci d'avance tout conseil est le bien venu.

Denis

9 réponses

Avatar
Bonjour,
Je pense que si tu passe par le menu Outils Option Onglet Affichage Marque de format tous, ça pourrait commencer à être plus claire.
Ensuite normalement un rechercher remplacer devrait faire l'affaire en cliquant sur le bouton plus et le bouton spécial.
Merci d'avoir lu jusque là.


"Mahdat" a écrit dans le message de news:
Bonjour,
J'ai une serie de fichiers texte avec séparateur de champ = tabulation
mais quelques champs ont des retours chariot (Chr(13)) en plein milieu
J'ai ecrit ça mais ?????
Sub Macro1()
'
' Macro1 Macro

nb = 0
Do While Selection.Active <> ActiveDocument.Range.End ' ça marche pas boucle sans fin
Debug.Print Selection, Asc(Selection)
Selection.MoveRight unit:=wdCharacter, Count:=1
If Asc(Selection) = 9 Then nb = nb + 1
If nb = 23 Then ' j'ai dans ce cas 24 champs
nb = 0
Selection.MoveRight unit:=wdWord, Count:=2 ' s'arrete avant la derniere tabulation
Selection.MoveRight unit:=wdCharacter, Count:=1 ' pour passer le LF
End If
If Asc(Selection.Text) = 13 And nb <> 23 Then
Selection.Delete ' suprime le LF
Selection.InsertAfter Chr(32) ' met un espace au cas ou il y aurait qq chose
End If
Loop
End Sub

Si ça vous inspire, Merci d'avance tout conseil est le bien venu.

Denis



Avatar
Geo
Bonjour Mahdat


Bonjour,
J'ai une serie de fichiers texte avec séparateur de champ = tabulation
mais quelques champs ont des retours chariot (Chr(13)) en plein milieu
J'ai ecrit ça mais ?????


Si tu pouvais un peu préciser ce que tu attends de ce forum.
Perso je n'ai pas bien compris ce qui est simple commentaire et ce qui est
constat de résultat non attendu.

--

A+

Avatar
Mahdat
Bonjour,
Et merci pour vos reponses.
Ce que j'attends de ce forum? Ben une aide.

Alors plus simplement
Comment en VB peut-on faire une boucle
qui va s'arrêter sur le dernier caractère en
passant en revue tous les mots du texte.

Est-ce plus clair?
@+ Denis
Avatar
Mahdat
Bonjour, et merci pour la réponse

Mais j'ai une montagne de fichiers d'une longueur impressionnante
et tous les sauts de ligne ne sont pas à éliminer.
Une autre idée?
@+ Denis
"@pollo" a écrit dans
le message de news: %
Bonjour,
Je pense que si tu passe par le menu Outils Option Onglet Affichage Marque
de format tous, ça pourrait commencer à être plus claire.
Ensuite normalement un rechercher remplacer devrait faire l'affaire en
cliquant sur le bouton plus et le bouton spécial.
Merci d'avoir lu jusque là.


"Mahdat" a écrit dans le message de news:

Bonjour,
J'ai une serie de fichiers texte avec séparateur de champ = tabulation
mais quelques champs ont des retours chariot (Chr(13)) en plein milieu
J'ai ecrit ça mais ?????
Sub Macro1()
'
' Macro1 Macro

nb = 0
Do While Selection.Active <> ActiveDocument.Range.End ' ça marche pas
boucle sans fin
Debug.Print Selection, Asc(Selection)
Selection.MoveRight unit:=wdCharacter, Count:=1
If Asc(Selection) = 9 Then nb = nb + 1
If nb = 23 Then ' j'ai dans ce cas 24 champs
nb = 0
Selection.MoveRight unit:=wdWord, Count:=2 ' s'arrete avant la
derniere tabulation
Selection.MoveRight unit:=wdCharacter, Count:=1 ' pour passer
le LF
End If
If Asc(Selection.Text) = 13 And nb <> 23 Then
Selection.Delete ' suprime le LF
Selection.InsertAfter Chr(32) ' met un espace au cas ou il y
aurait qq chose
End If
Loop
End Sub

Si ça vous inspire, Merci d'avance tout conseil est le bien venu.

Denis







Avatar
JièL Goubert
Bonjoir(c) Mahdat

Le 27/05/2005 09:50 vous avez écrit ceci :
Bonjour, et merci pour la réponse

Mais j'ai une montagne de fichiers d'une longueur impressionnante
et tous les sauts de ligne ne sont pas à éliminer.
Une autre idée?


Pas d'autres idée, juste un complément pour vous evitez de faire dans le
superfétatoire et de réinventer l'eau chaude : Ouvrez un fichier,
enregistrez le recherche/remplace et le lancer en boucle sur les fichiees
à traiter, quite à utiliser la batchmacro qui est sur la FAQ
http://faqword.free.fr

mais j'avoue, comme Geo, ne pas voir vraiment compris ce que vous cherchez
à faire précisément

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr/

Avatar
Mahdat
Ah! oui,
Un peu agacé par vos réponses, j'ai relu le message d'origine
ET j'ai oublié de dire que les sauts de ligne à intérieur des champs
étaient ce que je voulais éliminé.
Merci qd mm
@+Denis
"JièL Goubert" a écrit dans le
message de news: ePRML$
Bonjoir(c) Mahdat

Le 27/05/2005 09:50 vous avez écrit ceci :
Bonjour, et merci pour la réponse

Mais j'ai une montagne de fichiers d'une longueur impressionnante
et tous les sauts de ligne ne sont pas à éliminer.
Une autre idée?


Pas d'autres idée, juste un complément pour vous evitez de faire dans le
superfétatoire et de réinventer l'eau chaude : Ouvrez un fichier,
enregistrez le recherche/remplace et le lancer en boucle sur les fichiees
à traiter, quite à utiliser la batchmacro qui est sur la FAQ
http://faqword.free.fr

mais j'avoue, comme Geo, ne pas voir vraiment compris ce que vous cherchez
à faire précisément

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr/



Avatar
Oliv'
Mahdat que je salut a écrit
Ah! oui,
Un peu agacé par vos réponses, j'ai relu le message d'origine


Ca veut dire quoi au juste ? tu peux toujours appeler Microsoft pour une
aide Payante si la notre te convient pas !

ET j'ai oublié de dire que les sauts de ligne à intérieur des champs
étaient ce que je voulais éliminé.
Merci qd mm
@+Denis


D'où viennent ces données ?
ne peux tu pas réctifier ta requête SQL par exemple (si c'en est une) pour
supprimer les char(13) ?
Si tu as des champs c'est que c'est un tableau non ?
Comment sais tu que ton "champ" comporte un char(13) et que ce n'est donc
pas le char(13) normal de fin de ligne ?


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

"JièL Goubert" a écrit dans
le message de news: ePRML$
Bonjoir(c) Mahdat

Le 27/05/2005 09:50 vous avez écrit ceci :
Bonjour, et merci pour la réponse

Mais j'ai une montagne de fichiers d'une longueur impressionnante
et tous les sauts de ligne ne sont pas à éliminer.
Une autre idée?






Avatar
JièL Goubert
Bonjoir(c) Mahdat

Le 27/05/2005 14:01 vous avez écrit ceci :
Ah! oui,
Un peu agacé par vos réponses


Ah... mais nous on a pas bien compris ce que vous vouliez faire, alors du
coup on envoi eu pif

j'ai relu le message d'origine
ET j'ai oublié de dire que les sauts de ligne à intérieur des champs
étaient ce que je voulais éliminé.


ben un recherche remplace devrait faire l'affaire alors, non ?
mais pareil, votre soucis manque de clarté, du moins pour moi. J'ai du mal
à comprendre ce que vous voulez réellement, même en relisant les bouts
d'explications que vous donnez

Merci qd mm


Des nadas

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr/

Avatar
Geo
Bonjour Mahdat


Comment en VB peut-on faire une boucle
qui va s'arrêter sur le dernier caractère en
passant en revue tous les mots du texte.
Par exemple:


Dim mot As Object
For Each mot In ActiveDocument.Words
m.Select
Next


--

A+