Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment enlever une lettre sous VBA

8 réponses
Avatar
Calou
Bonjour les amis,

Encore quelque chose que je ne sais pas faire sous VBA !! J'ai
r=E9cup=E9r=E9 une liste avec des matricules de 1 =E0 5 num=E9riques et sou=
vent
une lettre.
Comment faire pour identifier la lettre et la supprimer ?

Un grand merci par avance de votre aide.

Bonne journ=E9e.

Amicalement

Philippe

8 réponses

Avatar
Daniel.C
Bonjour.
Sélectionne la plage à traiter et exécute la macro :

Sub test()
Dim c As Range, txt As String
For Each c In Selection
txt = ""
For i = 1 To Len(c.Value)
If Asc(Mid(c.Value, i, 1)) < 57 Then
txt = txt & Mid(c.Value, i, 1)
End If
Next i
c.Value = txt
Next c
End Sub

Cordialement.
Daniel

Bonjour les amis,

Encore quelque chose que je ne sais pas faire sous VBA !! J'ai
récupéré une liste avec des matricules de 1 à 5 numériques et souvent
une lettre.
Comment faire pour identifier la lettre et la supprimer ?

Un grand merci par avance de votre aide.

Bonne journée.

Amicalement

Philippe
Avatar
Jacky
Bonjour,

S'il y a lettre, est-elle toujours en dernière position ??

--
Salutations
JJ


"Calou" a écrit dans le message de news:

Bonjour les amis,

Encore quelque chose que je ne sais pas faire sous VBA !! J'ai
récupéré une liste avec des matricules de 1 à 5 numériques et souvent
une lettre.
Comment faire pour identifier la lettre et la supprimer ?

Un grand merci par avance de votre aide.

Bonne journée.

Amicalement

Philippe
Avatar
Tatanka
Bonjour Calou,

Cette macro enlève de chaque cellule de ta sélection
tout ce qui n'est pas numérique. Ça te convient ?

Sub Garder_Chiffres_Seulement()
Dim c As Range
For Each c In Selection
v = c.Value
For i = 1 To Len(v)
x = Mid(v, i, 1)
If IsNumeric(x) Then nv = nv & x
Next i
c.Value = nv
nv = ""
Next c
End Sub

Serge


"Calou" a écrit dans le message de news:

Bonjour les amis,

Encore quelque chose que je ne sais pas faire sous VBA !! J'ai
récupéré une liste avec des matricules de 1 à 5 numériques et souvent
une lettre.
Comment faire pour identifier la lettre et la supprimer ?

Un grand merci par avance de votre aide.

Bonne journée.

Amicalement

Philippe
Avatar
michdenis
Bonjour,

Une autre approche :
en adaptant le nom de la feuille et de la plage de cellules
'------------------------
Sub test()
Dim C As Range, S As Variant, A As Integer
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each C In Worksheets("Feuil1").Range("A1:A5")
For A = 1 To Len(C)
If CStr(Mid(C, A, 1)) Like "[0-9]" Then
S = S & Mid(C, A, 1)
End If
Next
C = S
S = ""
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'------------------------



"Calou" a écrit dans le message de groupe de discussion
:
Bonjour les amis,

Encore quelque chose que je ne sais pas faire sous VBA !! J'ai
récupéré une liste avec des matricules de 1 à 5 numériques et souvent
une lettre.
Comment faire pour identifier la lettre et la supprimer ?

Un grand merci par avance de votre aide.

Bonne journée.

Amicalement

Philippe
Avatar
Jacky
Bonjour Daniel

???
If Asc(Mid(c.Value, i, 1)) < 57 Then

Tu es fâché avec le "9"
;o)))

--
Salutations
JJ


"Daniel.C" a écrit dans le message de news:
eMJQ%
Bonjour.
Sélectionne la plage à traiter et exécute la macro :

Sub test()
Dim c As Range, txt As String
For Each c In Selection
txt = ""
For i = 1 To Len(c.Value)
If Asc(Mid(c.Value, i, 1)) < 57 Then
txt = txt & Mid(c.Value, i, 1)
End If
Next i
c.Value = txt
Next c
End Sub

Cordialement.
Daniel

Bonjour les amis,

Encore quelque chose que je ne sais pas faire sous VBA !! J'ai
récupéré une liste avec des matricules de 1 à 5 numériques et souvent
une lettre.
Comment faire pour identifier la lettre et la supprimer ?

Un grand merci par avance de votre aide.

Bonne journée.

Amicalement

Philippe




Avatar
Daniel.C
Bonjour. Ce que c'est que de ne pas tester ;-)))

Plutôt :

Sub test()
Dim c As Range, txt As String
For Each c In Selection
txt = ""
For i = 1 To Len(c.Value)
If Asc(Mid(c.Value, i, 1)) <= 57 Then
txt = txt & Mid(c.Value, i, 1)
End If
Next i
c.Value = txt
Next c
End Sub

Daniel

Bonjour Daniel

???
If Asc(Mid(c.Value, i, 1)) < 57 Then

Tu es fâché avec le "9"
;o)))

--
Salutations
JJ


"Daniel.C" a écrit dans le message de news:
eMJQ%
Bonjour.
Sélectionne la plage à traiter et exécute la macro :

Sub test()
Dim c As Range, txt As String
For Each c In Selection
txt = ""
For i = 1 To Len(c.Value)
If Asc(Mid(c.Value, i, 1)) < 57 Then
txt = txt & Mid(c.Value, i, 1)
End If
Next i
c.Value = txt
Next c
End Sub

Cordialement.
Daniel

Bonjour les amis,

Encore quelque chose que je ne sais pas faire sous VBA !! J'ai
récupéré une liste avec des matricules de 1 à 5 numériques et souvent
une lettre.
Comment faire pour identifier la lettre et la supprimer ?

Un grand merci par avance de votre aide.

Bonne journée.

Amicalement

Philippe




Avatar
Jacquouille
En ces temps de Pâques, Jacky nous a pondu .....


"Jacky" a écrit dans le message de news:

Bonjour Daniel

???
If Asc(Mid(c.Value, i, 1)) < 57 Then

Tu es fâché avec le "9"
;o)))

--
Salutations
JJ




--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.
Avatar
Calou
On 30 mar, 16:10, "Jacquouille" wrote:
En ces temps de Pâques, Jacky nous a pondu .....

"Jacky" a écrit dans le message de news:


> Bonjour Daniel

> ???
> If Asc(Mid(c.Value, i, 1)) < 57 Then

> Tu es fâché avec le "9"
> ;o)))

> --
> Salutations
> JJ

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.



Bonjour

Un grand merci à vous tous de votre travail et de votre rapidité !!
Je vais étudier tout cela !!

Boonne fin de journée

Philippe