FORMULE -incrémenter de A à ZZZ avec un pas d'incrément variable

Bonjour à tous, je me casse les dents sur une formule pour incrémenter des lettres au dessus de Z. Je vous décris ma situation:
En A1: L’utilisateur peut saisir de 1 à trois caractères. Tous les caractères sont des lettre de « A » à « Z ». Par Exemple « F » ou « AX » ou « EAA ».
En B1: l’utilisateur saisi un nombre entier. C’est un nombre qui correspond à une valeur d’incrément. Si je saisi 5 en B1 ca aura pour signification un incrément de 5 sur la variable présente en A1 pour la la formule de calcul qui sera en C1.
En C1: Je souhaite une formule excel qui me donne le résultat de calcul d’une suite logique. l’incrémentation commence toujours de la droite vers la gauche comme le systeme numérique unité, dizaine, centaine mais avec des lettres. Voici la logique:
Si par exemple il y a un seul caractère comme la lettre F (indiqué en A1) et un incrément de 5 (indiqué en B1), on rajoute en suivant l’ordre alphabétique 5 lettres (incrément) à la lettre F ce qui nous donne en résultat la lettre K en C1. A chaque fois que l’incrément dépasse la lettre Z on incrémente une lettre sur la gauche, toujours en suivant l’ordre alphabétique. Si il n’y a pas de lettre à la gauche on la rajoute en commençant par la lettre A. Par exemple en A1 j’ai la lettre X. En B1 La valeur d’incrément 5 le résultat que je dois trouver en C1 sera « AC ». Si Cette fois ci en A1 on indique AC et toujours un incrément de 5 ca doit nous donner « AH ». Si en A1 je renseigne AH et en B1 la valeur de 20 en C1 le résultat devrait être BB.
Pouvez vous m’aider à construire la formule en C1.
Merci à tous de l’intérêt porté à mon sujet.

Bonjour ,

Malheureusement je pense qu’ il n’est pas possible de créer une formule Excel standard (sans VBA) qui gère efficacement l’incrémentation des lettres au-delà de « Z » en utilisant uniquement des fonctions Excel standard ou j’imagine meme pas la longeur de la formule :scream:

Peux etre avec un fichier il sera plus simple de pouvoir vous aidez

Salutations

Yann.xlsx (14,6 Ko)

1 « J'aime »

Pouffff … la connaissance des fonctions es intérminable :joy:

SUPPRESPACE
,REPT

1 « J'aime »

Merci Johnny de ton retour rapide. j’ai demandé à ChatGPT de m’écrire une formule. Le problème est qu’il utilise une fonction que mon excel 2021 francais ne reconnais pas. C’est la fonction « CHAR ». Voici la proposition qu’il m’a faite:
CAR(64 + MOD(SOMME(SI(ESTNUM(CHERCHE(« ABCDEFGHIJKLMNOPQRSTUVWXYZ »; DROITE(A1;1))); SI(ESTERREUR(CHERCHE(CHAR(CODE(DROITE(A1;1))+1); « ABCDEFGHIJKLMNOPQRSTUVWXYZ »)); (CODE(DROITE(A1;1)) - 64 + B1) MOD 26 + 1; B1); SI(ESTNUM(CHERCHE(« ABCDEFGHIJKLMNOPQRSTUVWXYZ »; GAUCHE(A1;1))); SI(ESTERREUR(CHERCHE(CHAR(CODE(GAUCHE(A1;1))+1); « ABCDEFGHIJKLMNOPQRSTUVWXYZ »)); (CODE(GAUCHE(A1;1)) - 64 + ENT((CODE(DROITE(A1;1)) - 64 + B1) / 26)) MOD 26 + 1; ENT((CODE(DROITE(A1;1)) - 64 + B1) / 26)); 0)); 26)))

Merci de ton analyse.
Après, mais vraiment en dernier recours je m’orienterai vers du VBA.

Pour information, la finalité de ma demande c’est pour un support à généré des formules non contiguës.

:heart_eyes:
Mille merci COW. C’est exactement ce que je cherché!
Je vais poussé cette formule dans ces derniers retranchement mais comme ca à vu de nez ca sent bon :kissing_heart:!!

Merci à vous deux pour votre réactivité! Je vais tester un peut et je clôturerai le sujet.

je ne sais pas si vous l’avez vu, mais j’ai modifié le fichier pour le cas où A1 est vide, cela donnait une erreur.
B1 <=16360

en revenant sur le problème de ChatGPT, je suppose que « CHAR » doit être « CAR » (comme au début !!!) en français :nerd_face:

Coucou Cow,
J’avais essayé mais pareil ca ne passait pas. Et ta solution correspond complètement à mes attentes.

En C1
=SUPPRESPACE(GAUCHE(SUBSTITUE(STXT(A1;1;MAX(0;NBCAR(A1)-1))&ADRESSE(1;SI(A1=«  »;0;CODE(MAJUSCULE(DROITE(A1;1)))-64)+B1;2;1);« $ »;REPT(" ";100));100))

Par contre tu m’as indiqué plus haut dans la conversation l’information suivante:

J’ai retéléchargé le fichier que tu m’as transmis et je ne vois pas : « B1 <=16360 »

Excellente journée à toi

je voulais simplement dire que la valeur en B1 doit être inférieur à 16.360.
Le max nombre de colonnes est 16.384, si on soustrait 26 (de A-Z) = 16.358 (donc j’avais éxagéré un tout petit peu), mais je ne pense pas que vous n’avez pas l’intention d’utiliser un tel chiffre :joy:

Merci Cow de tes retours rapides et pertinents :hugs:!.
J’ai un petit problème avec la formule que tu m’as transmis.

C’est lorsque ma valeur source à deux caractères et qu’avec ma valeur d’incrément ca dépasse le « Z ».
Pour l’exemple:
Dans ma valeur Source j’ai « AX » et un incrément de 6 je devrait avoir « BC » mais avec la formule en place j’ai comme sortie: « AAC » peux tu me dire si tu as une piste :blush:
Merci d’avance
@++

=SUPPRESPACE(GAUCHE(SUBSTITUE(STXT(A2;1;MAX(0;NBCAR(A2)-2))
&ADRESSE(1;SI(A2="";0;
SI(NBCAR(A2)=1;0;CODE(MAJUSCULE(STXT(A2;NBCAR(A2)-1;1)))-64)*26
+CODE(MAJUSCULE(DROITE(A2;1)))-64)+B1;
2;1);"$";REPT(" ";100));100))

Yann.xlsx (14,7 Ko)

Merci COW ca à l’aire de marcher impeccable :muscle:!

1 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.