Supprimer tout ce qui n'est pas numerique

Bonjour,

Je suis débutante en VBA.

Je suis à la recherche d'une solution pour :

1- supprimer dans mes cellules sélectionner tout ce qui n'est pas numérique

2-lorsque j'ai deux numéros à la suite je veux conserver que le 1er (soit les 10 premiers chiffres)

3-Ajouter le 0 devant les numéros

Il s'agit de numéro de téléphone voici des exemples types que je peux trouver dans mes fichiers :

782244740

tel620905745

4.77.51.08.69

0549352151OU0648837997

6/23/11/74/10

DOMICILE:0553468051PORTABLE:0694814363

7705418510615780500

Un grand merci aux personnes qui pourront m'aider !!!

Bonne journée.

Océane

Bonjour,

voici une possibilité avec fonction perso,

=MonNombre(A1)

Function MonNombre(cellule As Range)
Dim i As Integer
MonNombre = "0"
For i = 1 To Len(cellule)
v = Mid(cellule, i, 1)
If IsNumeric(v) And Len(MonNombre) < 10 Then MonNombre = MonNombre & Mid(cellule, i, 1)
Next i
MonNombre = Format(MonNombre, "0# ## ## ## ##")
End Function

Bonjour,

Je vous remercie pour votre retour mais malheureusement lorsque j'exécute il ne se passe strictement rien

Océane

Bonjour Océane,

c'est une fonction personnalisé,

Bonjour,

Tu peux essayer ceci:

Sub SuppNonNumSelection()
    Dim C As Range
    For Each C In Selection
        If Not IsNumeric(C.Value) Then
            C.ClearContents
        End If
    Next
End Sub

Bonne journée,

Re,

Merci beaucoup I20100 ! J'ai réussi à la faire fonctionner !!

Il me manque un dernier point pour que tout soit parfait ; cette fonction rajoute le 0 devant, mais lorsque j'ai des numéros qui l'ont déjà ça met "00" et du coup décale les numéros suivants.

Il existe un moyen de gérer ça ?!

Encore merci beaucoup !

@GNIN, merci pour votre temps accordé mais je ne souhaitais pas supprimer les valeurs de mes cellules

Bonjour Océane, GNIN,

il faut enlever la ligne

MonNombre = "0"

voici la modification,

Function MonNombre(cellule As Range)
Dim i As Integer
For i = 1 To Len(cellule)
v = Mid(cellule, i, 1)
If IsNumeric(v) And Len(MonNombre) < 10 Then MonNombre = MonNombre & Mid(cellule, i, 1)
Next i
MonNombre = Format(MonNombre, "0# ## ## ## ##")
End Function

Merci infiniment !!!

Merci pour ce retour, au plaisir!

Hé oui ! Je n'avais traité que le point n°1 sans lire la suite.

Avec quelques petites corrections en complément de ce qui t'a déjà été proposé sous la forme d'une fonction.

Sub SuppNonNumSelection()
    Dim C As Range
    Dim i As Integer
    Dim T As Variant

    For Each C In Selection
        T = ""
        For i = 1 To Len(C.Value)
            If Asc(Mid(C.Value, i, 1)) >= 48 And Asc(Mid(C.Value, i, 1)) <= 57 Then
                T = T & Mid(C.Value, i, 1)
            End If
        Next i
        If Len(T) >= 10 Then
            T = Left(T, 10)
        Else
            T = String(10 - Len(T), "0") & T
        End If

        C.NumberFormat = "00 00 00 00 00"
        C.Value = T
    Next
End Sub
Rechercher des sujets similaires à "supprimer tout qui pas numerique"