Rechercher et extraire des nombres dans différent texte
Fermé
Tableur_7399
Messages postés
1
Date d'inscription
vendredi 13 décembre 2019
Statut
Membre
Dernière intervention
13 décembre 2019
-
13 déc. 2019 à 17:05
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 13 déc. 2019 à 19:19
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 13 déc. 2019 à 19:19
A voir également:
- Rechercher et extraire des nombres dans différent texte
- Rechercher ou entrer l'adresse - Guide
- Extraire video youtube - Guide
- Adresse IP locale : comment la trouver facilement - Guide
- Rechercher et remplacer word - Guide
- Extraire son video - Guide
3 réponses
yclik
Messages postés
3593
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
22 avril 2024
1 480
13 déc. 2019 à 17:56
13 déc. 2019 à 17:56
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
Modifié le 13 déc. 2019 à 18:47
Modifié le 13 déc. 2019 à 18:47
Bonjour,
Autre proposition avec des fonctions personnalisées
le fichier en exemple:
https://mon-partage.fr/f/xvXjF8LO/
Pour les nombres en B2, et à tirer vers le bas
Pour les types en C2 et à tirer vers le bas
Le code utilisé (dans un module standard):
Cdlt
Autre proposition avec des fonctions personnalisées
le fichier en exemple:
https://mon-partage.fr/f/xvXjF8LO/
Pour les nombres en B2, et à tirer vers le bas
=Extract_Nb(A2)
Pour les types en C2 et à tirer vers le bas
=Extract_Type(A2)
Le code utilisé (dans un module standard):
Dim Pos As Long Dim Cell As String, n As String, x As String Function Extract_Type(Texte As String) As String Types = "PI." Pos = InStr(1, Texte, Types, 1) If Pos <> 0 Then Extract_Type = "PI" ElseIf Pos = 0 Then Types = "PI ASL" Pos = InStr(1, Texte, Types, 1) Extract_Type = Types ElseIf Pos = 0 Then Types = "PI AGL" Pos = InStr(1, Texte, Types, 1) Extract_Type = Types Else Extract_Type = "" End If End Function Function Extract_Nb(Texte As String) As String Cell = Texte Types = "PI." Pos = InStr(1, Texte, Types, 1) If Pos <> 0 Then recup_Nombre Extract_Nb = n ElseIf Pos = 0 Then Types = "PI ASL" Pos = InStr(1, Texte, Types, 1) recup_Nombre Extract_Nb = n ElseIf Pos = 0 Then Types = "PI AGL" Pos = InStr(1, Texte, Types, 1) recup_Nombre Extract_Nb = n Else Extract_Nb = "" End If End Function Sub recup_Nombre() n = "" For i = Pos - 2 To 1 Step -1 x = Mid(Cell, i, 1) If x <> " " Then n = x & n Else: Exit Sub End If Next i End Sub
Cdlt
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
13 déc. 2019 à 19:04
13 déc. 2019 à 19:04
Bonjour à tous
Frenchie ta fonction personnalisée ne traite pas le cas de nombres écrit sous la forme 2 500 comme il peut y en avoir d'après le demandeur
Pour pallier cela on peut remplacer la Sub recup_Nombre par celle-ci :
Cdlmnt
Via
Frenchie ta fonction personnalisée ne traite pas le cas de nombres écrit sous la forme 2 500 comme il peut y en avoir d'après le demandeur
Pour pallier cela on peut remplacer la Sub recup_Nombre par celle-ci :
Sub recup_Nombre() n = "" For i = Pos - 2 To 1 Step -1 x = Mid(Cell, i, 1) If x = " " Or Asc(x) > 47 And Asc(x) < 58 Then n = x & n Else: Exit Sub End If Next i End Sub
Cdlmnt
Via
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
13 déc. 2019 à 19:19
13 déc. 2019 à 19:19
Bonjour Via55
J'y ai pensé, mais comme dans le 1er exemple proposé, le séparateur de milliers n'apparaissait pas, j'en ai pas tenu compte, à tord sûrement.
Merci d'avoir corrigé.
Cdlt
J'y ai pensé, mais comme dans le 1er exemple proposé, le séparateur de milliers n'apparaissait pas, j'en ai pas tenu compte, à tord sûrement.
Merci d'avoir corrigé.
Cdlt