supprimer les retours charriots

  • Initiateur de la discussion -fabien-
  • Date de début
F

-fabien-

Guest
Bonjour à tous,

j ai un petit soucis. j ai un fichier excel de 1600 enregistrements.
dans certaines cellules, le texte est en plusieurs lignes (alt+enter). je cherches un moyen simple de supprimer tous les retours chariots du document, pour que quand j'enregistre le fichier au format .txt, je n'ai pas les caracteres retour chariot (représentés par un carré) dans ce fichier.

Merci de votre aide, je n'ai pas beaucoup de temps pour trouver la solution et j'ai tout essayé, je suis perdu
 
N

Nicolas 65

Guest
Re...

La solution que je donnais faisait quelque chose de "plus sophistiqué" puisqu'elle permettait de séparer le contenu d'une ou plusieurs cellules dans 2 ou plusieurs colonnes à chaque fois qu'il y avait ALT+ENT.
Effectivement elle ne fonctionne pas sous Windows XP et Excel 2000.
S'il y a des personnes intéressées par la solution et qui dispose de windows 98 et Excel 2000 je peux leur envoyer le fichier explicatif.
 
@

@+Thierry

Guest
Re Bonjour à tous

Je n'avais pas eu trop de temps pour réagir cet après midi, mais donc si j'ai bien compris c'est la méthode décrite par Pascal à 10:10 plus haut qui ne passerait pas sous Win XP avec Office 2000... Je n'ai pas cette combinaison.

Je viens de tester sous Win XP Pro / Office XP Pro (2002) :

J'ai sélectionné la colonne où se trouve mes cellules de test avec des Chr(10)
Puis comme décrit :
   Menu
    =>Données
      => Convertir ("Text to Columns")
        Délimité/suivant
          Autres et Alt 10/Suivant
            Destination la Colonne adjacente...

Et bien je perds définitivement la partie se trouvant à la droite du premier chr(10)... :-(

Non je re-propose une solution VBA "plus sophistiquée" qui va donc permettre de séparer autant de fois que nécessaire sur les colonnes adjacentes à chaque Chr(10) rencontré dans la String :

NB ici l'exemple scanne la colonne 1 ("A")

Sub SplitLinefeedNextColumns()
Dim TargetVbLF As Range
Dim FirstAddress As String
Dim Splitter As Variant
Dim i As Byte


Application.ScreenUpdating = False

&nbsp;&nbsp;With ActiveSheet.Columns(1) '<<< à adapter
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set TargetVbLF = .Find(vbLf, LookIn:=xlValues, LookAt:=xlPart)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Not TargetVbLF Is Nothing Then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FirstAddress = TargetVbLF.Address
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Splitter = Split(TargetVbLF.Text, Chr(10))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For i = 0 To UBound(Splitter)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TargetVbLF.Offset(0, i) = Splitter(i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next i
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set TargetVbLF = .FindNext(TargetVbLF)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next 'une erreur se produira au dernier VbLF
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loop While Not TargetVbLF Is Nothing And TargetVbLF.Address <> FirstAddress
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If
End With

Application.ScreenUpdating = True
End Sub


Bonne soirée
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 772
Messages
2 091 975
Membres
105 134
dernier inscrit
ben_internet