Changement automatique de valeur [Résolu]

fredtu

XLDnaute Junior
Bonjour,
J'ai recherché mais je n'ai pa trouvé la réponse à ma question.

Est-il possible de changer automatiquement la valeur d'une cellule en fonction de son contenu ?

Je m'explique :

Dans ma colon, j'ai des noms et je souhaiterai qu'Excel m'affiche en correspondance la ville de résidence.
Exemple :
A
Jacques
Denis
Pierre
François
Jean
Max

Je voudrai qu'automatiquement Jacques et Denis soient modifiés en Lille, Pierre et François en Roubaix, Jean et Max en Tourcoing.

J'ai cherché du côté de la mise en forme automatique mais la mise en forme des cellules ne correspond pas à ma demande.

Merci d'avance pour votre aide.
 

job75

XLDnaute Barbatruc
Bonjour fredtu, bonjour chère ânesse,

Il suffit d'exécuter cette macro (pour la colonne A) :
Code:
Sub Changer()
Dim a, c As Range, x As Variant
a = [{"Jacques","Lille";"Denis","Lille";"Pierre","Roubaix";"François","Roubaix";"Jean","Tourcoing";"Max","Tourcoing"}]
On Error Resume Next
For Each c In [A:A].SpecialCells(xlCellTypeConstants, 2)
  x = Application.VLookup(c, a, 2, 0)
  If Not IsError(x) Then c = x
Next
End Sub
Elle peut être exécutée quand et comme vous voulez.

Par exemple en l'appelant dans une macro évènementielle Worksheet_Change ou Selection_Change.

A+
 

job75

XLDnaute Barbatruc
Re,

Autre solution, si les noms à remplacer peuvent être une partie des textes des cellules :
Code:
Sub ChangerPartie()
Dim a, i As Byte
a = [{"Jacques","Lille";"Denis","Lille";"Pierre","Roubaix";"François","Roubaix";"Jean","Tourcoing";"Max","Tourcoing"}]
For i = 1 To UBound(a)
  [A:A].Replace a(i, 1), a(i, 2), xlPart
Next
End Sub
A+
 

JCGL

XLDnaute Barbatruc
Bonjour à tous,
Salut ma très chère G.,
Salut mon cher Gérard,

Fredtu : quand tu te décideras à déposer un fichier tu découvriras certainement d'autres possibilités. En particulier une possibilité de mettre les concordances dans une feuille sur 2 colonnes.

Bises +++ 00
A+++ mon Ami
A+ à tous
 

fredtu

XLDnaute Junior
Bonjour à tous,

Merci d'avoir pris le temps de me répondre et à Job75 de me proposer une réponse qui marche parfaitement.
Toutefois, comme je veux laisser l'accès à d'autres personnes qui ont encore moins de compétences sous excel que moi, et pensent que VBA est un groupe de variété américain, j'ai opté pour une autre solution : créer une feuille avec 2 colonnes. La première avec les noms, la seconde avec les villes de correspondances. Dans mon tableau, j'ai rajouté une une colonne avec une formule de type =SI(C3="";"";RECHERCHEV(C3;TG!$A$1:$B$249;2;0)), qui me permet de rapatrier la ville et me facilite la gestion via un TCD.

Encore merci pour vos réponses.
 

Discussions similaires

Statistiques des forums

Discussions
312 898
Messages
2 093 394
Membres
105 723
dernier inscrit
jopi