Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme resultat fonction find dans macro

1 réponse
Avatar
nico
Bonjour,

J'ai créé une macrocomplémentaire dont voici le code

Sub Recherche_remplace()

Set savclass = ActiveWorkbook
Set savfeuil = ActiveSheet

Application.ScreenUpdating = False

Workbooks.Open "c:\source.xls"

savclass.Activate
savfeuil.Select

For Each cellule In ActiveSheet.UsedRange
If Not cellule.FormulaLocal = "" Then
Set c =
Workbooks("source.xls").Worksheets("Feuil1").Range("B1").EntireColumn.Find(cellule.Value, LookIn:=xlValues, searchorder:=xlByRows)
If Not c Is Nothing Then
cellule.FormulaLocal =
Workbooks("source.xls").Worksheets("Feuil1").Range("C" & c.Row).Value
End If
End If
Next cellule

Workbooks("source.xls").Close

Application.ScreenUpdating = True

TitleMsgBox = "Fin de traitement"
MsgBox "Traitement Terminé Sans Erreur", 64, TitleMsgBox
End Sub



elle doit me permettre de rechercher dans la feuille active les termes qui
sont présent dans la colonne B d'un fichier ici nomé source.xls et de
remplacer ces termes par ceux de la colonne C.

C a marche mais bizarrement
exemple

fichier sousce .xls

colonne B colonne C

J150867 TITI
a999 tonton
b43 toto

feuille a traiter:

avant : après application de la macro
J150867 TITI
a999 tonton
b43 toto

la c'est ok c'est ce que je veux

mais si le fichier source devient:

colonne B colonne C

J150867 TITI
aj999 tonton
b453 toto

le resultat sera

avant : après application de la macro
J150867 TITI
aj999 TITI
b453 TITI

car dans aj999 il y a le j de j150867 etque dans b453 il y a le 5 de j150867.

comment faire pour rechercher l'expression complète de la cellule et non le
premier caractère qu'il trouve dans la cellule.

suis-je clair???

si qqn a une piste

je vous en remercie d'avance


--
nico

1 réponse

Avatar
Elliac
Bonjour,

Rajoute : LookAt :=xlWhole à ton Find

Camille

"nico" wrote:

Bonjour,

J'ai créé une macrocomplémentaire dont voici le code

Sub Recherche_remplace()

Set savclass = ActiveWorkbook
Set savfeuil = ActiveSheet

Application.ScreenUpdating = False

Workbooks.Open "c:source.xls"

savclass.Activate
savfeuil.Select

For Each cellule In ActiveSheet.UsedRange
If Not cellule.FormulaLocal = "" Then
Set c =
Workbooks("source.xls").Worksheets("Feuil1").Range("B1").EntireColumn.Find(cellule.Value, LookIn:=xlValues, searchorder:=xlByRows)
If Not c Is Nothing Then
cellule.FormulaLocal =
Workbooks("source.xls").Worksheets("Feuil1").Range("C" & c.Row).Value
End If
End If
Next cellule

Workbooks("source.xls").Close

Application.ScreenUpdating = True

TitleMsgBox = "Fin de traitement"
MsgBox "Traitement Terminé Sans Erreur", 64, TitleMsgBox
End Sub



elle doit me permettre de rechercher dans la feuille active les termes qui
sont présent dans la colonne B d'un fichier ici nomé source.xls et de
remplacer ces termes par ceux de la colonne C.

C a marche mais bizarrement
exemple

fichier sousce .xls

colonne B colonne C

J150867 TITI
a999 tonton
b43 toto

feuille a traiter:

avant : après application de la macro
J150867 TITI
a999 tonton
b43 toto

la c'est ok c'est ce que je veux

mais si le fichier source devient:

colonne B colonne C

J150867 TITI
aj999 tonton
b453 toto

le resultat sera

avant : après application de la macro
J150867 TITI
aj999 TITI
b453 TITI

car dans aj999 il y a le j de j150867 etque dans b453 il y a le 5 de j150867.

comment faire pour rechercher l'expression complète de la cellule et non le
premier caractère qu'il trouve dans la cellule.

suis-je clair???

si qqn a une piste

je vous en remercie d'avance


--
nico