Récupération de nombres
sertre
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Dans une cellule, j'ai un nombre de personnes, sous la forme:
10 pers
142 personn.
121 pers.
4
1 000 p
Je souhaite récupérer les nombres uniquement. J'ai pensé à un InStr avec comme repère l'espace, ce qui donne:
InStr(personne, " ")
Sauf que lors de la récupération, le 1 000 se transforme en 1.
Quel moyen pourrais je utiliser sans passer par une boucle ?
A priori, je ne peux pas utiliser un Right...
Merci
Dans une cellule, j'ai un nombre de personnes, sous la forme:
10 pers
142 personn.
121 pers.
4
1 000 p
Je souhaite récupérer les nombres uniquement. J'ai pensé à un InStr avec comme repère l'espace, ce qui donne:
InStr(personne, " ")
Sauf que lors de la récupération, le 1 000 se transforme en 1.
Quel moyen pourrais je utiliser sans passer par une boucle ?
A priori, je ne peux pas utiliser un Right...
Merci
A voir également:
- Récupération de nombres
- Convertisseur récupération de texte - Guide
- Impossible de récupérer mon compte gmail - Guide
- Nombre de jours entre deux dates excel - Guide
- Recuperation message whatsapp supprimé - Guide
- Nombres faciles - Télécharger - Outils professionnels
3 réponses
Bonjour
Retourne le total des personnes dans la même cellule
Cdlt
Retourne le total des personnes dans la même cellule
Option Compare Text Sub Addition() Application.ScreenUpdating = False Set ValCel = ActiveCell ValCel.Replace What:=Chr(10), Replacement:="+", LookAt:=xlPart ValCel.Replace What:="Personn.", Replacement:="", LookAt:=xlPart ValCel.Replace What:="Pers.", Replacement:="", LookAt:=xlPart ValCel.Replace What:="Pers", Replacement:="", LookAt:=xlPart ValCel.Replace What:="P", Replacement:="", LookAt:=xlPart ValCel.Replace What:=" ", Replacement:="", LookAt:=xlPart ActiveCell.Formula = "=" & ValCel End Sub
Cdlt
Bonjour
Excusez l'incruste
autre manière avec les expressions régulières
Michel
Excusez l'incruste
autre manière avec les expressions régulières
Option Explicit
'------------------------
Function extrait_chiffres(ByRef texto As String) As Long
Dim reg As Object
Dim extraction As Object
Dim digit
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.Pattern = "(\d)"
Set extraction = reg.Execute(texto)
For Each digit In extraction
extrait_chiffres = extrait_chiffres & (digit.Value)
Next digit
Set extraction = Nothing
Set reg = Nothing
End Function
Michel
A Sertre, je renvoi mon humble procédure, celle-ci n'affiche que les valeurs (ce qui avait été demandé) au lieu du total dans mon précédent post.
Bonjour michel_m
On voit là la griffe d'un expert, j'ai testé la fonction, mais il retourne "#Valeur". Ai-je loupé quelque chose?
Je reconnais que, l'avantage de ce principe, c'est que tous les textes sont éliminés, quels qu'ils soient. mais bon, il faut maîtriser et c'est loin d'être mon cas.
Bonne journée
Cdlt
Option Compare Text Sub Epurage() Application.ScreenUpdating = False Set ValCel = ActiveCell ValCel.Replace What:=Chr(10), Replacement:="-", LookAt:=xlPart ValCel.Replace What:="Personn.", Replacement:="", LookAt:=xlPart ValCel.Replace What:="Pers.", Replacement:="", LookAt:=xlPart ValCel.Replace What:="Pers", Replacement:="", LookAt:=xlPart ValCel.Replace What:="P", Replacement:="", LookAt:=xlPart ValCel.Replace What:=" ", Replacement:="", LookAt:=xlPart ValCel.Replace What:="-", Replacement:=Chr(10), LookAt:=xlPart End Sub
Bonjour michel_m
On voit là la griffe d'un expert, j'ai testé la fonction, mais il retourne "#Valeur". Ai-je loupé quelque chose?
Je reconnais que, l'avantage de ce principe, c'est que tous les textes sont éliminés, quels qu'ils soient. mais bon, il faut maîtriser et c'est loin d'être mon cas.
Bonne journée
Cdlt
Oui, ça marche avec des valeurs isolées dans chaque cellule, mais dans la demande initiale, toutes les valeurs sont dans la même cellule. voir en B11
https://www.cjoint.com/c/EIfhc7Oamgw
https://www.cjoint.com/c/EIfhc7Oamgw