OVH Cloud OVH Cloud

Probleme Replace VBA dans feuille Excel

11 réponses
Avatar
Ludo167
Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix dans excel
puis apres je fais differents traitement dessus mais le probleme je voudrais
remplacer tous les caracteres unix par ceux windows ou par des espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:=False

j'ai essaye de changer differents options pour passer de true a false et
vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma feuille par
example une cellule et là ca marche, sur 3 ou quatre aussi mais si je veux
faire sur une trentaine ou collone ou feuilles entieres, ca ne marche pas il
remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire un
remplacement sur la cellule.. et là ca marche mais ca me prends enormement de
temps 4 min (le fichiers est tres gros) c dommage ca sachant qu'il existent
des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et je ne
comprends toujours pas...

10 réponses

1 2
Avatar
isabelle
bonjour Ludo167,

Selection.Replace What:=Chr(13), Replacement:=Chr(32), LookAt:=xlPart

isabelle


Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix dans excel
puis apres je fais differents traitement dessus mais le probleme je voudrais
remplacer tous les caracteres unix par ceux windows ou par des espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse

j'ai essaye de changer differents options pour passer de true a false et
vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma feuille par
example une cellule et là ca marche, sur 3 ou quatre aussi mais si je veux
faire sur une trentaine ou collone ou feuilles entieres, ca ne marche pas il
remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire un
remplacement sur la cellule.. et là ca marche mais ca me prends enormement de
temps 4 min (le fichiers est tres gros) c dommage ca sachant qu'il existent
des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et je ne
comprends toujours pas...




Avatar
Pierre Fauconnier
Bonjour

Peut-être en ajoutant
lookat:=xlpart à la ligne Selection.replace
pour chercher la valeur à remplacer dans une partie de la cellule et non
dans la cellule entière

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Ludo167" a écrit dans le message de
news:
Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix dans excel
puis apres je fais differents traitement dessus mais le probleme je
voudrais
remplacer tous les caracteres unix par ceux windows ou par des espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse

j'ai essaye de changer differents options pour passer de true a false et
vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma feuille par
example une cellule et là ca marche, sur 3 ou quatre aussi mais si je veux
faire sur une trentaine ou collone ou feuilles entieres, ca ne marche pas
il
remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire un
remplacement sur la cellule.. et là ca marche mais ca me prends enormement
de
temps 4 min (le fichiers est tres gros) c dommage ca sachant qu'il
existent
des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et je ne
comprends toujours pas...




Avatar
RaMa
Bonsoir

essaie avec

Sub mmm()
For Each c In Selection
c.Value = Application.Substitute(c, Chr(13), Chr(32))
Next
End Sub

Salutations
RaMa

"Ludo167" a écrit dans le message de
news:
Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix dans excel
puis apres je fais differents traitement dessus mais le probleme je
voudrais
remplacer tous les caracteres unix par ceux windows ou par des espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse

j'ai essaye de changer differents options pour passer de true a false et
vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma feuille par
example une cellule et là ca marche, sur 3 ou quatre aussi mais si je veux
faire sur une trentaine ou collone ou feuilles entieres, ca ne marche pas
il
remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire un
remplacement sur la cellule.. et là ca marche mais ca me prends enormement
de
temps 4 min (le fichiers est tres gros) c dommage ca sachant qu'il
existent
des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et je ne
comprends toujours pas...




Avatar
RaMa
Ou plus précisement

Sub mmm()
For Each c In Selection
c.Value = Application.Substitute(Application.Substitute _
(Application.Substitute(c, Chr(13), Chr(32)), Chr(9), Chr(32)), Chr(10),
Chr(32))
Next
End Sub

RaMa
"RaMa" a écrit dans le message de news:
%
Bonsoir

essaie avec

Sub mmm()
For Each c In Selection
c.Value = Application.Substitute(c, Chr(13), Chr(32))
Next
End Sub

Salutations
RaMa

"Ludo167" a écrit dans le message de
news:
Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix dans
excel
puis apres je fais differents traitement dessus mais le probleme je
voudrais
remplacer tous les caracteres unix par ceux windows ou par des espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse

j'ai essaye de changer differents options pour passer de true a false et
vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma feuille
par
example une cellule et là ca marche, sur 3 ou quatre aussi mais si je
veux
faire sur une trentaine ou collone ou feuilles entieres, ca ne marche pas
il
remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire un
remplacement sur la cellule.. et là ca marche mais ca me prends
enormement de
temps 4 min (le fichiers est tres gros) c dommage ca sachant qu'il
existent
des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et je ne
comprends toujours pas...








Avatar
Ludo167
Bonjour a tous,

merci de votre aide,

j'ai essayé ton code RaMa, mais cela ne fonctionne pas non plus.. merci
quans meme...

Bonne journée a toi


Bonsoir

essaie avec

Sub mmm()
For Each c In Selection
c.Value = Application.Substitute(c, Chr(13), Chr(32))
Next
End Sub

Salutations
RaMa

"Ludo167" a écrit dans le message de
news:
Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix dans excel
puis apres je fais differents traitement dessus mais le probleme je
voudrais
remplacer tous les caracteres unix par ceux windows ou par des espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse

j'ai essaye de changer differents options pour passer de true a false et
vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma feuille par
example une cellule et là ca marche, sur 3 ou quatre aussi mais si je veux
faire sur une trentaine ou collone ou feuilles entieres, ca ne marche pas
il
remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire un
remplacement sur la cellule.. et là ca marche mais ca me prends enormement
de
temps 4 min (le fichiers est tres gros) c dommage ca sachant qu'il
existent
des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et je ne
comprends toujours pas...









Avatar
Ludo167
Bonjour Pierre

Mais j'avais esayer avec Xlpart aussi..

mais j'ai l'impression qu'au bout d'un certain nombre de remplacement, Excel
perd la face et ne remplace plus rien.. saturer ou autre je ne sais pas..

Pourquoi cette conclusion : j'ai essayé de prendre plusierus cellules en
emsble pour faire le dit remplacement, dans ces cellules ils n'ya aps bcp de
remplacement a ffectuer et ca marche j'en prend 7 maintenant, avec pas mal de
remplacement et là il suit pas (aucun remplacement), je descend a 5 et là ca
passe... bizarree y'a t'il qulequ'un de microsoft qui pourrait m'eclairer car
là dans le brouillard..

dommage que la fonction replace all fonctionnent mal.. ;-)

Merci encore Pierre


Bonjour

Peut-être en ajoutant
lookat:=xlpart à la ligne Selection.replace
pour chercher la valeur à remplacer dans une partie de la cellule et non
dans la cellule entière

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Ludo167" a écrit dans le message de
news:
Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix dans excel
puis apres je fais differents traitement dessus mais le probleme je
voudrais
remplacer tous les caracteres unix par ceux windows ou par des espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse

j'ai essaye de changer differents options pour passer de true a false et
vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma feuille par
example une cellule et là ca marche, sur 3 ou quatre aussi mais si je veux
faire sur une trentaine ou collone ou feuilles entieres, ca ne marche pas
il
remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire un
remplacement sur la cellule.. et là ca marche mais ca me prends enormement
de
temps 4 min (le fichiers est tres gros) c dommage ca sachant qu'il
existent
des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et je ne
comprends toujours pas...









Avatar
Ludo167
Bonjour isabelle

Merci mais comme j'ai dit a Pierre ca ne fonctionne pas..

cf: reponse a pierre

Merci encore pour ton aide..

Bonne journée


bonjour Ludo167,

Selection.Replace What:=Chr(13), Replacement:=Chr(32), LookAt:=xlPart

isabelle


Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix dans excel
puis apres je fais differents traitement dessus mais le probleme je voudrais
remplacer tous les caracteres unix par ceux windows ou par des espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse

j'ai essaye de changer differents options pour passer de true a false et
vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma feuille par
example une cellule et là ca marche, sur 3 ou quatre aussi mais si je veux
faire sur une trentaine ou collone ou feuilles entieres, ca ne marche pas il
remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire un
remplacement sur la cellule.. et là ca marche mais ca me prends enormement de
temps 4 min (le fichiers est tres gros) c dommage ca sachant qu'il existent
des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et je ne
comprends toujours pas...







Avatar
Oliv'
Ludo167 que je salut a écrit dans

Bonjour a tous,

merci de votre aide,

j'ai essayé ton code RaMa, mais cela ne fonctionne pas non plus..
merci quans meme...


Essaye avec ces différents codes qui fonctionnent tous
########################################################
Columns("E:E").Select
Selection.Replace What:="'", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
########################################################
PROV_RC = Replace(Cells(l, 34).Value, ",", ".")
########################################################
C1_ECHSIN_NOM_CONDUCT =
Application.WorksheetFunction.Substitute(Workbooks("MACRO_EDI.xls").Worksheets("insert").Cells(l,
34).Offset(1, 0).Value, "'", "''")
########################################################
immat = Application.WorksheetFunction.Substitute(immat, " ", "")
########################################################

J'espère que tu y trouveras ton bonheur ;-)

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bonne journée a toi


Bonsoir

essaie avec

Sub mmm()
For Each c In Selection
c.Value = Application.Substitute(c, Chr(13), Chr(32))
Next
End Sub

Salutations
RaMa

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

Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix
dans excel puis apres je fais differents traitement dessus mais le
probleme je voudrais
remplacer tous les caracteres unix par ceux windows ou par des
espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse

j'ai essaye de changer differents options pour passer de true a
false et vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma
feuille par example une cellule et là ca marche, sur 3 ou quatre
aussi mais si je veux faire sur une trentaine ou collone ou
feuilles entieres, ca ne marche pas il
remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire
un remplacement sur la cellule.. et là ca marche mais ca me prends
enormement de
temps 4 min (le fichiers est tres gros) c dommage ca sachant qu'il
existent
des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et
je ne comprends toujours pas...






Avatar
Ludo167
Merci oliv, mais toujours pareil ca ne marche pas... alors je me pose la
question sur le faite est ce que c lié au faite que je cherche directement le
code ascii pour le remplacer par le code ascii??

je sais pas en tout cas au bout d'un moment il ne change plus rien
limitation d'excel je commence a m'en persuader..

Bonne journée a tous..


Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix dans excel
puis apres je fais differents traitement dessus mais le probleme je voudrais
remplacer tous les caracteres unix par ceux windows ou par des espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse

j'ai essaye de changer differents options pour passer de true a false et
vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma feuille par
example une cellule et là ca marche, sur 3 ou quatre aussi mais si je veux
faire sur une trentaine ou collone ou feuilles entieres, ca ne marche pas il
remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire un
remplacement sur la cellule.. et là ca marche mais ca me prends enormement de
temps 4 min (le fichiers est tres gros) c dommage ca sachant qu'il existent
des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et je ne
comprends toujours pas...




Avatar
Oliv'
Ludo167 que je salut a écrit dans

Merci oliv, mais toujours pareil ca ne marche pas... alors je me pose
la question sur le faite est ce que c lié au faite que je cherche
directement le code ascii pour le remplacer par le code ascii??

je sais pas en tout cas au bout d'un moment il ne change plus rien
limitation d'excel je commence a m'en persuader..

Bonne journée a tous..


As tu essayé de mettre un Application.ScreenUpdating = False au debut de ta
macro ?
essaye aussi de mettre un ActiveWorkbook.Save entre tes replace.
quel taille fait ton document ?
Est ce judicieux de l'ouvrir avec excel ce fichier ?

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





Bonjour a tous,

voici mon probleme, j'importe un fichier depuis un systeme unix dans
excel puis apres je fais differents traitement dessus mais le
probleme je voudrais remplacer tous les caracteres unix par ceux
windows ou par des espaces.

voici une partie du code de remplacement :
cells.Select
Selection.Replace What:=Chr(13), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(9), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:=Chr(10), Replacement:=Chr(32),
SearchOrder:=xlByRows, MatchCase:úlse

j'ai essaye de changer differents options pour passer de true a
false et vice versa mais rien..


j'ai donc essayer d'appliquer cette macro sur une partie de ma
feuille par example une cellule et là ca marche, sur 3 ou quatre
aussi mais si je veux faire sur une trentaine ou collone ou feuilles
entieres, ca ne marche pas il remplace rien..

Y'a t'il une solution??

j'ai essayé avec une boucle pour parser ttous les cellules et faire
un remplacement sur la cellule.. et là ca marche mais ca me prends
enormement de temps 4 min (le fichiers est tres gros) c dommage ca
sachant qu'il existent des replace all.

j'ai essayé avec plusieurs versions : mais en vain..


Ludovic Excel 2003 SP1

Merci bcp d'avance car je planche depuis pas mal de temps dessus et
je ne comprends toujours pas...




1 2