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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 68
    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 : 83
    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 : 68
    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 : 68
    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 : 68
    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.

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