Remplacer mots dans une plage

  • Initiateur de la discussion Initiateur de la discussion Chris57
  • Date de début Date de début

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 !

Chris57

XLDnaute Occasionnel
Bonjour à tous

j'ai une plage nommée newPLAGE qui contient des textes divers

je souhaite remplacer certains mots de cette plage par d'autres et ces mots sont situés dans 2 autres plages : exLISTEmots et newLISTEmots

voici la macro que j'ai écrite pour ça mais c'est très très long car la newPLAGE contient 1800 lignes
Code:
            For Each x In newPLAGE
            For Each y In exLISTEmots
            For Each Z In newLISTEmots
                If x <> "" And y <> "" Then                  
                    x = Replace(x, y, z)
                End If
            Next
            Next
            Next

y a t'il moyen d'accélérer ce genre de procédure ?
 
Re : Remplacer mots dans une plage

Bonjour à tous


Sur mon propre fichier de test, cela fonctionne
(Mais j'ai testé avec des données très basiques)
Donc une macro qui emploi des Arrays
(on pourrait aussi traiter la chose avec un Dictionnary)

Code:
Sub remplacer()
Dim ta, tb, r As Range, i As Byte
Set r = Feuil1.Columns(1).SpecialCells(xlCellTypeConstants, 2)
ta = Sheets("Words").Range("B4:B20").Value: tb = Sheets("Words").Range("C4:C20").Value
For i = LBound(ta) To UBound(ta)
r.Replace What:=ta(i, 1), Replacement:=tb(i, 1)
Next i
End Sub
 
Re : Remplacer mots dans une plage

Merci Staple !!! La durée d’exécution est passée de 250 sec avec mon premier code à 13 seconde avec un autre code optimisé que j'avais fait entre temps à maintenant 0,6 sec avec ton code !!

de la balle !!!!


MERCI !
 
Re : Remplacer mots dans une plage

Re

Chris57
Ce qui serait bien, c'est que tu postes ton dernier code VBA optimisé, non ?
1) pour satisfaire ma curiosité
2) pour les autres membres du forum que cela pourrait intéresser.
3) parce que c'est le principe de base d'un forum: le partage des connaissances
 
Re : Remplacer mots dans une plage

ah tu parles du code "intermédiaire" ! Je l'ai effacé, il n'avait aucun intérêt vu que le tiens est 20 fois plus rapide !
J'avais juste remplacé les for each par des for i, rien de bien innovant !
 
- 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

Réponses
3
Affichages
903
Retour