Microsoft 365 additionner le contenu d'une cellule excel contenant du texte et des chiffres

andromaque

XLDnaute Nouveau
Bonjour,

Je souhaiterais savoir s'il existe une formule permettant de mettre dans la colonne B le contenu de la colonne A en ne prenant que les chiffres qu'il contient ? CF fichier joint.

Cordialement,
 

Pièces jointes

  • excel dowloads.xlsx
    9.6 KB · Affichages: 48

andromaque

XLDnaute Nouveau
Pour les pôvres qui ne peuvent lire JOINDRE.TEXTE :
VB:
Function Chiffres(txt$)
Dim i%, x$
For i = 1 To Len(txt)
    x = Mid(txt, i, 1)
    If IsNumeric(x) Then Chiffres = Chiffres & x
Next
End Function

Function Nombres(txt$, Optional sep$)
Dim i%, x$
For i = 1 To Len(txt)
    x = Mid(txt, i, 1)
    Nombres = Nombres & IIf(IsNumeric(x) Or x = "," Or x = ".", x, " ")
Next
Nombres = Application.Trim(Nombres) 'SUPPRESPACE
If Len(sep) Then Nombres = Replace(Nombres, " ", sep)
End Function



Super !
merci job75 c'est cela et donc je comprends que ce sont les nombres que je devais dire :) est-il possbile que la formule fasse la somme des chiffres récupérées de la colonne A ?

Bien a tous et prenez soin de vous
 

job75

XLDnaute Barbatruc
je comprends que ce sont les nombres que je devais dire :) est-il possbile que la formule fasse la somme des chiffres récupérées de la colonne A ?
La somme des chiffres ou la somme des nombres ? Mais peu importe voyez ce fichier (2) :
VB:
Function SommeChiffres#(txt$)
Dim i%, x$
For i = 1 To Len(txt)
    x = Mid(txt, i, 1)
    If IsNumeric(x) Then SommeChiffres = SommeChiffres + x
Next
End Function

Function SommeNombres#(txt$)
Dim i%, x$
txt = " " & Replace(txt, ",", ".")
For i = 2 To Len(txt)
    x = Mid(txt, i - 1, 1)
    If x <> "." And Not IsNumeric(x) And IsNumeric(Mid(txt, i, 1)) Then SommeNombres = SommeNombres + Val(Mid(txt, i))
Next
End Function
 

Pièces jointes

  • Extraire VBA(2).xlsm
    18.3 KB · Affichages: 8

andromaque

XLDnaute Nouveau
La somme des chiffres ou la somme des nombres ? Mais peu importe voyez ce fichier (2) :
VB:
Function SommeChiffres#(txt$)
Dim i%, x$
For i = 1 To Len(txt)
    x = Mid(txt, i, 1)
    If IsNumeric(x) Then SommeChiffres = SommeChiffres + x
Next
End Function

Function SommeNombres#(txt$)
Dim i%, x$
txt = " " & Replace(txt, ",", ".")
For i = 2 To Len(txt)
    x = Mid(txt, i - 1, 1)
    If x <> "." And Not IsNumeric(x) And IsNumeric(Mid(txt, i, 1)) Then SommeNombres = SommeNombres + Val(Mid(txt, i))
Next
End Function


Parfait merci de ton aide c'est exactement ce que je souhaitais faire !

Bonne soirée et prends soin de toi
 

Amilo

XLDnaute Accro

Pièces jointes

  • excel dowloads.xlsx
    18.1 KB · Affichages: 2
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Amilo :)
vous êtes donc récemment passé de la version 2007 à 2010...., il y a une petiite évolution ;)
Vous m'impressionnez o_O. Rien ne vous échappe ;).

Au rythme des mises à jour par la DSI, nous serons bientôt en 2013 (mais toujours pas de PQ intégré d'office me semble-t-il), A moins d'un petit miracle. Une révélation, une fulgurance en quelque sorte.
 

Amilo

XLDnaute Accro
Bonjour à tous,

Bonjour Staples1600, mapomme,
Avant de commencer sur PQ avec Excel, j'avais démarré mon apprentissage sur Power Bi Desktop (date de sortie en 2015 il me semble) . Il est gratuit, facile à l'installer et impressionnant notamment au niveau des visuels.
En attendant, ceux qui préfèrent attendre les versions d'Excel 2016 et suivantes, c'est un bon moyen de se lancer à PQ et Power Pivot dans Power Bi.
Vous passerez confortablement ensuite de Power Bi à Excel le moment venu sans devoir tout réapprendre

Cordialement
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Staple1600 :),
Au taf, je suis sur Excel 2010 et j'ai demandé à ma DSN d'avoir PQ. Ce qui fut fait, puisqu'il existe sous forme d'addon
En cette période de confinement, ils ont d'autres chats à fouetter. Je vais attendre la reprise.
En plus, il va bien falloir que je me rééquipe en micro perso mais j'hésite sur le modèle. C'est compliqué car ce coup ci, je ne vais pas le construire moi-même. C'est qu'on devient fainéant avec l'âge. En fait, je me suis aperçu, qu'en le montant moi-même, j'ai une propension à choisir pour chaque composant celui qui est un peu plus performant que nécessaire et au bout du bout, j'ai un micro très cher, très performant et durable mais très cher). J'hésite, j'hésite ... :rolleyes: (en fait ma propension sus-citée se manifeste aussi pour les modèles déjà montés :mad:).
Mais après, à moi le PQ et le PP etc. :cool:

nota: je n'hésite plus qu'entre deux modèle... On y est presque.
 
Dernière édition:

andromaque

XLDnaute Nouveau
La somme des chiffres ou la somme des nombres ? Mais peu importe voyez ce fichier (2) :
VB:
Function SommeChiffres#(txt$)
Dim i%, x$
For i = 1 To Len(txt)
    x = Mid(txt, i, 1)
    If IsNumeric(x) Then SommeChiffres = SommeChiffres + x
Next
End Function

Function SommeNombres#(txt$)
Dim i%, x$
txt = " " & Replace(txt, ",", ".")
For i = 2 To Len(txt)
    x = Mid(txt, i - 1, 1)
    If x <> "." And Not IsNumeric(x) And IsNumeric(Mid(txt, i, 1)) Then SommeNombres = SommeNombres + Val(Mid(txt, i))
Next
End Function


Bonjour job75,

Je viens de copier la formule pour la mettre dans mon fichier et cela ne fonctionne pas. Je vous joins le fichier concerné pour voir ce qui ne va pas ? La colonne BH doit faire le total des nombres figurants dans le colonne BG du tableau.

Cordialement
 

Pièces jointes

  • Copie de tableau de suivi adp (1).xlsx
    106.8 KB · Affichages: 5

job75

XLDnaute Barbatruc
Bonjour andromaque,

C'est sûr que sans code VBA ça ne risque pas de fonctionner !

Le code de la fonction doit être impérativement dans un module standard.

Et le fichier doit être enregistré en .xlsm.

A+
 

Pièces jointes

  • Copie de tableau de suivi adp (1).xlsm
    112.2 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 964
Membres
103 992
dernier inscrit
Christine 974