Comment extraire uniquement les chiffres d'une cellule Excel (7 méthodes simples)

  • Partage Ça
Hugh West

Bien que Microsoft n'ait pas fourni une formule ou une syntaxe directe pour extraire uniquement les chiffres de la cellule Excel, nous pouvons incorporer un large éventail de Formules Excel Dans cet article, nous allons essayer de montrer et d'expliquer en détail comment nous pouvons faire ressortir uniquement les chiffres des cellules avec les formules appropriées en fonction de quelques critères.

Télécharger le cahier d'exercices

Téléchargez gratuitement le livre d'exercices que nous avons utilisé pour préparer cet article. Vous pouvez saisir les valeurs de texte avec des chiffres dans les cellules sélectionnées et trouver les résultats immédiatement grâce aux formules intégrées.

Extraire des nombres d'une cellule.xlsm

7 méthodes efficaces pour extraire uniquement les chiffres d'une cellule Excel

Il y aura un code VBA, une fonction Excel et cinq formules pratiques pour vous aider à extraire des chiffres d'une cellule. Comme dans l'image ci-dessous, nous avons des codes comprenant des chiffres et des lettres où les chiffres sont présents au début. Nous devons extraire ces chiffres ou ces nombres uniquement.

1. Extraire des chiffres du début d'un texte

Dans cette première méthode, nous allons combiner les GAUCHE , SOMME , LEN et SUBSTITUTE pour extraire des chiffres du début d'une chaîne de texte. Tout d'abord, nous allons taper cette formule dans la cellule, puis, à l'aide de la fonction la poignée de remplissage nous allons copier cette formule dans le reste des cellules.

Des pas :

  • Tout d'abord, tapez la formule dans la cellule C5 .

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0","1","2","3","4","5","6","7","8","9"},""))))

  • Ensuite, appuyez sur Entrez et vous obtiendrez le numéro 34 pour le premier code.

  • Troisièmement, utilisez le Poignée de remplissage puis pour remplir automatiquement toutes les autres cellules de la colonne C .

🔎 Répartition des formules

SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")

  • Ici, le SUBSTITUTE trouvera les chiffres (0-9) consécutivement et, si elle les trouve, elle remplacera ce chiffre dans la cellule B5 avec un caractère vide à chaque fois. Ainsi, la fonction retournera comme suit : {"34DTXRF", "34DTXRF", "34DTXRF", "4DTXRF", "3DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF"}.

LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))

  • Le site LEN détermine le nombre de caractères d'une chaîne de caractères. Donc, ici, la fonction LEN comptera tous les caractères trouvés individuellement dans les textes par le biais de la fonction SUBSTITUTE Les valeurs résultantes seront ici dans notre cas - {7,7,7,6,6,7,7,7,7,7,7,7}.

LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))

  • Maintenant, cette partie est la soustraction du nombre de caractères dans la cellule B5 à tous les autres nombres de caractères trouvés individuellement dans la section précédente de la formule. Donc, ici, les valeurs résultantes seront - {0,0,0,1,1,0,0,0,0,0}.

SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))

  • Le site SOMME va alors simplement additionner toutes les valeurs soustraites trouvées & ; le résultat sera donc ici, 2 (0+0+0+1+1+0+0+0+0+0).

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))))

  • Et maintenant, voici la partie finale où la GAUCHE retournera les valeurs avec un nombre exact de caractères à partir de la gauche trouvée dans la section précédente de la formule. Comme la valeur de la somme est 2, la fonction GAUCHE ici retournera seulement 34 du texte 34DTXRF .

En rapport : Comment séparer les nombres dans Excel à l'aide d'une formule (5 façons)

Extraction de nombres à partir de la partie droite d'un texte

Dans cette section, nous allons extraire les nombres ou les chiffres du côté droit de la chaîne de texte. Nous utiliserons la fonction DROIT , MIN et RECHERCHE fonctions ici.

Des pas :

  • Pour commencer, dans notre jeu de données, ce que nous devons taper dans la cellule C5 est-

=RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& ; "0123456789")) +1)

  • Ensuite, appuyez sur Entrez et ensuite utiliser le Poignée de remplissage pour remplir automatiquement le reste des cellules.

🔎 Répartition des formules

B5& ; "0123456789″

  • Ici, nous concaténons les valeurs dans la section B5 cellule avec 0123456789 en utilisant esperluette (& ;) entre eux et nous obtiendrons la valeur résultante DTXRF340123456789.

SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″)

  • Maintenant, le RECHERCHE recherchera tous les chiffres (0-9) un par un dans la valeur résultante obtenue à partir de la section précédente et renverra les positions de ces 10 chiffres dans les caractères de la fonction DTXRF340123456789 Donc, ici nos valeurs résultantes seront : {8,9,10,6,7,13,14,15,16,17}.

MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″))

  • Le site MIN est utilisée pour trouver le chiffre ou le nombre le plus bas dans un tableau. Donc, ici, la valeur minimale ou la plus basse sera... 6 à partir du tableau {8,9,10,6,7,13,14,15,16,17} trouvé dans la section précédente de la formule.

LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& ; "0123456789″)) +1)

  • Maintenant, le nombre de caractères dans B5 sera trouvé par le LEN Elle soustraira ensuite la valeur 6 (trouvée dans la dernière section) et retournera le résultat en ajoutant 1. Dans notre cas, la valeur résultante sera la suivante 2 (7-6+1) .

DROIT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& ; "0123456789″)) +1)

  • Le site DROIT renvoie le nombre spécifié de caractères du dernier côté ou du côté droit d'une chaîne de caractères. En suivant le résultat trouvé par le processus de soustraction dans la section précédente, ici la fonction DROIT affichera les 2 derniers caractères de la cellule B5 et ce sera 34 .

Lire la suite : Comment séparer des nombres dans une cellule en Excel (5 méthodes)

3) Extraire des nombres de n'importe quelle partie d'une chaîne de texte

Voici une solution générale pour tous les cas de figure. Cette méthode permet d'extraire des chiffres ou des nombres à partir de n'importe quelle position dans une chaîne de texte. De plus, nous utiliserons l'attribut TEXTJOIN , IFERROR , INDIRECT , MID et ROW dans cette méthode.

Des pas :

  • Tout d'abord, tapez la formule dans votre cellule de destination comme suit-

=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1 :"&LEN(B5))),1)*1),"")))

  • Ensuite, si vous utilisez Excel 2016 ou une version plus récente, puis appuyez sur Entrez sinon, appuyez sur Ctrl+Shift+Enter pour obtenir le résultat de cette formule de tableau.
  • Après cette étape, remplissez automatiquement les autres cellules à l'aide de la fonction Poignée de remplissage et vous avez terminé.

🔎 Répartition des formules

INDIRECT("1 :"&LEN(B5))

  • Le site INDIRECT est utilisée pour stocker un tableau de valeurs de cellules en tant que texte de référence. Ici, l'esperluette (& ;) La commande concatène la longueur des caractères de la cellule B5 avec une syntaxe de gamme incomplète (1 :) .
  • Donc, ici le INDIRECT stockera tous les nombres compris entre 1 et la longueur des caractères dans la cellule B5 comme texte de référence.

ROW(INDIRECT("1 :"&LEN(B5)))

  • Le site ROW indique généralement le numéro de ligne d'une cellule, mais ici, dans la fonction INDIRECT car aucune cellule de référence n'a été mentionnée, dans ce cas, la fonction ROW extraira toutes les valeurs ou tous les nombres des textes de référence stockés dans la base de données de l'UE. INDIRECT fonction.
  • Maintenant, pour la 1ère cellule B5 les valeurs résultantes à travers ces ROW et INDIRECT Les fonctions seront : {1;2;3;4;5;6;7;8;9}.

(MID(B5,ROW(INDIRECT("1 :"&LEN(B5)),1))

  • Le site MID vous permettra de déterminer les caractères du milieu d'une chaîne de texte, étant donné une position de départ & ; longueur.
  • Donc, ici pour les 9 positions trouvées dans la section précédente, le MID La fonction maintenant montrera tous les caractères un par un pour chaque position & ; ainsi renverra les valeurs comme- {"1″ ; "9″ ;" " ; "D" ; "X" ; "2″ ; "M" ; "N"}.

IFERROR((MID(B5,ROW(INDIRECT("1 :"&LEN(B5))),1)*1),"")

  • Maintenant, le IFERROR est une fonction logique qui détermine si une chaîne de caractères est un nombre ou autre chose. Si elle n'identifie pas une chaîne de caractères avec des nombres ou des chiffres, elle renvoie la valeur avec une commande de texte définie.
  • Dans notre cas, toutes les valeurs trouvées dans la dernière section seront multipliées par 1. Lorsque les résultats sont renvoyés comme des erreurs de valeur pour les lettres ou les valeurs de texte qui ne peuvent pas être multipliées, leur IFERROR La fonction convertira les erreurs en chaînes vides. Ainsi, nos valeurs résultantes seront les suivantes : {1;9 ;"" ;"" ;"" ;"";2 ;"" ;""}.

=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1 :"&LEN(B5))),1)*1),"")))

  • Et maintenant, la partie finale sera exécutée par l'intermédiaire de la fonction TEXTJOIN Cette fonction est utilisée pour concaténer ou joindre deux chaînes de caractères avec un délimiteur spécifié.
  • Ainsi, les valeurs résultantes que nous avons trouvées dans la section précédente seront maintenant réunies avec ceci TEXTJOIN Et ainsi nous obtiendrons le nombre 192.

Lire la suite : Comment extraire plusieurs nombres d'une chaîne de caractères dans Excel (6 méthodes)

4. Emboîter des fonctions multiples pour faire ressortir uniquement des chiffres

Nous allons maintenant vous montrer une autre formule qui permet d'extraire uniquement les chiffres de n'importe quelle position d'une cellule Excel. Bien qu'elle puisse sembler assez complexe, nous allons décomposer l'ensemble de la formule et essayer d'expliquer facilement toutes les fonctions compactes. De plus, nous utiliserons la fonction SI , LARGE , INDEX , SUMPRODUCT et ISNUMBER dans cette formule.

  • Pour commencer, tapez cette formule dans la cellule C5 Vous devez remplacer la référence de la cellule uniquement sur la base de votre propre cellule dans la feuille de calcul, puis en intégrant cette formule, vous obtiendrez immédiatement le résultat escompté. Et cette formule fonctionne parfaitement dans toutes les versions d'Excel.

=IF(SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&B5, LARGE(INDEX(ISNUMBER(--MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • Après cela, vous devez appuyer sur Entrez seulement après avoir tapé la formule entière et vous avez terminé.

🔎 Répartition des formules

Avant de commencer la décomposition de cette formule massive & ; compacte, nous pouvons la séparer en quelques parties comme-

=IF(A>0, SUMPRODUCT(B 1 *C 1 , B 2 *C 2 , ..........B n C n ),"")

Cette syntaxe signifie que si A est supérieur à 0, alors tous les produits de B n et C n s'additionneront pour donner le résultat final. Et si A n'est pas supérieure à 0, le résultat sera une cellule vide ou vierge.

  • A = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "".
  • B = MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)
  • C = 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10), "", "".

Ventilation de la partie A = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, """.

SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "")

  • Le site SUBSTITUTE trouvera tous les chiffres (0-9) un par un dans le texte. 19 DDX2MN à chaque fois et remplacera ces chiffres par une chaîne vide à la place des chiffres.
  • Ainsi, les valeurs résultantes dans un tableau seront : {"19 DDX2MN", "9 DDX2MN", "19 DDXMN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "1 DDX2MN"}.

LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • Le site LEN va maintenant compter le nombre de caractères dans toutes les valeurs de chaîne obtenues dans la section précédente. Ainsi, cette fonction retournera {9,8,8,9,9,9,9,9,9,9,8}.

LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • Maintenant, dans cette partie de la formule, un certain nombre de caractères dans la cellule B5 soustraira tous les nombres trouvés dans la section précédente. Les valeurs résultantes seront alors : {0,1,1,0,0,0,0,0,0,1}.

SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "")))

  • Avec l'aide de l SOMME les valeurs contenues dans le tableau trouvé dans la dernière section seront additionnées jusqu'à 3 (0+1+1+0+0+0+0+0+0+1).
  • Donc, selon la première partie de notre formule, A>0 (3>0) Maintenant, nous allons passer à la partie suivante de la décomposition.

Ventilation de la partie B = MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)

INDIRECT("$1:$"&LEN(B5))

  • Le site INDIRECT stockera les valeurs de la chaîne en tant que référence au tableau. À l'intérieur des parenthèses, l'esperluette (& ;) La commande joindra le nombre de caractères trouvés dans la cellule B5 avec la syntaxe "Range of cells", ce qui signifie que de 1 au nombre de caractères définis, chacun sera stocké comme une référence de tableau.

ROW(INDIRECT("$1:$"&LEN(B5)))

  • Maintenant, cette ROW extraira tous les chiffres du tableau et les valeurs résultantes pour la cellule B5 sera- {1;2;3;4;5;6;7;8;9}.

MID(B5,ROW(INDIRECT("$1:$"&LEN(B5)),1)

  • Dans cette partie de la formule, le MID La fonction exprimera tous les caractères de la cellule B5 basé sur toutes les positions trouvées comme numéros dans la section précédente. Ainsi, les valeurs extraites seront trouvées après cette partie- {"1″ ; "9″ ; " " ; "D" ; "X" ; "2″ ; "M" ; "N"}.

ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5)),1)))

  • Comme ISNUMBER est une fonction logique, elle déterminera individuellement si les valeurs trouvées dans la section précédente sont des chaînes de nombres ou non. Si oui, elle retournera la valeur suivante VRAI sinon, il s'affichera comme suit FAUX .
  • Ainsi, dans notre cas, le résultat sera : {Vrai ; Vrai ; Faux ; Faux ; Faux ; Faux ; Faux ; Vrai ; Faux ; Faux}.

INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0)

  • Si vous remarquez dans la fonction ci-dessus, un double tiret, connu sous le nom de Double unaire Il est utilisé pour convertir toutes les valeurs logiques en chaînes de chiffres. 1(VRAI) ou 0(FALSE) Maintenant, le INDEX retournera ce résultat sous la forme {1;1;0;0;0;0;1;0;0}.
  • Après cela, les valeurs résultantes seront multipliées par les valeurs obtenues à partir des ROW dans le tableau et le résultat sera : {1;2;0;0;0;0;0;7;0;0}.

LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))

  • Le site LARGE réorganisera maintenant les valeurs les plus grandes du tableau en fonction des positions basées sur les nombres trouvés dans la fonction ROW fonctions. & ; nos valeurs résultantes pour cette section de la formule seront : {7;2;1;0;0;0;0;0;0}.

MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)

  • Maintenant, cette partie de la fonction va concaténer 0 avec les textes dans la cellule B5 Puis il ajoutera 1 individuellement avec tous les chiffres trouvés dans la dernière section et montrer les caractères de B5 cellule sur la base des positions numériques définies.
  • Donc, notre résultat de cette section sera : {"2″ ; "9″ ; "1″ ; "0″ ; "0″ ; "0″ ; "0″ ; "0″ ; "0"}.

Répartition de la partie C = (10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • Cette partie va déterminer les puissances de 10 & ; les stocker à l'intérieur du tableau. Les chiffres des puissances sont les nombres trouvés à partir de l'équation suivante ROW fonction précédemment.
  • Cette partie de la formule renvoie les valeurs suivantes : {1;10;100;1000;10000;100000;1000000;10000000;100000000}.

Multiplication de B n et C n

  • Les valeurs résultantes des deux dernières pannes majeures de B et C seront maintenant multipliées à l'intérieur du tableau. Les produits trouvés à partir des multiplications seront alors : {2;90;100;0;0;0;0;0;0}.
  • Et enfin, le SUMPRODUCT additionnera les valeurs trouvées dans le tableau. Ainsi, notre résultat final sera le suivant 192 (2+90+100+0+0+0+0+0+0) qui est le nombre extrait de la cellule B5 .

Lire la suite : Comment séparer le texte et les chiffres dans Excel (4 façons simples)

5. Extraire des nombres à cinq chiffres d'une chaîne de caractères

Nous allons utiliser une autre formule pour extraire des nombres à cinq chiffres de n'importe quelle partie d'une chaîne de caractères dans Excel. Nous utiliserons la formule CONCAT et SEQUENCE De plus, nous avons légèrement modifié notre jeu de données pour cette méthode.

Des pas :

  • Tout d'abord, sélectionnez la plage de cellules C5:C12 .
  • Ensuite, tapez la formule suivante.

=CONCAT(IFERROR(0+MID(B5,SEQUENCE(LEN(B5)),1),"")))

  • Enfin, appuyez sur Ctrl+Enter .

🔎 Répartition des formules

  • LEN(B5)
    • Sortie : 11 .
    • Cette fonction renvoie la longueur de la chaîne de caractères.
  • SEQUENCE(11)
    • Output: {1;2;3;4;5;6;7;8;9;10;11} .
    • Cette fonction renvoie les onze premiers numéros.
  • MID(B5,{1;2;3;4;5;6;7;8;9;10;11},1)
    • Sortie : {"1″ ; "9″ ; " ; "D" ; "X" ; "2″ ; "M" ; "N" ; "3″ ; "3″} .
    • En utilisant cette partie, nous obtenons les caractères individuels de la chaîne.
  • 0+{"1″ ; "9″ ;" " ; "D" ; "X" ; "2″ ; "M" ; "N" ; "3″ ; "3″}
    • Sortie : {1;9;#VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;3;3} .
    • Lorsque nous ajoutons un zéro à une chaîne de caractères, cela renvoie une erreur.
  • IFERROR({1;9;#VALEUR!;#VALEUR!;#VALEUR!;#VALEUR!;2;#VALEUR!;#VALEUR!;3;3},"")
    • Sortie : {1;9 ;"" ;"" ;"" ;"";2 ;"" ;"";3;3} .
    • Nous obtenons un blanc pour toutes les valeurs d'erreur.
  • CONCAT({1;9 ;"" ;"" ;"" ;"";2 ;"" ;"";3;3}))
    • Sortie : 19233 .
    • Enfin, nous additionnons toutes les valeurs pour en extraire des nombres à cinq chiffres seulement.

6. utilisation de l'effet de flash pour extraire des chiffres dans une plage donnée

Utilisation de le site Flash Fill est plus facile et plus simple que toutes les autres méthodes mentionnées ci-dessus. Nous allons extraire des nombres à partir de n'importe quelle position dans les chaînes de texte. Pour exécuter cette méthode correctement, nous devons aider Excel à trouver le modèle des valeurs de cellule dans une colonne ou une ligne en effectuant l'extraction pour les deux premières valeurs seulement.

Des pas :

  • Pour commencer, tapez les chiffres manuellement dans la cellule C5 .

  • Ensuite, commencez à taper les chiffres de la cellule B6 à la cellule C6 et Excel reconnaîtra automatiquement le modèle.
  • Enfin, appuyez sur Entrez .

Notes : Cette méthode présente quelques inconvénients, c'est pourquoi elle n'est pas recommandée dans tous les cas où vous devez extraire des nombres de chaînes de texte. La fonction Flash Fill suit généralement un modèle à partir des cellules d'une colonne ou d'une plage. Ainsi, les 2 ou 3 premières extractions ou calculs doivent être effectués manuellement pour aider Excel à absorber le modèle commun des valeurs résultantes. Mais parfois, il ne suit pas le modèle exact dont nous avons besoin et, par conséquent, il suivra son propre modèle et vous donnera un résultat non conforme.

Par exemple, si nous devions extraire deux zéros (00) des données fournies, il n'afficherait qu'un seul zéro, et non deux. Ensuite, si vous voulez extraire des chiffres du début ou de la fin d'une cellule, il extraira également les valeurs textuelles, en plus des chiffres.

Lire la suite : Comment extraire des nombres après un texte spécifique dans Excel (2 façons appropriées)

7. application du code VBA pour extraire uniquement les chiffres d'une cellule Excel

Si vous êtes intéressé par l'utilisation du Macro Excel VBA pour extraire uniquement les chiffres des cellules, vous devez suivre les étapes ci-dessous. Nous vous montrerons comment saisir le code dans le champ Module VBA Ce code demandera à l'utilisateur de spécifier les plages de cellules d'entrée et de sortie.

Des pas :

  • Tout d'abord, appuyez sur ALT+F11 pour ouvrir le VBA fenêtre.
  • Ensuite, à partir de la Insérer sélectionnez l'onglet Module Une nouvelle fenêtre de module apparaît dans laquelle vous devez saisir les codes.

  • Troisièmement, dans votre module, collez les codes suivants après les avoir copiés.
 Option Explicit Sub ExtractNumbersOnly() Dim CellValue As Range Dim InBx1 As Range Dim InBx2 As Range Dim NumChar As Integer Dim StartChar As Integer Dim XtrNum As String Dim DBxName1 As String Dim DBxName2 As String Dim Iteration As Integer DBxName1 = "Input Data Selection" DBxName2 = "Output Cell Selection" Set InBx1 = Application.InputBox("Input Range of Text Cells :", _ DBxName1, "", Type:=8)If TypeName(InBx1) = "Nothing" Then Exit Sub Set InBx2 = Application.InputBox("Select Output Cells :", _ DBxName2, "", Type:=8) If TypeName(InBx2) = "Nothing" Then Exit Sub Iteration = 0 XtrNum = "" For Each CellValue InBx1 Iteration = Iteration + 1 NumChar = Len(CellValue) For StartChar = 1 To NumChar If IsNumeric(Mid(CellValue, StartChar, 1)) Then XtrNum = XtrNum & ; Mid(CellValue,StartChar, 1) End If Next StartChar InBx2.Item(Iteration) = XtrNum XtrNum = "" Next CellValue End Sub 

  • Ensuite, appuyez sur F5 pour exécuter le code. Une boîte de dialogue nommée " Sélection des données d'entrée " apparaîtra.
  • Ensuite, sélectionnez toutes les cellules de texte (c.-à-d. B5:B12 ) et appuyez sur OK .

  • Après cela, une autre boîte de dialogue nommée " Sélection de la cellule de sortie "Une fenêtre apparaît, dans laquelle vous devez sélectionner une cellule particulière ou une plage de cellules pour voir les données ou les valeurs de sortie.
  • Enfin, sélectionnez la plage de cellules C5:C12 et appuyez sur Entrez .

  • Par conséquent, vous verrez les chiffres extraits des textes en une seule fois. Ainsi, nous allons terminer les sept méthodes rapides pour extraire les chiffres uniquement des cellules Excel.

🔎 Découpage du code VBA

Déclarer les paramètres

 Option Explicit Sub ExtractNumbersOnly() Dim cellValue As Range Dim InBx1 As Range Dim InBx2 As Range Dim NumChar As Integer Dim StartChar As Integer Dim XtrNum As String Dim DBxName1 As String Dim DBxName2 As String Dim Iteration As Integer DBxName1 = "Sélection des données d'entrée" DBxName2 = "Sélection des cellules de sortie". 
  • Dans cette partie, nous déclarons d'abord tous nos paramètres sous forme d'entiers, de chaînes de caractères ou de plages de cellules, puis nous donnons le nom de nos boîtes de dialogue à l'aide de la commande "Sélection des données d'entrée" et "Sélection de la cellule de sortie" .

Définir les types d'entrées et de sorties pour les boîtes de dialogue

 Set InBx1 = Application.InputBox("Plage de saisie des cellules de texte :", _ DBxName1, "", Type:=8) If TypeName(InBx1) = "Nothing" Then Exit Sub Set InBx2 = Application.InputBox("Sélection des cellules de sortie :", _ DBxName2, "", Type:=8) If TypeName(InBx2) = "Nothing" Then Exit Sub Iteration = 0 XtrNum = "" 
  • Nous allons maintenant définir les paramètres et leurs types pour les boîtes de dialogue. Ici, l'ajout de Type:=8 signifie que les données d'entrée et de sortie seront constituées de cellules de référence ou d'une plage de cellules.
  • Nous définissons également que si les données d'entrée ne sont pas trouvées, alors la sous-routine s'arrêtera. En mentionnant cette macro, la sous-routine ne s'arrêtera pas pour cause de données manquantes, mais elle cessera plutôt de fonctionner.

Combinaison des fonctions à l'intérieur du code Boucles pour itérations

 For Each cellValue In InBx1 Iteration = Iteration + 1 NumChar = Len(cellValue) For StartChar = 1 To NumChar If IsNumeric(Mid(cellValue, StartChar, 1)) Then XtrNum = XtrNum & ; Mid(cellValue, StartChar, 1) End If Next StartChar InBx2.Item(Iteration) = XtrNum XtrNum = "" Next cellValue End Sub 
  • Enfin, c'est la partie la plus cruciale où nous appliquons les fonctions ou les formules que nous devons attribuer aux textes pour trouver les valeurs résultantes des chaînes de caractères.
  • L'un des principaux avantages du codage d'une fonction pour Excel est qu'il n'est pas nécessaire de taper une grande formule comme nous devions le faire dans les méthodes précédentes, car VBA a des commandes intégrées pour utiliser des boucles For ou While où l'itération pour chaque détail dans une chaîne de texte peut être exécutée sans aucun problème.

Lire la suite : Comment séparer les nombres du texte dans Excel VBA (3 méthodes)

Conclusion

Nous vous avons montré 7 méthodes faciles pour extraire uniquement les chiffres à partir d'une cellule Excel. Extraire uniquement des chiffres d'une chaîne de texte n'est pas aussi simple qu'il n'y paraît, car il faut combiner plusieurs fonctions, ce qui complique la formule ou la syntaxe finale. Mais nous espérons que la façon dont nous avons essayé d'illustrer les formules en décomposant les fonctions internes vous a aidé à comprendre la syntaxe avec un peu plus de confort et de facilité.

Si vous trouvez d'autres fonctions ou formules que nous aurions dû ajouter ici, n'hésitez pas à nous le faire savoir par le biais de vos précieux commentaires. Vous pouvez également consulter nos articles plus informatifs et intéressants sur les fonctions Excel sur ce site.

Hugh West est un formateur et analyste Excel très expérimenté avec plus de 10 ans d'expérience dans l'industrie. Il est titulaire d'un baccalauréat en comptabilité et finance et d'une maîtrise en administration des affaires. Hugh a une passion pour l'enseignement et a développé une approche pédagogique unique qui est facile à suivre et à comprendre. Sa connaissance approfondie d'Excel a aidé des milliers d'étudiants et de professionnels du monde entier à améliorer leurs compétences et à exceller dans leur carrière. Grâce à son blog, Hugh partage ses connaissances avec le monde, offrant des tutoriels Excel gratuits et une formation en ligne pour aider les particuliers et les entreprises à atteindre leur plein potentiel.