Remplacer un nombre par un mot

Bonjour,

Un petit problème qui me chagrine.

Supposons que dans une colonne j'ai les N° de département, dans une autre les noms des départements.

Est il possible que, dans une autre feuille du même classeur, en écrivant le N° d'un département dans une cellule bien définie ce soit le nom du département qui s'inscrive.

EX:: si j'écris "27" il soit marqué "EURE".

Merci

Bonjour

Cela peut se faire .... mais en VBA

Un fichier représentatif de ton fichier réel faciliterait la réalisation de la macro

Bonjour,

c'est tout à fait possible, un simple "RechercheV" devrait suffire,

envoie une feuille exemple pour confirmer.

édit: salut Banzai, pas vu !

Amicalement

Claude

Salut,

Vous répondez plus vite que moi.

Si tu as un fichier excel avec l'onglet 1 : Feuil1 qui contient

Colonne A : Num Departement

Colonne B : Nom departement

de la ligne 1 a 101 (101 departement)

Alors dans une autre feuille excel, il faut entrer dans l'editeur VBA (ALT F11), puis copier coller le code suivant :

Dis moi si ca marche.

N'hesitez pas a critiquer le code, il y a tjs une meilleur méthode....

Avec une formule recherchev je suis preneur, je ne vois pas la solution...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim num_dep As String
Dim nom_dep As String
Dim c As Range

Dim liste_sheet As Worksheet
Set liste_sheet = ActiveWorkbook.Worksheets("Feuil1")

If Target.Cells.Column = 1 Then

    'On recherche l'equivalence dans l'autre feuille
    For Each c In liste_sheet.Cells.Range("A1", "A101")

        If Cells.Range(Target.Address) = c.Value Then

           Cells.Range(Target.Address).Value = liste_sheet.Cells(c.Row, 2)

        End If
    Next
End If
End Sub

Bonjour

@Claude

D'après ce que j'avais compris c'est la même cellule que le résultat doit apparaitre

Deux exemples en prenant les conditions édictées par Bigdams

La 1ère avec RECHERCHEV

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel
Dim liste_sheet As Worksheet

  Set liste_sheet = Sheets("Feuil1")

  If Target.Column = 1 Then
    Cel = Application.VLookup(Target, liste_sheet.Columns("A:B"), 2, 0)
    If Not IsError(Cel) Then
      Application.EnableEvents = False
      Target = Cel
      Application.EnableEvents = True
    Else
      MsgBox "Département avec le numéro " & Target & " non trouvé"
    End If
  End If
End Sub

2ème solution avec un simple Find

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim liste_sheet As Worksheet

  Set liste_sheet = Sheets("Feuil1")

  If Target.Column = 1 Then
    Set Cel = liste_sheet.Columns(1).Find(what:=Target, LookIn:=xlValues, lookat:=xlWhole)
    If Not Cel Is Nothing Then
      Application.EnableEvents = False
      Target = Cel.Offset(0, 1)
      Application.EnableEvents = True
    Else
      MsgBox "Département avec le numéro " & Target & " non trouvé"
    End If
  End If
End Sub

re,

EX:: si j'écris "27" il soit marqué "EURE".

effectivement, dans la solution que je voyais la formule RECHERCHEV était à coté

Claude

115bayard-recherchev.zip (11.24 Ko)

Bonjour,

moi j'aurai tout simplement fait un " =SI(Feuil!1A1=01;"Ain";SI(Feuil!1A1=02;"Aisne" ....etc

C'est un peu plus long certes mais la complexité y est fortement réduite.

Bonne journée !

Bonjour

Sous toute réserve

Je ne crois pas que tu pourrais imbriquer 101 SI dans une formule

Et je ne sais si c'est plus ou moins complexe qu'un RECHERCHEV

Oui c'est vrai que sa fait énorme ..

J'en est essayée une récemment, j'avais 117 conditions mais elle comportaient des " SI " , " ET " et " OU " .

Cela reste a voir et à tester.

Rechercher des sujets similaires à "remplacer nombre mot"