Séparer chiffres et lettres et en supprimer certains
Fermé
GAEL8311
-
18 août 2015 à 09:12
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 19 août 2015 à 09:07
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 19 août 2015 à 09:07
A voir également:
- Convertir un chiffre en lettre en langage c
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Convertir youtube en mp3 avec audacity - Guide
- Convertir pdf en word excel gratuit - Guide
- Excel mois en lettre ✓ - Forum Excel
2 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
19 août 2015 à 09:07
19 août 2015 à 09:07
Bonjour
Pour le fun, un exemple en utilisant la bibliothèque de mon grenier
(textes en colonne A restitution en colonne B
Pour le fun, un exemple en utilisant la bibliothèque de mon grenier
(textes en colonne A restitution en colonne B
Option Explicit
'------- --------
Sub separer_nombre_texte()
Dim texto As String, Lig As Integer, Derlig As Integer
Application.ScreenUpdating=false
With ActiveSheet
Derlig = .Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
For Lig = 1 To Derlig
texto = .Cells(Lig, "A")
.Cells(Lig, "B") = Right(extrait_chiffres(texto), 2) & " " & extrait_lettres(texto)
Next
End With
End Sub
'--------------
Function extrait_chiffres(ByRef texto As String) As Long
Dim reg As Object
Dim extraction As Object
Dim Digit
Set reg = CreateObject("vbscript.regexp")
'on travaille sur toute la cellule
reg.Global = True
'le modèle est des caractères "digitaux ("d") à n chiffres (d?\)
reg.Pattern = "(\d)"
' éxécute l'extraction svt modèle (collection des digits...)
Set extraction = reg.Execute(texto)
For Each Digit In extraction
' concaténète les membres de la collection "extraction"
extrait_chiffres = extrait_chiffres & (Digit.Value)
Next Digit
Set extraction = Nothing
Set reg = Nothing
End Function
'-------
Function extrait_lettres(ByRef texto As String) As String
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_lettres = extrait_lettres & (Digit.Value)
Next Digit
Set extraction = Nothing
Set reg = Nothing
End Function
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
18 août 2015 à 10:20
18 août 2015 à 10:20
Bonjour,
Repère la position de la première lettre dans ta chaîne de caractères complète avec une boucle, puis utilise Mid ou Right pour prendre la chaîne à partir de cette position moins 2 crans...
Pour trouver la position tu peux p. ex. utiliser Do While ... Loop :
- avec les codes ASCII (Asc(caractère) renvoie le code ASCII)
- et InStr(caractère,"0123456789")>0
A+
Repère la position de la première lettre dans ta chaîne de caractères complète avec une boucle, puis utilise Mid ou Right pour prendre la chaîne à partir de cette position moins 2 crans...
Pour trouver la position tu peux p. ex. utiliser Do While ... Loop :
- avec les codes ASCII (Asc(caractère) renvoie le code ASCII)
- et InStr(caractère,"0123456789")>0
A+