Du texte à l’aide de VBA Nombre
Dans une tâche récente, je faisais un filtre via VBA sur une colonne numérique. Mais cette colonne de nombres avait des nombres au format texte. Lorsque j’exécute le script VBA, cela ne fonctionne bien sûr pas, car le filtre est un nombre et la colonne contient des nombres sous forme de texte. Dans ce cas, je devais convertir le texte en nombres manuellement et l’enregistrer. Ensuite, la macro a parfaitement fonctionné.
Mais je voulais convertir ces textes en nombres en utilisant le script VBA et j’ai pu le faire. Je voulais partager cela comme si quelqu’un voulait savoir comment convertir des valeurs de texte en un nombre à l’aide de VBA, ils peuvent y jeter un coup d’œil.
===
Convertir du texte en nombre en utilisant la méthode Range.NumberFormat Cette première méthode et la plus simple. Je préfère cette méthode à d’autres méthodes car elle convertit directement la plage Excel sélectionnée en format numérique.
Donc, si vous avez une plage fixe que vous souhaitez convertir en texte, utilisez cet extrait de code VBA.
Sub ConvertTextToNumber() Range("A3:A8").NumberFormat = "General" Range("A3:A8").Value = Range("A3:A8").Value End Sub
Lorsque vous exécutez le code ci-dessus, il convertit le texte de la plage A3: A8 en texte.
Ce code peut paraître plus élégant si nous l’écrivons comme ceci.
Sub ConvertTextToNumber() With Range("A3:A8") .NumberFormat = "General" .Value = .Value End With End Sub
Comment ça marche?
Eh bien, c’est assez simple. Nous changeons d’abord le format numérique de la plage en Général. Ensuite, nous mettons la valeur de cette plage dans la même plage en utilisant VBA. Cela supprime complètement la mise en forme du texte. C’est simple, n’est-ce pas?
Changer le nombre de formatage d’une plage dynamique
Dans le code ci-dessus, nous avons changé le texte en nombre dans le code ci-dessus d’une plage fixe mais ce ne sera pas le cas la plupart du temps. Pour convertir du texte en un certain nombre de plages dynamiques, nous pouvons évaluer la dernière cellule utilisée ou sélectionner la plage de manière dynamique.
Voici à quoi cela ressemblerait:
Sub ConvertTextToNumber() With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) .NumberFormat = "General" .Value = .Value End With
Ici, je sais que la gamme commence à partir de A3. Mais je ne sais pas où cela peut finir.
J’identifie donc dynamiquement link: / tips-how-to-find-the-last-used-cell-in-one-column-in-microsoft-excel-2010 [last used excel row]
qui contient des données en utilisant l’extrait de code VBA Cells (Rows.Count, 1) .End (xlUp) .Row. Il renvoie le dernier numéro de ligne utilisé que nous concaténons avec « A3: A ».
Remarque: cet extrait de code VBA fonctionnera sur le classeur actif et la feuille de calcul active. Si votre code bascule entre plusieurs feuilles, il serait préférable de définir un objet de plage de la feuille de calcul prévue. Comme ça
Sub ConvertTextToNumber() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) With Rng .NumberFormat = "General" .Value = .Value End With End Sub
Le code ci-dessus modifiera toujours le texte au numéro de la feuille Sheet1 du classeur qui contient ce code.
Boucle et CSng pour changer le texte en nombre Une autre méthode consiste à parcourir chaque cellule et à changer la valeur de la cellule en un nombre en utilisant la fonction CSng. Voici le code.
Sub ConvertTextToNumberLoop() Set Rng = ThisWorkbook.Sheets("Sheet1").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) For Each cel In Rng.Cells cel.Value = CSng(cel.Value) Next cel End Sub
Dans l’extrait de code VBA ci-dessus, nous utilisons link: / vba-for-loops-with-7-examples [VBA For loop]
pour parcourir chaque cellule de la plage et convertir la valeur de chaque cellule en un nombre en utilisant le link: / excel-macros-and-vba-what-is-csng-function-in-excel-vba [fonction CSng de VBA]
.
Alors oui les gars, voici comment vous pouvez changer des textes en nombres dans Excel en utilisant VBA. Vous pouvez utiliser ces extraits pour préparer votre feuille de calcul avant d’effectuer une opération numérique sur eux. J’espère avoir été suffisamment explicatif. Vous pouvez télécharger le fichier de travail ici.
`link: /wp-content-uploads-2020-01-Change-Text-to-Number-Using-VBA.xls [Change Text to Number Using VBA].
Si vous avez des doutes concernant cette conversion de texte en nombre ou toute autre requête liée à Excel / VBA, demandez dans la section commentaires ci-dessous.
Articles liés:
link: / formating-in-vba-format-table-dépendant-des-formats-numériques-utilisant-vba-in-microsoft-excel [Formater les données avec des formats numériques personnalisés en utilisant VBA dans Microsoft Excel]
| Pour modifier le format numérique de colonnes spécifiques dans Excel, utilisez cet extrait de code VBA. Il couvre le format numérique du format spécifié au format spécifié en un clic.
Articles populaires:
lien: / clavier-formule-raccourcis-50-excel-raccourcis-pour-augmenter-votre-productivité [50 raccourcis Excel pour augmenter votre productivité]
| Accélérez votre tâche. Ces 50 raccourcis vous permettront de travailler encore plus rapidement sur Excel.
lien: / formules-et-fonctions-introduction-de-vlookup-function [La fonction RECHERCHEV dans Excel]
| C’est l’une des fonctions les plus utilisées et les plus populaires d’Excel qui est utilisée pour rechercher des valeurs à partir de différentes plages et feuilles. lien: / tips-countif-in-microsoft-excel [COUNTIF dans Excel 2016]
| Comptez les valeurs avec des conditions en utilisant cette fonction étonnante. Vous n’avez pas besoin de filtrer vos données pour compter une valeur spécifique.
La fonction Countif est indispensable pour préparer votre tableau de bord.
lien: / excel-formule-et-fonction-excel-sumif-function [Comment utiliser la fonction SUMIF dans Excel]
| C’est une autre fonction essentielle du tableau de bord. Cela vous aide à résumer les valeurs sur des conditions spécifiques.