remplacer un nombre par un mot

Pour toutes vos questions à propos d'Excel ...

remplacer un nombre par un mot

Messagepar bayard » 24 Jan 2012, 15:03

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
Avatar de l’utilisateur
bayard
Membre habitué
 
Messages: 88
Inscription: 17 Oct 2009, 10:51
Localisation: Saint Yzan de Soudiac 33
Version Excel: 2003 FR

Re: remplacer un nombre par un mot

Messagepar Banzai64 » 24 Jan 2012, 15:36

Bonjour
Cela peut se faire .... mais en VBA

Un fichier représentatif de ton fichier réel faciliterait la réalisation de la macro
Image
Avatar de l’utilisateur
Banzai64
Passionné d'Excel
 
Messages: 4616
Inscription: 21 Nov 2010, 16:42
Localisation: Jurançon
Version Excel: 2003 FR

Re: remplacer un nombre par un mot

Messagepar dubois » 24 Jan 2012, 15:39

Bonjour,

c'est tout à fait possible, un simple "RechercheV" devrait suffire,
envoie une feuille exemple pour confirmer.

édit: salut Banzai, pas vu !

Amicalement
Claude
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9256
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: remplacer un nombre par un mot

Messagepar Bigdams » 24 Jan 2012, 15:58

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...

Code: Tout sélectionner

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

 
Bigdams
Membre habitué
 
Messages: 92
Inscription: 02 Août 2011, 18:29
Version Excel: 2007 FR

Re: remplacer un nombre par un mot

Messagepar Banzai64 » 24 Jan 2012, 16:31

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
Code: Tout sélectionner
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
Code: Tout sélectionner
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
 
Image
Avatar de l’utilisateur
Banzai64
Passionné d'Excel
 
Messages: 4616
Inscription: 21 Nov 2010, 16:42
Localisation: Jurançon
Version Excel: 2003 FR

Re: remplacer un nombre par un mot

Messagepar dubois » 24 Jan 2012, 16:58

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

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

Claude
Fichiers joints
bayard_RechercheV.xls
(41 Kio) Téléchargé 6 fois
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9256
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: remplacer un nombre par un mot

Messagepar allan59160 » 25 Jan 2012, 15:23

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 !
allan59160
Utilisateur occasionnel
 
Messages: 19
Inscription: 23 Nov 2011, 09:57
Version Excel: xp FR, 2007 FR

Re: remplacer un nombre par un mot

Messagepar Banzai64 » 25 Jan 2012, 15:33

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
Image
Avatar de l’utilisateur
Banzai64
Passionné d'Excel
 
Messages: 4616
Inscription: 21 Nov 2010, 16:42
Localisation: Jurançon
Version Excel: 2003 FR

Re: remplacer un nombre par un mot

Messagepar allan59160 » 25 Jan 2012, 15:36

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.
allan59160
Utilisateur occasionnel
 
Messages: 19
Inscription: 23 Nov 2011, 09:57
Version Excel: xp FR, 2007 FR


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google Adsense [Bot] et 5 invités