OVH Cloud OVH Cloud

remplacer caracteres (VBA) -> probleme

2 réponses
Avatar
JOL
Bonjour,

En utilisant la macro ci-dessous, j'ai un probleme que je n'arrive pas a
resoudre.
AVENUES est remplace par AVS
VALLEE est remplace par VALL etc.....
or je voudrais uniquement remplacer les mots definis dans la macro par leurs
abreviations et non pas les chaines de caratere que la macro repere par
l'abreviation.
Si quelqu'un peut m'aiguller sur la bonne piste.

Merci

Sub Abreviation()
Dim MaPlage As Range, A As Integer, Sh As Worksheet
Arr1 = Array("ALLEE", "AVENUE", "BOULEVARD", "CENTRE COMMERCIAL", "IMMEUBLE",
"IMPASSE", "LIEU-DIT", "LOTISSEMENT", "PASSAGE", "PLACE", "RESIDENCE", "ROND-
POINT", "ROUTE", "SQUARE", "VILLAGE", "ZONE D'ACTIVITE", "ZONE D'AMENAGEMENT
CONCERTE", "ZONE D'AMENAGEMENT DIFFERE", "ZONE INDUSTRIELLE")
Arr2 = Array("ALL", "AV", "BD", "CCAL", "IMM", "IMP", "LD", "LOT", "PAS", "PL",
"RES", "RPT", "RTE", "SQ", "VLGE", "ZA", "ZAC", "ZAD", "ZI")
Application.ScreenUpdating = False
Set MaPlage = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants,
xlTextValues)
For A = 0 To UBound(Arr1)
MaPlage.Replace Arr1(A), Arr2(A)
Next
Set MaPlage = Nothing: Set Sh = Nothing
Application.ScreenUpdating = True
End Sub
--
Ce message a ete poste via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/

2 réponses

Avatar
Philippe.R
Bonjour,
Le comportement par défaut du remplacement est bien celui que tu décris, sauf à cocher la case"totalité
du contenu de la cellule" dans les options de remplacement.
L'utilisation de l'enregistreur de macros en cochant cette case donne comme piste :

Selection.Replace What:="ALLEE", Replacement:="ALL", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"JOL" a écrit dans le message de news:

Bonjour,

En utilisant la macro ci-dessous, j'ai un probleme que je n'arrive pas a
resoudre.
AVENUES est remplace par AVS
VALLEE est remplace par VALL etc.....
or je voudrais uniquement remplacer les mots definis dans la macro par leurs
abreviations et non pas les chaines de caratere que la macro repere par
l'abreviation.
Si quelqu'un peut m'aiguller sur la bonne piste.

Merci

Sub Abreviation()
Dim MaPlage As Range, A As Integer, Sh As Worksheet
Arr1 = Array("ALLEE", "AVENUE", "BOULEVARD", "CENTRE COMMERCIAL", "IMMEUBLE",
"IMPASSE", "LIEU-DIT", "LOTISSEMENT", "PASSAGE", "PLACE", "RESIDENCE", "ROND-
POINT", "ROUTE", "SQUARE", "VILLAGE", "ZONE D'ACTIVITE", "ZONE D'AMENAGEMENT
CONCERTE", "ZONE D'AMENAGEMENT DIFFERE", "ZONE INDUSTRIELLE")
Arr2 = Array("ALL", "AV", "BD", "CCAL", "IMM", "IMP", "LD", "LOT", "PAS", "PL",
"RES", "RPT", "RTE", "SQ", "VLGE", "ZA", "ZAC", "ZAD", "ZI")
Application.ScreenUpdating = False
Set MaPlage = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants,
xlTextValues)
For A = 0 To UBound(Arr1)
MaPlage.Replace Arr1(A), Arr2(A)
Next
Set MaPlage = Nothing: Set Sh = Nothing
Application.ScreenUpdating = True
End Sub
--
Ce message a ete poste via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/


Avatar
Chilpéric
Bonjour

non vérifié
MaPlage.Replace Arr1(A), Arr2(A),xlwhole
ou plus complet
MaPlage.Replace What:=Arr1(A), Replacement:=Arr2(A), LookAt:=xlWhole

Chilpéric

"JOL" a écrit dans le message news:


Bonjour,

En utilisant la macro ci-dessous, j'ai un probleme que je n'arrive pas a
resoudre.
AVENUES est remplace par AVS
VALLEE est remplace par VALL etc.....
or je voudrais uniquement remplacer les mots definis dans la macro par
leurs

abreviations et non pas les chaines de caratere que la macro repere par
l'abreviation.
Si quelqu'un peut m'aiguller sur la bonne piste.

Merci

Sub Abreviation()
Dim MaPlage As Range, A As Integer, Sh As Worksheet
Arr1 = Array("ALLEE", "AVENUE", "BOULEVARD", "CENTRE COMMERCIAL",
"IMMEUBLE",

"IMPASSE", "LIEU-DIT", "LOTISSEMENT", "PASSAGE", "PLACE", "RESIDENCE",
"ROND-

POINT", "ROUTE", "SQUARE", "VILLAGE", "ZONE D'ACTIVITE", "ZONE
D'AMENAGEMENT

CONCERTE", "ZONE D'AMENAGEMENT DIFFERE", "ZONE INDUSTRIELLE")
Arr2 = Array("ALL", "AV", "BD", "CCAL", "IMM", "IMP", "LD", "LOT", "PAS",
"PL",

"RES", "RPT", "RTE", "SQ", "VLGE", "ZA", "ZAC", "ZAD", "ZI")
Application.ScreenUpdating = False
Set MaPlage = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants,
xlTextValues)
For A = 0 To UBound(Arr1)
MaPlage.Replace Arr1(A), Arr2(A)
Next
Set MaPlage = Nothing: Set Sh = Nothing
Application.ScreenUpdating = True
End Sub
--
Ce message a ete poste via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/