VBA - Recherche et remplace plusieurs mots possibles

Fredox

XLDnaute Occasionnel
Bonjour le Forum,

J'ai de nouveau besoin d'aide:
Je cherche à rechercher dans une colonne (A) un texte que l'on retrouvrais dans une liste de mot en "index!A2:A10" et le remplacer par ce qu'il y aurais en "index!B2:B10" (toujours remplacer A2 par B2, B2 par B3...)

J'imagine que c'est possible ?

Merci
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, Fredox (re)

•>Fredox
Oui c'est possible
1) Il suffit pour commencer de chercher dans les archives du forum
(comme le conseille judicieusement la charte du forum)
2) Dans cette même charte (O surprise ;)), un second conseil qui suivi accèlère grandement la résolution de la question: téléverser un petit classeur Exemple.
 

Fredox

XLDnaute Occasionnel
Bonsoir Staple1600,

Décidément, tu es très actif ;)

A me croire si tu le veux bien, j'ai cherché sans succes (surement un terme me manquant).
Je persisterais alors.

En revanche, pour téléverser, je vais devoir prendre mon dico.

Merci
 

Staple1600

XLDnaute Barbatruc
Re

Uploader si tu préféres
(Mais alors tu n'as pas lu la charte pour ne point savoir ce que téléverser veut dire ;))

PS: Je ne suis pas actif. C'est le confinent.
Je ne suis pas téléphage, donc je me retrouve sur le forum plus qu'à l'accoutumée.
 

Fredox

XLDnaute Occasionnel
Bonjour ,

J'ai fais une recherche sur le forum, je n'ai rien trouvé.
Du coup j'ai fais un petit fichier que je téléverse pour essayer que ce soit plus parlant.

Merci
 

Pièces jointes

  • Classeur1.xlsm
    13.9 KB · Affichages: 8

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Fredox

•>Fredox
Un petit test (OK chez moi avec ta PJ)
Affectes la macro ci-dessous à ton bouton.
VB:
Sub Test_OK()
Dim R As Range: Set R = Cells(ActiveCell.Row, 3)
X = Application.VLookup(R, [BAZ], 2, 0)
If Not IsError(X) Then R(1, 2) = X
End Sub
NB: Si tu es curieux, tu ne devrais pas manquer de me demander qu'est ce donc que [BAZ] ;)
Un indice: CTRL+F3
 

Fredox

XLDnaute Occasionnel
Oui, ça c'est fait, impec. Merci
Le problème (pour moi) c'est qu'il faut que je clique manuellement sur C2, puis lance la macro qui fait son effet. Ensuite je sélectionne C3 puis bouton, C4 puis bouton... pas possible d'automatiser jusqu’à dernière_ligne de C ?

J’essaie de bricoler avec For X = 2 to dernière_ligne, mais je n'y arrive pas.


Merci
 

Staple1600

XLDnaute Barbatruc
Re

•>Fredox
C'était pas compliqué à adapter, non ? ;)
Code à mettre dans le code de Feuil1
(et pas dans un module standard)
VB:
Private Sub Worksheet_Change(ByVal T As Range)
If T.Row = 1 Then Exit Sub
If Not Intersect(T, [C:C]) Is Nothing Then
X = Application.VLookup(T, [BAZ], 2, 0)
If Not IsError(X) Then T(1, 2) = X
End If
End Sub
Test OK chez moi, sur ta PJ.
 

Staple1600

XLDnaute Barbatruc
Re

Private Sub Worksheet_Change est une procédure événementielle :rolleyes:
Donc le Private n'est pas là par hasard.

Pour le reste, mouille le maillot, camarade ! ;)
Il te suffit de relire tes propres archives !!
Tout le nécessaire pour adapter est déjà là. ;)
 

Fredox

XLDnaute Occasionnel
Oui, remplacer sur la zone un texte X par un Texte Y, je vais pouvoir le faire.
En revanche, controler sir le texte X est compris dans la BAZ (en C) et le remplacer par le texte Y (en D), je ne suis pas capable de le faire.

Cela me permettrai de travailler sur une liste de mots importante.

Merci
 

Discussions similaires

Réponses
16
Affichages
1 K

Statistiques des forums

Discussions
312 194
Messages
2 086 064
Membres
103 110
dernier inscrit
Privé