nico3110
Messages postés3Date d'inscriptionmercredi 26 août 2009StatutMembreDernière intervention 6 novembre 2009
-
30 oct. 2008 à 17:34
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDerniè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.
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 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
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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)