Comment dire que la lettre vaut un chiffre

SayzZ -  
PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai 2 Lettre par exemple A et L et je voudrais dire que A vaut 1 et que L vaut -1 et que si il y a plusieurs A, alors sa me le multiplie par sa valeur
Configuration: Android / Chrome 88.0.4324.181

4 réponses

  1. PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   1 511
     
    Bonjour

    Pour trouver le nombre de fois le même caractère dans une suite il faut utiliser NBCAR et SUBSTITUE

    La formule pour une suite en A2

    =(NBCAR(A2)-NBCAR(SUBSTITUE(A2;"A";"")))*1-(NBCAR(A2)-NBCAR(SUBSTITUE(A2;"L";"")))*1


    Pour changer la valeur à multiplier et afin d'éviter de toucher à la formule mettre les multiplicateur dans les cellules à part

    A1 le multiplicateur pour la lettre A
    B1 le multiplicateur pour la lettre L

    =(NBCAR(A2)-NBCAR(SUBSTITUE(A2;"A";"")))*A1-(NBCAR(A2)-NBCAR(SUBSTITUE(A2;"L";"")))*B1


    Cordialement
    0
    1. SayzZ
       
      Alors j'ai pas trop compris mais en gros je veut calculer le nombre de A dans plusieurs cellules par exemple de A1 jusqu'à A10 et faire de même avec L
      0
  2. dachiasse Messages postés 1932 Statut Membre 153
     
    Ok, alors pour ma part je croyais que tu voulais additionner les valeurs des chaque caractère d'un mot et donner la somme.

    Par exemple, imagine que "A" vaut 1 et "B" vaut 2.
    "ABBA" donnerait 1 + 2 + 2 + 1 = 6

    C'est peut-être clair dans ta tête mais je ne peux pas savoir exactement si tu expliques mal.
    0
    1. SayzZ
       
      Justement comment je fait pour que A vaut 1
      0
      1. dachiasse Messages postés 1932 Statut Membre 153 > SayzZ
         
        Tu dois faire un dictionnaire qui est une association clé:valeur comme ça : https://excelmacromastery.com/vba-dictionary/

        Les exemples sont clairs et simples, à toi d'adapter.

        Je n'ai pas Excel mais LibreOffice Calc, il y a quelques différences, mais, je viens de créer une macro simple. D'abord, je mets les lettres de l'alphabet une à une dans une liste. Ensuite, je crée un input, c'est-à-dire une donnée à taper au clavier, pour assigner une valeur à chaque lettre. J'ai un mot test pour vérifier que le résultat est correct. Le code n'est pas parfait, par exemple, j'ai volontairement rien tapé à chaque input, comme rien n'est pas de type nombre entier ça a sorti une erreur. Voici le code, non commenté car suffisamment explicite :

        Option VBASupport 1
        
        Function additionner_lettres(mot as string, dico_equivalence as Scripting.Dictionary)
            compteur = 0
            taille = len(mot)
            for i = 1 to taille
                compteur = compteur + dico_equivalence(mid(mot, i, 1))
            next i
            additionner_lettres = compteur
        End Function
        
        Sub Main
         dim liste_pour_remplissage_nombre(25) as String
            dim dico_equivalence_lettre_chiffre as New Collection
            
            dim phrase as string
            dim mot_test as string
            mot_test = "abba"
            dim resultat as integer
        
            for i = 0 to UBound(liste_pour_remplissage_nombre)
                liste_pour_remplissage_nombre(i) = Chr(65+i)
            Next i
         
            for i = 0 to UBound(liste_pour_remplissage_nombre)
                phrase = "Tape la valeur équivalente à " & liste_pour_remplissage_nombre(i)
                temporaire = inputbox(phrase)
                dico_equivalence_lettre_chiffre.add(temporaire, liste_pour_remplissage_nombre(i))
            next i
        
            resultat = additionner_lettres(mot_test, dico_equivalence_lettre_chiffre)
            msgbox resultat
        End Sub
        0
  3. PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   1 511
     
    Tu veux dire le nombre de fois la même lettre dans une plage de cellules qui n'en contiennent qu'une seule ??

    dans ce cas un NB.SI est suffisant =NB.SI(A1:A10;"A")* par la valeur du multiplicateur ; soit directement dans la formule, soit, comme dit plus haut, par la référence de la cellule contenant celui-ci

    Ma réponse précédente concerne une chaine de caractères dans une seule cellule ; c'est-à-dire on compte le nombre total de caractères dans la cellule et on lui retranche le nombre de caractères sans les caractères cherchés. Ainsi si la cellule contient "BLABLA" (6 caractères - 4 caractères "BLBL") donnent 2 caractères représentant la lettre "A".

    Si c'est autre chose donne plus d'explications pour éviter les tâtonnements dans les réponses.

    Cordialement
    0
  4. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    voyez si ce modèle peut répondre à votre besoin et revenez si soucis
    https://mon-partage.fr/f/j6CSxhXU/
    crdlmnt

    0
    1. PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   1 511
       
      Salut Vaucluse
      Je commençais la même chose - pas la peine que je termine.
      Cordialement
      0