VBA chercher / vider cellules / remplacer

Bonjour,

J'ai un fichier Excel avec plusieurs erreurs aux noms p.e.x.

Les errurs suivantes:

DA GRAC Alex

DA GRCA Ale

DA GRAÇ Ale

DA GRA

DA GRAÇA

Remplacer par:

DA GRAÇA Alex

Mais le suivant script il me donne le résultat suivant:

DA GRAC Alex

DA GRCA Ale

DA GRAÇ Ale

DA GRAÇA Alex

DA GRAÇA

Sub FindReplaceAll_CountReplacements()

Dim sht As Worksheet
Dim fnd As Variant
Dim rplc As Variant
Dim ReplaceCount As Long

fnd = "DA GRA"
rplc = "DA GRAÇA Alex"

For Each sht In ActiveWorkbook.Worksheets

  ReplaceCount = ReplaceCount + Application.WorksheetFunction.CountIf(sht.Cells, "*" & fnd & "*")

  sht.Cells.Replace What:=fnd, Replacement:=rplc, _
    LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
    SearchFormat:=False, ReplaceFormat:=False

Next sht

Merci

Bonjour,

Difficile de comprendre exactement sans fichier test.

  • Les cellules contiennent beaucoup d'info ? avant et après la valeur cherchée ? ( sht.Cells, "*" & fnd & "*" )
  • fnd = "DA GRA" ok donc il va jamais trouver DA GRCA Ale

Voila ici le fichier correcte

1beispiel.xlsm (13.79 Ko)

Re,

Je vois bien un fichier exemple sans macro et dont les données n'ont pas de rapport avec la demande

initiale ?

(Remplacer par:

DA GRAÇA Alex)

Tu expliques ce que tu veux faire avec ton exemple exactement ?

Ups excuser moi voila le fichier correcte

3beispiel.xlsm (13.79 Ko)

Ok donc pour commencer ; comme je le disais plus haut rechercher * DA GRA * ne fonctionnera pas

puisqu'il y a déjà une erreur sur DAGRC

Cette petite macro devrait fonctionner

Sub Macro1()
'
' Macro1 Macro
''
    Cells.Select
    Selection.Replace What:="DA GR*", Replacement:="DA GRACA Alex", LookAt:= _
        xlPart, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub
2beispiel-1.xlsm (18.96 Ko)
Rechercher des sujets similaires à "vba chercher vider remplacer"