Comment convertir un code en clair en excel

Résolu
debutante-excel Messages postés 195 Statut Membre -  
debutante-excel Messages postés 195 Statut Membre -
Bonjour,

Tout d'abord je débute en excel, et je vois pas trop comment m'y prendre.

Je reçois des feuilles excel dont les certaines cellules sont remplies avec des codes.

Ces codes correspondent à un nom en clair. J'ai environ 100 codes.

j'ai une liste de correspondance de chaque code avec son nom en clair.

je voudrai lorsque que je copie la cellule de la feuille source dans ma feuille et dans sa cellule que le code et le nom en clair s'inscrive dans ma cellule.

Un petit exemple : Je reçois une feuille et dans la cellule A1 il y a "MATH"

Si je copie cette cellule de la feuille et que je la colle dans la cellule de ma feuille je voudrai que dans ma cellule il y ait MATH Mathématique.

Merci d'avance à toutes et tous qui vont m'aider.
Configuration: Windows XP
Internet Explorer 7.0

31 réponses

  • 1
  • 2
  1. debutante-excel Messages postés 195 Statut Membre 11
     
    Bonsoir Furtif,

    Non pas du tout, c'était juste un exemple.

    En fait je peux reformuler ma demande.

    je voudrai lorsque que je saisi ce que j'appelle un code en fait qui est généralement composé de 3 lettres et de 2 chiffres que la cellule se remplisse du code saisi ainsi que le nom en clair.

    Exemple :

    je saisi dans ma celulle VIL01

    je fais ENTER

    et dans ma celulle j'ai VIL01 Marseille

    je saisi TRU60

    et dans ma cellule j'ai TRU60 Saint quentin en yvelines.

    Donc le code n'est pas le début des noms en clair.

    J'espère que c'est plus clair pour tout le monde.

    Je rappelle que j'ai une centaine de code et donc une centaine de nom en clair associé que j'ai en liste sur une feuiille excel.

    Merci de vos réponses.

    Bonne soirée.
    2
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonjour

      Difficile de modifier le libellé d'un cellule selon l'entrée

      une seule solution à mon sens, mais je ne suis pas le meilleur sur le sujet:

      Faire une liste des codes+libellé(voir ci après) au dessus de la 1° ligne de code à rentrer, dans la même colonne et masquer les lignes correspondantes selon:
      Sélectionner les lignes, barre des taches / Format / Ligne / Masquer
      Ensuite
      Barre des tâches / Outil / Option/ Onglet modification/
      Cocher la case:saisie semi automatique de cellule

      Avec cette option Excel, ira chercher dans la liste supérieure l'appelation complète dés que vous aurez écrit la partie
      du texte complet correspondante à une seule option de cette liste et l'inscrira automatiquement

      Par ailleurs
      Je pense que vous pourriez, sur une feuille masquée ou dans deux colonnes loin du champ utilisé, rentrer:

      une colonne avec la liste des codes
      une colonne avec en correspondance la liste des nlibellés

      Vous avez ensuite deux options pour votre tableau, mais il vous faudra toujours trois colonnes.

      Donc, admettons:
      Votre entrée sur Colonne A,B,C,
      En colonne X:
      liste des codes
      En colonne Y
      le tout à partir de la ligne 1jusqu'à la ligne 100
      Correspondance des libellés

      1° Solution
      Colonne A, vous rentrez les codes
      Encolonne B,B1 la formule
      =A1&RECHERCHEV(A1;$X$1:$Y$100;2;0)
      dans ce cas vous avez le code en A1 et le code + le libellé en colonne B

      2° solution
      en A1 le code
      En B1:
      =RECHERCHEV(A1;$X$1:$X$100;2;0)
      dans ce cas, vous avez le code en A et le libellé seulement en B
      Bien entendu ces formules sont à tirer sur la hauteur de votre champ
      Attention aux signes: ( & ; $ : )

      En dernier lieu vous pouvez aussi:
      créer une liste en regroupant les codes et les libellés, simplement avec la formule:=Cellule code& cellule libellé
      La nommer:
      Sélectionner le champ / barre des tâches / Insertion / Nom / metter le nom souhaité (admettons:liste)
      Dans votre colonne de code à remplir:
      "autoriser":liste
      Source:rentrez le nom de vote liste:LISTE
      OK
      Ainsi quand vous sélcetionnerez une cellule de ce champ, une liste déroulante des codes completés s'affiche et vous n'avez plus qu'à cliquer sur la réf choisie

      0
  2. Furtif Messages postés 9956 Statut Contributeur 933
     
    Salut

    Est-ce que tes "codes" sont toujours les premières lettres du nom complet ?

    ex : MATH pour Mathématiques, PHILO pour Philosophie ... Etc. ?
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    re.... :-)

    A part une macro pour ton truc je ne vois pas.
    Sélectionne la zone que tu veux contrôler et nomme là zoneValidation.
    Prépare ta liste de codes et de libellés (2 colonnes avec titres) dans un coin et nomme la 1ère cellule codes.
    Les colonnes à gauche et à droite de ta liste doivent être vides ainsi que les 2 cellules après la dernière ligne.
    Ta liste peut être dans une autre feuille.

    Dans le code de ta feuille colle :
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim s As String, i As Long
        Dim codes()
        If Intersect(Target, Range("zoneValidation")) Is Nothing Then Exit Sub
        If TypeName(Target.Value) <> "String" Then Exit Sub
        s = UCase(Target.Value)
        codes = Range("codes").CurrentRegion
        For i = 2 To UBound(codes)
            If s = UCase(codes(i, 1)) Then
                Application.EnableEvents = False
                Target.Value = codes(i, 2)
                Beep
                Application.EnableEvents = True
                Exit For
            End If
        Next i
    End Sub
    

    J'ai mis un bip lorsque la conversion est trouvée mais tu peux supprimer cette ligne
    Voici un exemple:
    http://www.cijoint.fr/cjlink.php?file=cj200802/cij8189101485714.xls

    Dis moi si ça convient
    Bonne soirée
    eric
    0
  4. debutante-excel Messages postés 195 Statut Membre 11
     
    RE,

    Donc dans une feuille excel j'ai préparé mes références (codes et libellés).

    J'ai laissé la colonne A vide

    dans la colonne B j'ai mis un titre en B1 CODES

    dans la colonne C j'ai mis un titre en C1 LIBELLES

    en B2 commence mes codes et ainsi de suite B3, B4, B5.

    en C2 commence mes libellés et ainsi de suite C3, C3, C4.

    j'ai sélectionné la celulle B1 (qui est mon titre code que j'ai nommé) "Codes".

    ensuite dans ma feuille excel j'ai sélectionné la partie de la colonne que je veux controler et je l'ai nommé "zoneValidation" par insertion nom définir zoneValidation.

    Bon, jusque là je pense que j'ai suivi à la lettre tes instructions.

    J'ai cliqué sur ton lien et j'ai téléchargé.

    Quand je fait Outils Macro Macros je vois qu'il y a une macro cij8189101485714.xls!Macro1

    Donc je suis sur une celulle de ma zone de validation. Je saisi un code et voilà il y a rien de plus dans ma cellule.

    Comment je dois faire pour coller le code ??????

    j'ai du oublier quelque chose !!!!!!!!!

    je suis vraiment nulle lolll.

    Eriiiiiiiiiiiiiiiiiiiic au se courssssssss
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. debutante-excel Messages postés 195 Statut Membre 11
     
    Re,

    Bon j'ai trouvé comment coller le code dans Outils Macro Visual basic Editor.

    j'ai regardé dans ton exemple.

    quand je saisi un code dans une cellule j'ai l'erreur suivante

    erreur d'excéecution 1004 la méthode 'range' de l'objet '_Worksheet' a échouée

    et la ligne suivante est en jaune

    codes = Range("codes").CurrentRegion

    Bon là je suis bloquée, grrrrrrrrrrrrr j'en suis pas loin.

    Merci de votre aide.
    0
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Hé bé, ça t'a fait passer une nuit blanche... Quelle ténacité :-)
    C'est bien dans ton classeur que tu as l'erreur et le classeur exemple fonctionne bien pour toi ?
    Fais menu "edition / atteindre', as-tu bien 'codes' dedans et ta feuille avec la liste est-elle bien dans le même classeur que la macro (tu peux la masquer ensuite) ?
    Je l'ai fait sur excel 2003...

    Sinon, rien à voir avec ton pb, mais tu pouvais démarrer ta liste en colonne A. Le but était qu'il n'y ait pas de valeur à gauche, à droite, au-dessus et au-dessous de ta liste pour que le .currentregion retourne la liste et rien d'autre.

    eric
    0
  8. débutante-excel
     
    Bonjour eriiiiiiiiiic,

    ouiiiiii ca marche super avec ton exemple et c'est exactement ca ce que je veux faire.

    en fait dans ton exemple si on met les codes et le libellé sur une autre feuille ca ne marche plus

    et c'est ca mon problème je pense.

    voilà ou j'en suis

    merci de votre aide.
    0
  9. débutante-excel
     
    RE eriiic,

    Si tu passes sur le forum fais moi signe.

    je trouve pas pkoi ca amrche pas avec mon exemple.
    0
  10. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    re,

    ok je vois mais là je sors...
    peut-être ce soir
    eric
    0
  11. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour débutante-excel,

    En fait ton problème vient du fait que VBA ne peux pas gérer le "range" multi-feuilles si tu es sur une feuille.

    Tu coupes tout le code d'Eric, dans la feuille, hormis la première et la dernière ligne et tu le colles dans thisworkbook entre ces deux lignes et tu vas voir que la fonction est opérationnelle en multi-feuilles.
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    
    End Sub
    

    bon test et @+
    0
  12. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Merci gb,
    mais encore un tit problème, sûrement dû au .currentregion qui doit vouloir la feuille active mais je repars et je n'ai pas le temps de tester...
    Si tu as le temps de lui ajouter stp (avec screenupdating peut-être..), sinon je verrai plus tard :-)
    Merci
    bonne soirée tout le monde
    eric
    0
  13. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour eric,

    Tu as dû avoir le problème en déplaçant la liste et en fait, il suffit de rajouter en tête de la macro :
       If Target.Count > 1 Then Exit Sub
    

    afin d'éviter de passer sur les target.value qui ne fonctionnent pas en multicellules.
    0
  14. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    re,
    heuuuu, en fait j'ai eu un pb en déplaçant le code... il n'avait pas bougé
    Voilà ce que c'est de faire en 2 min... :-)
    Je laisse ton ajout qui effectivement peut servir, merci.

    Donc, débutante, ton code à coller dans thisworkook :
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Dim s As String, i As Long
        Dim codes()
        If Intersect(Target, Range("zoneValidation")) Is Nothing Then Exit Sub
        If Target.Count > 1 Then Exit Sub
        If TypeName(Target.Value) <> "String" Then Exit Sub
        s = UCase(Target.Value)
        codes = Range("codes").CurrentRegion
        For i = 2 To UBound(codes)
            If s = UCase(codes(i, 1)) Then
                Application.EnableEvents = False
                Target.Value = codes(i, 2)
                Beep
                Application.EnableEvents = True
                Exit For
            End If
        Next i
    End Sub
    


    et l'exemple:
    http://www.cijoint.fr/cjlink.php?file=cj200802/cij7907429105854.xls

    eric
    0
  15. débutante-excel
     
    Bonsoir,

    grrrr ca fait 3 fois que je poste et que ca amrche pas.

    me revoilààààààà.

    Bon, Eric merci bcppppp ca avance bien mais encore des soucis.

    Dans ton exemple ca plante quand on veut rajouter des codes dans la liste.

    Et autre problème, aie aie aie j'ai 2 zones dites zoneValidation.

    un exemple.

    http://www.cijoint.fr/cjlink.php?file=cj200802/cij1170539325903.xls

    encore merci pour votre aide.
    0
  16. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Pour le 2nd pb tu selectionnes l'ensemble de tes zones avant de définir ton nom, elles peuvent être discontinues.
    Le 1er pb me laisse dubitatif, à-priori excel ne sait pas calculer une intersection sur 2 feuilles différentes.
    Tu peux le parer en mettant
    If Sh.Name <> "Feuil1" Then Exit Sub
    en 1ère ligne de code. "Feuil1" étant le nom de la feuille où tu fais la saise, il faudra penser à modifier ici si tu renommes ta feuille.
    Bonne journée
    eric
    0
  17. debutante-excel Messages postés 195 Statut Membre 11
     
    Bonsoir Ericccccc,

    Me revoilàààà.

    Bon ok ca marche en rajoutant la ligne au début du code.

    Par contre concernant mes zones de validation, ca ne marche pas.

    C'est peut etre que je ne sais pas sélectionner correctement 2 zones qui sont discontinues.

    je grise la première colonne et ensuite j'appuie sur CTRL pour griser la 2 eme colonne .

    Aie aie je sens que c'est pas ca, pfffff je suis vraiment nulle.

    Mais bon j'avance quand meme.

    Allez encore un pti coup de main.

    Merci d'avance.
    0
  18. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    Si si, c'est bien ça.
    Essaie encore... ;-)
    Si excel t'embete supprime d'abord ton ancienne définition et recrée la en 2 zones.
    Ou sinon tu l'édites sous ce format =Feuil1!$C$8:$C$17;Feuil1!$K$8:$K$16 et tu valides par ok
    eric
    0
  19. debutante-excel Messages postés 195 Statut Membre 11
     
    Hellooooo,

    Super Eric ca marcheeeeeeee.

    Je deviens une Pro d'excel, macro VBA lolllll et ca marche.

    Je continue et reviendrai surement t'embeter.

    encore merci pour ton aide.
    0
  20. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Super :-)
    Pas de soucis, tu ne m'as pas embeté
    N'oublie pas de mettre en résolu quand ça te paraitra ok.
    Bonne continuation et bonne journée
    eric
    0
  21. debutante-excel Messages postés 195 Statut Membre 11
     
    Re eric,

    bon tout est Ok ca marche impec donc je mets en résolu.

    et j'ouvre un autre post avec une autre tite demande.

    Bonne journée.
    0
  • 1
  • 2