IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Extraire les nombres dans une cellule [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 2
    Par défaut Extraire les nombres dans une cellule
    Bonjour,

    Après avoir parcouru le forum j'ai trouvé une fonction se rapprochant de ce que je souhaite effectuer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function LesMinuscules(Cellule As Range) As String
    Dim i As Integer
    If Cellule.Cells.Count > 1 Then Exit Function
     
    For i = 1 To Len(Cellule.Value)
        If UCase(Mid(Cellule.Value, i, 1)) <> Mid(Cellule.Value, i, 1) Then
            LesMinuscules = LesMinuscules & Mid(Cellule.Value, i, 1)
        End If
    Next i
     
    End Function
    Je souhaiterais comprendre la fonction suivante et la modifier pour récupérer seulement les nombres/chiffres dans une cellule ex : aaaa34ZZZ -> 34 54AAAzzzzzz ->54 aaaaZZZ87 -> 87


    Bien Cordialement,

    Dolgar

    Source :
    https://www.developpez.net/forums/d1...lphanumerique/
    https://www.developpez.net/forums/d1...s/#post8239065
    Merci à joe.levrai pour sa fonction LesMinuscules

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    j'ai annoté la fonction pour la compréhension

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Function LesMinuscules(Cellule As Range) As String
    Dim i As Integer
    ' Si la plage indiquée dans la formule contient plus d'une cellule on ne traite pas
    If Cellule.Cells.Count > 1 Then Exit Function
     
    ' pour chaque caractère dans la cellule
    For i = 1 To Len(Cellule.Value)
        ' si le caractère, mis en majuscule, est différent du caractère réel
        If UCase(Mid(Cellule.Value, i, 1)) <> Mid(Cellule.Value, i, 1) Then
            ' on l'ajoute dans la chaine de résultat (car c'est un minuscule)
            LesMinuscules = LesMinuscules & Mid(Cellule.Value, i, 1)
        End If
    Next i
     
    End Function

    Maintenant, pour extraire les chiffres, on peut procéder de la même manière, mais au lieu de comparer le caractère en majuscule, on va tester si le caractère est numérique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Function ExtraireChiffres(Cellule As Range) As String
    Dim i As Integer
     
    ' Si la plage indiquée dans la formule contient plus d'une cellule on ne traite pas
    If Cellule.Cells.Count > 1 Then Exit Function
     
    ' pour chaque caractère dans la cellule
    For i = 1 To Len(Cellule.Value)
        ' si le caractère est numérique
        If IsNumeric(Mid(Cellule.Value, i, 1)) Then
            ' on l'ajoute dans la chaine de résultat (car c'est un chiffre)
            ExtraireChiffres = ExtraireChiffres & Mid(Cellule.Value, i, 1)
        End If
    Next i
     
    End Function
    ceci est un cas général qui va concaténer tous les chiffres
    xx41qq31 >> 4131

    s'il faut y mettre un espace, il suffit de modifier la ligne qui concatène en ajoutant un " "

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 2
    Par défaut
    Merci beaucoup joe.levrai pour les explications !

    Bonne continuation,

    Dolgar

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 02/11/2015, 16h16
  2. Comment extraire les nombres dans une table
    Par ninatity dans le forum SQL
    Réponses: 1
    Dernier message: 30/08/2011, 14h12
  3. ne veut pas d'espaces entre les images dans une cellule
    Par cortex024 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 07/12/2006, 15h30
  4. [Tableaux] Extraire les chiffres dans une chaîne
    Par Digiduck dans le forum Langage
    Réponses: 8
    Dernier message: 16/08/2006, 14h33
  5. Extraire un nombre dans une chaine
    Par SIGOliv dans le forum Access
    Réponses: 16
    Dernier message: 13/03/2006, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo