Extraire que les chiffres d'une cellule Excel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Armand11

XLDnaute Occasionnel
Bonjour à toute la communauté Excel Downloads,
Je souhaite pouvoir extraire d'un libellé alphanumérique d'une cellule uniquement les chiffres mentionné dans ce libellé... ? Je ne peux pas malheureusement utiliser les fonctions =Droite ou = Gauche voire même =STXT car d'une ligne à l'autre l'information que je cherche à extraire n'est pas au même endroit.... et en plus les chiffres que je souhaite extraire peuvent être composé de 3 chiffres ou de 4 ou de 2 etc.....

Je vous joins un fichier pour exemple...

Merci pour votre aide à nouveau...
Armand
 

Pièces jointes

si je faisait dans une cellule =Compte(G38) avec en G38 une valeur de 3 ou 5 ou 6 cela me donnais 1 ou -4146... mais sinon le code fonctionnait pour toute les autres valeurs et pour les additions diverses normalement... un vrai mystére!
je joins mon fichier avec le mystére si cela intérésse ...
Bizarrement c'est à cause des cases à cocher qui se trouvent de A7 à C7. Si on les supprime il n'y a plus le problème. J'ai trouvé cette solution ici
 
Re @Sirberthoult ,

A la vue de votre fichier, je m'aperçois que la fonction de comptage doit pouvoir s'appliquer sur un ensemble quelconque de cellules et/ou de plages quelconques et non pas sur une seule cellule seulement.

J'ai donc réécrit ma fonction combien(...) pour tenir compte de ce besoin et simplifier les formules. Voir dans le classeur joint les formules en colonne E (Sirberthoult-somme nombres dans texte- v2.xlsm).


Dans votre fichier Sirberthoult-DISPO des lits- v1.xlsm, la formule en K10 est :
VB:
=SOMME(@Compte(G10)+@Compte(G11)+@Compte(G12)+@Compte(G13))+SI($A$8=VRAI;SOMME(@Compte(H10)+@Compte(H11)+@Compte(H12)+@Compte(H13));0)+SI($B$8=VRAI;SOMME(@Compte(I10)+@Compte(I11)+@Compte(I12)+@Compte(I13));0)+SI($C$8=VRAI;SOMME(@Compte(J10)+@Compte(J11)+@Compte(J12)+@Compte(J13));0)

Avec la nouvelle fonction combien(...), la formule en K10 devient beaucoup plus courte et plus lisible :
VB:
=combien(G10:G13)+A8*combien(H10:H13)+B8*combien(I10:I13)+C8*combien(J10:J13)

rem : Dans ce dernier classeur, les cellules H10:H13 contiennent la valeur 1, les cellules I10:I13 contiennent la valeur 2 et les cellules J10:J13 contiennent la valeur 5. Vous pouvez ainsi tester les trois cases à cocher de la ligne 7.


Le code de la nouvelle fonction combien(...) :
VB:
Function Combien(ParamArray xrg())
Dim som, xelem, xarea, xcell, x
   For Each xelem In xrg
      For Each xarea In xelem
         For Each xcell In xarea.Cells
            For Each x In Split(Replace(Replace(xcell, "-", "+-"), ",", "."), "+"): som = som + Val(x): Next
         Next xcell
      Next xarea
   Next xelem
   Combien = som
End Function
 

Pièces jointes

Bonsoir mapomme,
Bonjour à tous🙂,
Une autre fonction sans Evaluate :
VB:
Function Combien(txt$)
Dim som, x
   For Each x In Split(Replace(Replace(txt, "-", "+-"), ",", "."), "+"): som = som + Val(x): Next
   Combien = som
End Function
Sous Excel pour Microsoft 365, en A3 :
VB:
=SOMME(0+REGEX.EXTRAIRE(SUBSTITUE(A3;".";",");"[+-]?\s*\d+(?:,\d+)?";1))
@ tirer vers le bas

Bien cordialement,
 
Bonsoir R@chid 🙂,

Cela faisait bien longtemps que nous ne nous étions croisés au détour d'une discussion. J'en profite pour te souhaiter une très belle et heureuse année à toi et à tes proches 🤩. Rares sont tes interventions mais je vois que tu n'a rien perdu de ton efficacité et même que tu t'es un peu bonifié (utilisation de REGEX 😉 dans les formules 👌)

nota : un bonsoir à @laurent950 à qui j'envoie mes meilleurs vœux de bonheur pour 2025 🤩.
 
Bonjour @mapomme

Merci pour ton message chaleureux et tes vœux ! Je te souhaite également une excellente année, pleine de réussites et de découvertes. 🤩

C'est vrai que je me fais un peu plus rare ces derniers temps, le travail me prend beaucoup de temps. Mais je ne manque pas de garder un œil sur les nouveautés d'Excel et de m'amuser avec – surtout quand il s'agit de de nouvelles fonctions et formules ! 😉

Ça fait plaisir de voir que nos échanges restent toujours aussi enrichissants. Au plaisir de te recroiser dans une prochaine discussion !

Amicalement,
 
Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre

Discussions similaires

Réponses
5
Affichages
526
Retour