IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Faire correspondre des chiffres par des lettres


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 28
    Points : 8
    Points
    8
    Par défaut Faire correspondre des chiffres par des lettres
    Bonjour

    J'ai un tableau de noms d'élèves et j'ai sur eux des informations chiffrées. Exemple pour Dupont, je l'ai noté en performance sur 4, idem en projet, idem en Connaissances, etc.(5 notes de 1 à 4)
    J'ai récupéré un tableau dans lequel si j'insère un chiffre il me fait correspondre une appréciation. Jusqu'à la c'est très bien. Mais d'une part l'appréciation apparait en noir et blanc, et d'autre part si je veux coller l'ensemble des chiffres cela ne marche pas. Je suis obligé de les rentrer un par un. Y a t'il une solution?
    En vous remerciant d'avance soit en m'orientant mieux dans le blog soit en répondant à mes questions.
    Cordialement
    Essai Correspondance chiffres appréciations 4C paysage.xlsm

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Ce n'est pas la première fois que je te dis (en vain !) de bien vouloir te conformer à ceci :
    https://www.developpez.net/forums/d8...s-discussions/
    En vain !
    Je n'ouvre et n'ouvrirai jamais un classeur tiers
    Je n'ai donc pas ouvert le tien et vais me contenter de répondre par un exemple à ce que je crois avoir deviné -->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    corresp = Array("", "mauvais", "passable", "moyen", "bon", "très non", "excellent")
     note = 2
     MsgBox note & " ==> " & corresp(note)
     note = 5
     MsgBox note & " ==> " & corresp(note)
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 28
    Points : 8
    Points
    8
    Par défaut Faire correspondre des chiffres par des lettres
    Bonjour
    Merci d'avoir pris le temps de me lire. Mais par rapport aux pièces jointes, c'est, pour beaucoup de gens inexpérimentés, le seul moyen d apporter une solution à leur problème. Dans le cas présent le code que tu me communiques ne m'aide pas beaucoup car même après avoir essayé de le coller en tant que nouvelle macro, rien ne fonctionne. Alors si je comprends bien ta démarche un ignare en informatique ne peut avoir sa place dans ce site. Je le conçois mais a qui puis je m'adresser pour compléter mon tableau.
    De plus il y a d'autres paramètres qui rentrent en ligne de jeu. La mise en page qui peut ne pas s'adapter au nouveau programme, obtenir une correspondance chiffres mais avec un texte couleur sur un fond aussi coloré, une saisie pratique "copier tous les chiffres et les coller en une seule fois". Pour moi une vue d'ensemble est nécessaire. Mais là encore j'accepte tes arguments -peur de virus - ne pas rendre une solution toute faite etc.
    Bilan des courses je reste avec mon problème et toi avec ton savoir. Je ne suis pas vexé et en colère mais déçu de ne pas progresser. Merci quand même et j'essayerai d'adopter tes conseils de procédure mais avec mon niveau d'informatique je ne pense pas qu'ils me soient d'un grand secours.
    Cordialement

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Et dans Excel, tu as la fonction Choisir() qui retourne la valeur en position de l'index !
    En partant de l'exemple de unparia (mis à part "très non" ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =CHOISIR(3;"mauvais";"passable";"moyen";"bon";"très bon";"excellent")

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 28
    Points : 8
    Points
    8
    Par défaut Faire correspondre des chiffres par des lettres
    Bonjour
    Voilà ce que j'ai dans mes données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        If Not Application.Intersect(Target, Range("b3:x45")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target = "" Then Exit Sub
        On Error GoTo Fin
            Application.EnableEvents = False
            Target = WorksheetFunction.HLookup(Target, Range("b3:f4"), 2, 0) 'rechercheH
        End If
        Application.EnableEvents = True
    Exit Sub
    Fin: MsgBox ("Ce code n'existe pas !")
        Target.ClearContents
        Application.EnableEvents = True
    End Sub

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 28
    Points : 8
    Points
    8
    Par défaut
    Merci à Thèse mais le problème reste identique.

  7. #7
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour.
    Pour copier la valeur et les couleurs, il vaut mieux utiliser Copy.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        If Not Application.Intersect(Target, Range("b3:x45")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target = "" Then Exit Sub
     
            Application.EnableEvents = False
            what = Target.Value
            Set r = Range("b3:f4").Find(what, , , xlWhole)
            If r Is Nothing Then
             MsgBox ("Ce code n'existe pas !")
            Else
             r.Offset(1).Copy Target
            End If
        End If
     
        Application.EnableEvents = True
    End Sub
    Cordialement

    Docmarti.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 28
    Points : 8
    Points
    8
    Par défaut
    Bonjour
    Ca marche avec les couleurs SUPER! Il reste ce problème de copier coller.
    J'ai 30 noms dans une colonne puis en haut de tableau 5 critères d'évaluation. Le tout me forme un tableau de 150 cases. Sur une feuille annexe j'ai récolté 150 notes allant de 1 à 4 pour les 5 critères. Je copie donc l'ensemble de ces notes et me rend sur mon nouveau tableau. Mais dès que je désire coller l'ensemble de ces notes dans le tableau il ne retient que les chiffres et ne transpose plus les chiffres en appréciation. En revanche si je les rentre un par un ça marche.
    Que peut on faire?
    Autrement merci encore pour ton implication.
    Phil69126
    Images attachées Images attachées  

  9. #9
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Je vais réa*gir avec brutalité et sincérité (les deux vont ensemble) à ceci* :
    c'est, pour beaucoup de gens inexpérimentés, le seul moyen d apporter une solution à leur problème.
    NON NON ET NON ! Il ne s'agit là que de savoir exposer en français ! Non d'être expérimenté en langage de développement !!!!
    Alors si je comprends bien ta démarche un ignare en informatique ne peut avoir sa place dans ce site.
    Idem. !
    Serais-tu également "ignare" en expression en langue maternelle ?
    Bilan des courses je reste avec mon problème et toi avec ton savoir.
    -->> bilan des courses : apprends donc à savoir exposer un problème, ses tenants et aboutissants, sans avoir à "jeter" ici un classeur parce que tu trouves que cela TE facilite la vie.
    Si l'on sait d'où l'on part et où l'on veut aboutir, il est simple de l'exposer techniquement.
    Désolé pour toi, mais vois-tu, MOI, je ne prendrai jamais le risque d'ouvrir un classeur tiers, au prétexte de facilité la vie et palier à la flemme d'un demandeur.
    Si tu le comprendes -->> amen. Si tu ne le comprends pas --->> débrouille-toi ! certaines règles, exposées clairement, sont à observer. Elles ont leur raison d'être, qu'elles te plaisent ou non, qu'elles ne TE FACILITENT PAS LA VIE OU NON !
    C'est la dernière fois que je réponds personnellement à l'une des discussions que tu ouvrirais sans ce respect-là.
    Bonne chance.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

Discussions similaires

  1. PROC FORMAT remplaçant des chiffres par des noms de variables
    Par joyeux_lapin13 dans le forum SAS Base
    Réponses: 11
    Dernier message: 09/06/2011, 09h09
  2. Ecrire des chiffres en toutes lettres
    Par ali_Imouzzer dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 21/02/2007, 18h44
  3. Réponses: 2
    Dernier message: 26/10/2006, 17h52
  4. remplacer des chiffres par des lettres, & vis versa
    Par Argorate dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/08/2006, 19h36
  5. Sélectionner un mois d'un mouthcalendar par des chiffres
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 7
    Dernier message: 30/08/2005, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo