Supprimmer les retour chariots dans un fichier

nico3110 Messages postés 3 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 6 novembre 2009 - 30 oct. 2008 à 17:34
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 31 oct. 2008 à 08:50
Bonjour,


Je débute en VB et j'ai un petit souci.


J'ai un fichier excel, avec 3700 lignes et 15 colonnes.Je voudrais faire une macro, qui parcours l'ensemble des cellules de mon fichier et qui supprimme les retours chariots si un retour est présent dans une cellule.


Cela me servira pour ensuite importer mon fichier sous SAS avec une ligne par individu.


 


Pouvez vous m'aider??? Merci d'avance.

nico3110

2 réponses

cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
30 oct. 2008 à 18:16
Bonjour

Le code ci-dessous n'est pas optimisé pour une matrice de 3700x15 cellules, mais il effectue le nettoyage des RC en quelques minutes.

Sub efface_rc
Dim r As Range
For Each r In ActiveSheet.Cells
If r <> "" Then
r.Value = Replace(r.Value, vbCr, " ")
r.Value = Replace(r.Value, vbLf, " ")
r.Value = Replace(r.Value, " ", " ")
End If
Next
MsgBox "fin"
End Sub

Cordialement
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
31 oct. 2008 à 08:50
Salut,
A mon avis tu devrais plutot passer par une Fonction EXCEL. il doit sûrement en avoir une qui te permette facielement de faire ce que tu souhaites.

Parcourir TOUTES les cells prendra trop de temps ( mon avis)
Si tu reste sur l'option de parcours de Cells, pense à ajouter

Application.ScreenUpdating = False (avant la boucle)
de plus on pourra faire directement peu etre r.Value = Replace(r.Value, VbCrLf, " ")

Application.ScreenUpdating = True (Après la boucle)

@+: Ju£i€n
Pensez: Réponse acceptée
Rejoignez-nous