OVH Cloud OVH Cloud

rechercher/remplacer massif

16 réponses
Avatar
patrick.lyon
bonjour
je cherche a remplacer de façon massive le contenu de certaines
cellules d'excel
dans liste1 j'aurais les noms originaux
dans liste2 les nouveaux noms
et que vba me remplace l'argument 1 de liste1 par l'argument 2 de
liste2
et ça pour le contenu de la colonne D par exemple

les listes , je sais les générer (1000 lignes)
la colonne D je l'ai
c'est la moulinette que je ne sais pas faire

si vous pouviez me donnez des idées

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

10 réponses

1 2
Avatar
tu définis une varaiable objet

PlageA

set plagea = ta sélection

après
for each testcellule in plagea
if testcellule = "ancien texte" then
testcellule = "nouveau texte"
end if
next testcellue


-----Message d'origine-----
bonjour
je cherche a remplacer de façon massive le contenu de
certaines

cellules d'excel
dans liste1 j'aurais les noms originaux
dans liste2 les nouveaux noms
et que vba me remplace l'argument 1 de liste1 par
l'argument 2 de

liste2
et ça pour le contenu de la colonne D par exemple

les listes , je sais les générer (1000 lignes)
la colonne D je l'ai
c'est la moulinette que je ne sais pas faire

si vous pouviez me donnez des idées

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

.



Avatar
Sorry pas lu la question en entier :
Voici la soluce

2 varaibles objet PlageA et PlageB

set PlageA = colonne originale
Set PlageB = colonne avec les nouveaux textes

For i = 1 to PlageA.Rows.Count
range(cells(i,plagea.column),Cells(i,plagea.column)) = _
range(cells(i,plageb.column),Cells(i,plageb.column))
next i
Ciao

-----Message d'origine-----
bonjour
je cherche a remplacer de façon massive le contenu de
certaines

cellules d'excel
dans liste1 j'aurais les noms originaux
dans liste2 les nouveaux noms
et que vba me remplace l'argument 1 de liste1 par
l'argument 2 de

liste2
et ça pour le contenu de la colonne D par exemple

les listes , je sais les générer (1000 lignes)
la colonne D je l'ai
c'est la moulinette que je ne sais pas faire

si vous pouviez me donnez des idées

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

.



Avatar
patrick.lyon
ok je te remercie
je ne vois pas a quel endroit tu définis la plage C contenant les
cellules a modifier

Sorry pas lu la question en entier :
Voici la soluce

2 varaibles objet PlageA et PlageB

set PlageA = colonne originale
Set PlageB = colonne avec les nouveaux textes

For i = 1 to PlageA.Rows.Count
range(cells(i,plagea.column),Cells(i,plagea.column)) = _
range(cells(i,plageb.column),Cells(i,plageb.column))
next i
Ciao

-----Message d'origine-----
bonjour
je cherche a remplacer de façon massive le contenu de certaines
cellules d'excel
dans liste1 j'aurais les noms originaux
dans liste2 les nouveaux noms
et que vba me remplace l'argument 1 de liste1 par l'argument 2 de
liste2
et ça pour le contenu de la colonne D par exemple

les listes , je sais les générer (1000 lignes)
la colonne D je l'ai
c'est la moulinette que je ne sais pas faire

si vous pouviez me donnez des idées

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

.



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
AV
[liste1] = [liste2].Value

Suffirait pas ?

AV
Avatar
patrick.lyon
attention liste1 contiens les anciens nom
liste 2 les nouveaux
et dans ma colonne C j'ai a faire le rechercher/remplacer
sachant que dans chaque cellule j'ai plusieurs mots de la liste1
un exemple ça aide
liste1:
avion
bateau
camion

liste2:
Airbus
Zodiac
Truck

dans colonne C
en C2 avioncamion deviens AirbusTruck
en C3 bateau deviens Zodiac
en C4 avionavioncamionavion deviens AirbusAirbusTruckAirbus


"AV" a utilisé son clavier pour écrire :
[liste1] = [liste2].Value

Suffirait pas ?

AV


--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Avatar
patrick.lyon
le code suivant fonctionne
sauf le cells.replace
alors qu c'est mr l'enregistreur qui me la donné
j'ai juste remplacé What:="avion" par What:=ppliste1

Sub Macro2()
Columns("C:C").Select
For i = 2 To 3
ppliste1 = Range("A" & i)
ppliste2 = Range("B" & i)
MsgBox (ppliste1)
MsgBox (ppliste2)
Cells.Replace What:=ppliste1, Replacement:=ppliste2, _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse
Next i
End Sub



"AV" a utilisé son clavier pour écrire :
[liste1] = [liste2].Value

Suffirait pas ?

AV


--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Avatar
patrick.lyon
:-?
euh ? dans ton exemple il manque pas un c3

"AV" vient de nous annoncer :
Ca va bcp mieux avec un exemple....

Sub zz_Substitue()
For Each c1 In [C2:C4]
For Each c2 In [A2:A4]
c1.Value = Application.Substitute(c1, c2, c2.Offset(0, 1))
Next
Next
End Sub

AV


--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

Avatar
AV
:-?
euh ? dans ton exemple il manque pas un c3


c3 c'est c2.Offset(0, 1)

T'as testé ?

AV

Avatar
patrick.lyon
oui j'ai testé mais bof
je vois pas grand chose
tu as bien compris que ma colonne A correspond a ma liste de mot a
trouver
que la colonne B correspond a la nouvelle liste
et que la colonne C contiends les mots a chercher dans A et a remplacer
par l'equivalence dans B
merci pour ta patience

"AV" a pensé très fort :
:-?
euh ? dans ton exemple il manque pas un c3


c3 c'est c2.Offset(0, 1)

T'as testé ?

AV


--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
patrick.lyon
euh , j'ai retesté en agrandissant les plages
histoires qu'il trouve des corespondances
et ça a l'air de fonctionner
lentement mais de fonctionner

"AV" avait soumis l'idée :
:-?
euh ? dans ton exemple il manque pas un c3


c3 c'est c2.Offset(0, 1)

T'as testé ?

AV


--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


1 2