Remplacement de chaîne de caractère en fonction de sa position

Bonjour, cher confrères.

Tout d'abord je m'excuse si le sujet a déjà été traité, mais je ne l'ai pas trouvé avec exactitude dans nos 1300+ pages de forum (je n'ai probablement pas recherché avec les bons termes ?)

J'ai deux questions, je débute, je vous expose d'abord mon problème qui va sembler simple pour la plupart d'entre vous, je pense :

J'ai un tableau 4x4 contenant des valeurs (dynamiques, elles sont récupérées sur d'autres cellules).

Prenons A1:D4 pour l'exemple

A côté, j'ai tous les nombres allant de 1 à 4444 en base 4. C'est à dire 1, 2, 3, 4, 11, 12, 13, 14, 21... etc jusqu'à 4444

Chaque chiffre de mes nombres en base 4 correspond à une valeur de mon tableau, et le nombre total est la somme de ces chiffres.

Je m'explique avec un exemple :

1423 = A1+D2+B3+C4

22 = B1+B2

444 = D1+D2+D3

3 = C1

etc...

En gros la valeur du chiffre c'est ma colonne du tableau (1=A jusqu'à 4=D) et la position de mon chiffre me donne la ligne.

Pour des raisons dont je vous fais grâce, j'ai besoin que le résultat ne dépasse pas 26 tout en restant non-nul, donc j'ai tout foutu dans un MOD(;26)

Actuellement, j'ai donc ça par exemple :

11 --> =SI(MOD(A1+A2;26)=0;26;MOD(A1+A2;26))

114 --> =SI(MOD(A1+A2+D3;26)=0;26;MOD(A1+A2+D3;26))

J'en ai écrite que quelques unes, ces formules sont assez longues à recopier à la main, je souhaite automatiser le processus pour aller jusqu'à 4444 facilement. J'ai regardé un peu à droite à gauche, j'ai vu que ça devait être possible avec du VBA, mais :

  • Est-ce possible avec les formules excel existante ?
  • J'ai presque jamais touché à du VBA, une piste à suivre notamment en ce qui concerne la position des caractères qui me donne la référence de la colonne ?

Merci pour vos retours

Salut MrFreeze,

évidemment mais, si tu ne veux pas freezé notre envie de t'aider, il faudrait songer à joindre un fichier-exemple pour illustrer ta demande!

Ton monde est ton monde : aide-nous à le comprendre!

A+

Bonjour curulis57,

Merci pour ta réponse. Je vous fais un excel contenant quelques exemples

Actuellement j'en suis a tenter d'imbriquer des CHERCHE dans des SI dans des SI dans des CHERCHE etc...

Je suis sûr qu'il y a moyen de simplifier mais je n'arrive pas à mettre le doigt dessus

6exemple.ods (6.64 Ko)

Salut MrFreeze,

une formule...

=Calcul(F1)

une fonction personnalisée en VBA...

Public Function Calcul(rCel As Range) As Integer
'
Dim sNum$, iNum%
'
sNum = Trim(CStr(rCel.Value))
For x = 1 To Len(sNum)
    iNum = iNum + Cells(CInt(x), CInt(Mid(sNum, x, 1)))
Next
Calcul = iNum
'
End Function

A+

7mrfreeze.xlsm (21.22 Ko)

Merci bien, l'ami !

Il est temps que j’apprenne à me servir du VBA...

Encore une petite question, voici un exemple de tableau dans lequel je veux l'intégrer (plus complet) en PJ.

Le but est que, lorsqu'un utilisateur entre ses 4 lettres, j'ai tous les calculs de faits sur la deuxième feuille.

J'ai tenté d'utiliser ta formule curulis57, mais lorsqu'on change les lettres, les résultats ne se mettent pas automatiquement à jour.

Une petite suggestion ?

Merci en tout cas

5exemple.xlsm (26.39 Ko)

J'ai tenté d'utiliser ta formule curulis57, mais lorsqu'on change les lettres, les résultats ne se mettent pas automatiquement à jour.

Une petite suggestion ?

Bonjour MrFreeze ,stl curulis57 ,

ajoute cette ligne en début de macro

Application.Volatile

Il semblerait que le problème vienne du fait que les données du tableau ne sont pas récupérées dans la même feuille.

J'ai tout rassemblé.

En tout cas j'ai ce qu'il me faut pour continuer à travailler dessus

Merci pour vos aides

Rechercher des sujets similaires à "remplacement chaine caractere fonction position"