Menu

Extraction d'un nombre d'une cellule alphanumérique plus addition [Résolu]

Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
- - Dernière réponse : ccm81
Messages postés
8770
Date d'inscription
lundi 18 octobre 2010
Dernière intervention
13 février 2019
- 13 févr. 2019 à 18:50
Bonjour,

Je travaille sur un projet personnel et je frappe un mur:

J'ai des cellules de formats standard dans un tableau
En simplifiant, chaque cellule peut avoir une des valeurs suivante: ANJ10, ANJ10+2 et ANJ10+5

Je désire extraire les nombres de la cellule et, si possible, faire l'addition suite à l'extraction.
Ainsi donc, ANJ10 donnerait un résultat 10, ANJ10+2 donnerait un résultat 12 et ANJ10+5 donnerait un résultat de 15

Merci de votre attention
Afficher la suite 

Votre réponse

10 réponses

Messages postés
2263
Date d'inscription
samedi 19 avril 2008
Dernière intervention
14 février 2019
278
0
Merci
Bonjour,

C'est trop simplifié !
Il y a toujours 3 lettres avant le premier chiffre ?

Un fichier (test) mis sur https://www.cjoint.com/ permettait de répondre plus précisément à ta question et avec des exemples exhaustifs.

Crdlmt
Commenter la réponse de DjiDji59430
Messages postés
94
Date d'inscription
samedi 2 février 2019
Dernière intervention
14 février 2019
9
0
Merci
Bonsoir,
Si j'ai bien compris ta requête :

=SI($A1="ANJ10";"10";"")&SI($A1="ANJ10+2";"12";"")&SI($A1="ANJ10+5";"15";"")

Formule à mettre dans la colonne où tu veux que se situe le résultat.

$A1 de la formule est la colonne A et la cellule 1 si les données que tu veux transformer se situent dans cette colonne sinon, à toi de modifier.

Formule à tirer vers le bas.

Merci de préciser si je réponds à ta demande !
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Merci, je suis en train de la tester... Ça semble marcher pour le moment... Mon tableau produit une erreur occasionnellement mais c'est probablement une erreur de formatage...

Une petite question: A quoi sert le "$"? J'essaie de comprendre la logique derrière la formule.

Merci
Yoyo01000
Messages postés
94
Date d'inscription
samedi 2 février 2019
Dernière intervention
14 février 2019
9 -
Le $ sert à figer soit la colonne soit la ligne.
Quand tu "tires" une formule avec par exemple $A$1 dans celle-ci :
si tu tires à droite ça t'évite de te retrouver avec B1 dans celle-ci
si tu tires vers le bas, ça t'évite de te retrouver avec A2 dans celle-ci

Ce $ peut s'avérer très pratique dans certaines situations !
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Ah! Merci pour l'éclaircissement!
Commenter la réponse de Yoyo01000
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
0
Merci
Il y a effectivement toujours trois lettres avant le premier chiffre.

Bien entendu, le résultat (10, 12 ou 15) sera reporté dans une autre cellule...

Ex: Si A1 = ANJ10+5 alors B1 = 15

J'ai testé avec =SI(DROITE(A1;1)="5";15;10) mais ceci me donne des faux résultats de 10
Yoyo01000
Messages postés
94
Date d'inscription
samedi 2 février 2019
Dernière intervention
14 février 2019
9 -
As-tu essayé ma formule ?!
Commenter la réponse de Shaman96
Messages postés
8770
Date d'inscription
lundi 18 octobre 2010
Dernière intervention
13 février 2019
1890
0
Merci
Bonjour à tous

Avec une petite fonction personnalisée (macro)
https://www.cjoint.com/c/IBjtBb2KIzB

Cdlmnt
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Ok je ne connais pas le VBA... Comment est-ce que je pourrais l'appliquer sur ma feuille?
ccm81
Messages postés
8770
Date d'inscription
lundi 18 octobre 2010
Dernière intervention
13 février 2019
1890 -
1. Alt-F11
2. Insertion/Module pour créer le Module 1
3. Tu copies tout le code dans ce module
3. Retour à la feuille
4. tu appliques
5. Il te faudra enregistrer le fichier avec le type .xlsx (Fichier/enregistrer sous/ type ... prenant en charge les macros)

RQ. si le nombre de lettres au début est différent de 3 il faudra modifier le code, tu dis.

Cdlmnt
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Merci, je vais définitivement y jeter un coup d’œil...
eriiic
Messages postés
22372
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 février 2019
7203 -
Petite étourderie de ccm :
5. Il te faudra enregistrer le fichier avec le type .xlsm (Fichier/enregistrer sous/ type ... prenant en charge les macros)
et non .xlsx
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Bonjour, je lie une copie de toutes les variables possible.

https://www.cjoint.com/c/IBkwkxsogJI

Votre macro est extraordinaire mais je peine a faire tout les changements.
Commenter la réponse de ccm81
Messages postés
2263
Date d'inscription
samedi 19 avril 2008
Dernière intervention
14 février 2019
278
0
Merci
Bonjour,

A l'ancienne !
https://mon-partage.fr/f/VzJ26Xad/

Crdlmt
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Merci pour le tuto, je le garde pour usage ultérieur...

Cependant, j'ai besoin du résultat dans une seconde cellule alors que votre solution la rapporte à la cellule initiale.

Donc:
Si A1 = ANJ10 B1 = 10
Si A1 = ANJ10 + 2 B1 = 12
Si A1 = ANJ10 + 5 B1 = 15
DjiDji59430
Messages postés
2263
Date d'inscription
samedi 19 avril 2008
Dernière intervention
14 février 2019
278 -
Tu retires le A1& dans la formule !!
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Merci, je teste ça et je vous reviens...
Commenter la réponse de DjiDji59430
Messages postés
22372
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 février 2019
7203
0
Merci
Bonjour,

au plus simple :
=10+DROITE(A2;1)

eric
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Simple et élégant... J'aime bien...
Si je comprends bien, dans le cas ou A2 = ANJ10 alors le résultat serait 10+0 donc 10, c'est ça?

Est-ce que l'on pourrait vérifier si la cellule contiens une valeur à priori?

Genre: si A1 = ANJ10 alors B1 =10+DROITE(A1;1) sinon ne rien faire
eriiic
Messages postés
22372
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 février 2019
7203 -
=SI(GAUCHE(A2;5)="ANJ10";10+DROITE(A2;1);"")
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Merci... Je teste et je vous reviens!
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Merci, ça fonctionne!
Commenter la réponse de eriiic
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
0
Merci
Merci à tous pour vos réponses... Vous m'avez tous apporté des éclairage qui me seront très utile

Je vais prendre la solution de eriiic:

=SI(GAUCHE(A2;5)="ANJ10";10+DROITE(A2;1);"0")
Commenter la réponse de Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
0
Merci
Voici l'intégralité des variables:

https://www.cjoint.com/c/IBkwkxsogJI
eriiic
Messages postés
22372
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 février 2019
7203 -
Et ?
=SIERREUR(SI(CHERCHE("ANJ10";A1);10+DROITE(A1;1));"")
?
eric
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Et je remplace le ANJ10 pour une autre variable le cas échéant, c'est ça?

Donc:
=SIERREUR(SI(CHERCHE("ANJ10";A1);10+DROITE(A1;1));"")
=SIERREUR(SI(CHERCHE("BGJ10";A1);10+DROITE(A1;1));"")
=SIERREUR(SI(CHERCHE("MMJ10";A1);10+DROITE(A1;1));"")
etc... ?

Est-ce que cette formule pourrait chercher dans un tableau?

ex:

=SIERREUR(SI(CHERCHE("ANJ10";A1:P25);10+DROITE(A1;1));"")
eriiic
Messages postés
22372
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 février 2019
7203 -
Dit tout en détail parce que là on va y passer la semaine
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
On oublie l'histoire du tableau, ce n'est pas une bonne idée anyway...

Je peux savoir de quoi est composé la formule?
Que font les SIERREUR et CHERCHE svp? J'essaie de comprendre comment vous en êtes venu a cette formulation.
eriiic
Messages postés
22372
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 février 2019
7203 -
C'est très bien expliqué dans l'aide excel, je ne ferai pas mieux.
Regarde pour chaque fonction que tu ne connais pas et revient si ça t'échappe toujours.
Sinon pour en grouper plusieurs :
=SI(SIERREUR(CHERCHE("ANJ10";A1);0)+SIERREUR(CHERCHE("BGJ10";A1);0+SIERREUR(CHERCHE("MMJ10";A1);0));10+DROITE(A1;1);"")


ou si c'est tous ceux avec J10 :
=SIERREUR(SI(CHERCHE("J10";A1);10+DROITE(A1;1));"")

eric
Commenter la réponse de Shaman96
Messages postés
8770
Date d'inscription
lundi 18 octobre 2010
Dernière intervention
13 février 2019
1890
0
Merci
Macro modifiée
https://www.cjoint.com/c/IBln5xdyzRB

RQ1. S'il y a d'autres signes d'opération autres que "+", il faudra modifier ....
RQ2. merci à eric pour la rectification fichier avec extension .xlsm

Cdlmnt
Shaman96
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
-
Merci, votre macro fait des merveilles... Elle règle 99% de mes problèmes...

Merci infiniment pour votre temps et votre patience...
Commenter la réponse de ccm81
Messages postés
20
Date d'inscription
samedi 9 février 2019
Dernière intervention
13 février 2019
0
Merci
Merci a tous pour votre patience et votre temps... Mon problème est réglé...
ccm81
Messages postés
8770
Date d'inscription
lundi 18 octobre 2010
Dernière intervention
13 février 2019
1890 -
De rien

Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)

Cdlmnt
Commenter la réponse de Shaman96