Remplacement automatique

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fileofish

XLDnaute Occasionnel
Bonjour tout le monde


Je bloque sur quelque chose

Je souhaite faire un remplacement automatique

J'ai 2 onglets
- un onglet Liste avec des noms
- un onglet avec mes données

Exemple
Dans l'onglet Liste j'ai PHILIPPE; JEAN; PATRICK ; ....
=> Dans la macro cela s'appelle Noms
Dans l'onglet Données je peux avoir PHILIPPE 1 ; FEV_PHILIPPE; ...


Je souhaite remplacer tout ce qui contient PHILIPPE dans l'onglet Données par PHILIPPE de l'onglet Liste
Ce qui revient à remplacer *PHILIPPE* par PHILIPPE

J'ai un soucis dans la macro ça bloque ici
Selection.Replace What:="" * "& Noms &" * "",



Est qu'il est possible de rajouter la condition suivante si le nom présent dans Liste n'est pas présent dans l'onglet données il passe au suivant


Sub Remp1()


Windows("ED.xlsm").Activate

Sheets("Liste").Activate
Range("A1").Select

While ActiveCell.Value <> 0
Noms = ActiveCell

Windows("ED.xlsm").Activate
Sheets("Données").Select
Columns("J:J").Select
Selection.Replace What:="" * "& Noms &" * "", Replacement:="PHILIPPE", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Windows("ED.xlsm").Activate
Sheets("Liste").Activate
ActiveCell.Offset(1, 0).Select

Wend


End Sub



Merci beaucoup
Philippe
 
Dernière édition:
Re : Remplacement automatique

Bonjour


une autre solution (sûrement pas la plus rapide):
la recherche s'arrête au premier nom similaire dans la feuille Données
Code:
Sub Remp1()
 Dim DerLig, Noms, i, Trouve

 DerLig = Sheets("Liste").Range("A" & Rows.Count).End(xlUp).Row
 
 For i = 1 To DerLig
    Noms = Sheets("Liste").Cells(i, 1).Value
    Set Trouve = Sheets("Données").Columns("J:J").Find(What:=Noms, LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False)
    If Not Trouve Is Nothing Then
        Sheets("Feuil1").Range(Trouve.Address) = Noms
    End If
 Next
End Sub

A+
 
Re : Remplacement automatique

Merci Paf pour ta réponse

La macro marche en partie mais c'est entièrement de ma faute car je n'ai pas été assez précis.

Onglet Liste : Comprend environ 60-70 noms
Onglet Données : Contient + de 6000 lignes

EX : Le prénom Philippe est présent 1 seul fois dans feuille dans la liste
mais il peut apparaître des dizaines de fois sous plusieurs déclinaisons différentes dans l'onglet données

Lorsque je lance la macro :
- Si il trouve il change et passe au prochain nom (dans ce cas le changement maximum 1 fois : il ne va pas jusqu'à la fin de la colonne J)
- Si il trouve pas il passe au prochain nom

Là où il manque quelque chose c'est dans le 1er cas
- Si il trouve il change (mais cherche encore jusqu'à la fin de la colonne J (de l'onglet données)) et passe au prochain nom


Si je ne suis pas claire n'hésite pas
Merci encore
Philippe
 
Re : Remplacement automatique

Re

c'est bien ce que je précisait au post #2:
la recherche s'arrête au premier nom similaire dans la feuille Données

Une recherche sur Find dans l'aide vous aurait donné la solution.


Code:
Sub Remp1()
 Dim DerLig, Noms, i, Trouve, FirstAddress

 DerLig = Sheets("Liste").Range("A" & Rows.Count).End(xlUp).Row
 With Sheets("Données").Columns("A:A")
 
 For i = 1 To DerLig
    Noms = Sheets("Liste").Cells(i, 1).Value
    Set Trouve = .Find(What:=Noms, LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False)
    If Not Trouve Is Nothing Then
        FirstAddress = Trouve.Address
        Do
            .Range(Trouve.Address) = Noms
            Set Trouve = .FindNext(Trouve)
        Loop While Not Trouve Is Nothing And Trouve.Address <> FirstAddress
    End If
  Next
 End With
End Sub

J'en ai profité pour corrigé le Sheets("Feuil1") qui s'était égaré.

Bonne suite
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
503
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
905
Réponses
2
Affichages
541
Réponses
1
Affichages
301
Retour