Fonction de texte Excel VBA
La fonction de texte VBA est uniquement utilisée dans VBA. Il semble qu'il convertisse les nombres en texte. Mais en réalité, il convertit les nombres dans n'importe quel format comme l'heure, la date ou la plage de nombres. Pour cela, nous devons autoriser cette fonction à activer en tant que classe.
Si nous voyons l'argument du texte VBA, alors nous verrons qu'il se compose d'Arg1 et Arg2 comme indiqué ci-dessous.
- Arg1 - Ici, nous allons mettre la valeur que nous voulons convertir au format standard.
- Arg2 - Et ici, nous allons sélectionner le format dans lequel nous voulons voir la sortie venir.
Les deux variables seront définies comme String.
Comment utiliser la fonction de texte Excel VBA?
Nous allons apprendre à utiliser une fonction Texte VBA avec quelques exemples dans Excel.
Vous pouvez télécharger ce modèle Excel de texte VBA ici - Modèle Excel de texte VBAFonction de texte VBA - Exemple # 1
Nous convertirons le texte ou les nombres au format standard dans tous les exemples à venir de différentes manières.
Suivez les étapes ci-dessous pour utiliser la fonction Texte dans VBA.
Étape 1: Ouvrez un module disponible dans l'onglet de menu Insertion, comme illustré ci-dessous.
Étape 2: Dans le module VBA ouvert, écrivez la sous-procédure du texte VBA comme indiqué ci-dessous.
Code:
Sub VBA_Text1 () End Sub
Étape 3: Conformément à la syntaxe du texte VBA, nous aurons besoin de deux arguments. Donc, définissez la première variable comme String où nous donnerons l'entrée comme indiqué ci-dessous.
Code:
Sub VBA_Text1 () Dim Input1 As String End Sub
Étape 4: Définissez maintenant une autre variable où nous obtiendrons la sortie. Et ce serait aussi comme String.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String End Sub
Étape 5: Considérez maintenant tout nombre aléatoire que nous devons convertir au format standard. Ce pourrait être le nombre que nous voulons voir ou ce pourrait être n'importe quel nombre aléatoire. Supposons, si nous considérons un nombre décimal 0, 123 et voyons ce que nous obtiendrions.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String Input1 = 0.123 End Sub
Étape 6: Maintenant dans l'autre variable définie qui est Output, nous allons l'utiliser pour mettre du texte VBA. Maintenant, cette fonction sera utilisée comme fonction de feuille de calcul comme indiqué ci-dessous.
Étape 7: Sélectionnez la fonction Texte VBA dans la liste des fonctions intégrées. Maintenant, selon la syntaxe, nous allons utiliser notre variable et le format dans lequel nous voulons convertir cela en format standard Arg1 comme dans lequel nous voulons convertir ce nombre sélectionné.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String Input1 = 0.123 Output = WorksheetFunction.Text (End Sub
Étape 8: Dans Arg1, nous écrivons la variable Input1 qui a notre numéro que nous devons convertir et Arg2 sera le format HH: MM: SS AM / PM.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String Input1 = 0.123 Output = WorksheetFunction.Text (Input1, "hh: mm: ss AM / PM") End Sub
Étape 9: Utilisez maintenant MsgBox pour voir ce qui vient comme sortie.
Code:
Sub VBA_Text1 () Dim Input1 As String Dim Output As String Input1 = 0.123 Output = WorksheetFunction.Text (Input1, "hh: mm: ss AM / PM") MsgBox Output End Sub
Étape 10: Maintenant, exécutez le code en appuyant sur la touche F5 ou en cliquant sur le bouton de lecture. Nous recevrons la boîte de message avec un message comme 02:57:07 AM .
Nous verrons une autre fois si nous choisissons un autre numéro.
Étape 11: Modifions maintenant le numéro d'entrée en 12345 et changeons le format de sortie en DD-MMM-YYYY comme indiqué ci-dessous.
Code:
Sub VBA_Text2 () Dim Input1 As String Dim Output As String Input1 = 12345 Output = WorksheetFunction.Text (Input1, "DD-MM-yyyy") MsgBox Output End Sub
Étape 12: Exécutez à nouveau le code. Nous obtiendrons la date le 18 octobre 1933
Si nous connaissons le nombre exact par lequel nous pouvons obtenir une date ou une heure exacte, ce sera mieux.
Fonction de texte VBA - Exemple # 2
Il existe un autre moyen direct d'appliquer du texte VBA. Pour cela, nous entrerons quelques chiffres dans la feuille Excel comme indiqué ci-dessous.
Suivez les étapes ci-dessous pour utiliser la fonction Texte dans VBA.
Étape 1: dans un module, écrivez la sous-catégorie du texte VBA comme indiqué ci-dessous.
Code:
Sub VBA_Text3 () End Sub
Étape 2: Sélectionnez la plage de cellules où nous voulons voir la sortie. Considérons que ces cellules vont de B1 à B5.
Code:
Sub VBA_Text3 () Range ("B1: B5"). Value End Sub
Étape 3: Sélectionnez maintenant la plage de cellules que nous devons convertir. Ici, cette plage va de la cellule A1 à A5 avec la fonction Feuille de calcul.
Code:
Sous VBA_Text3 () Plage ("B1: B5"). Valeur = Plage ("A1: A5"). Feuille de calcul. End Sub
Étape 4: Sélectionnez la fonction Index en l'évaluant.
Code:
Sub VBA_Text3 () Range ("B1: B5"). Value = Range ("A1: A5"). Worksheet.Evaluate ("INDEX (End Sub
Étape 5: Considérez maintenant la fonction Texte et sélectionnez la plage que nous devons convertir. Et le format doit être composé de plusieurs zéros.
Code:
Sub VBA_Text3 () Range ("B1: B5"). Value = Range ("A1: A5"). Worksheet.Evaluate ("INDEX (TEXT (A1: A5, " "'000000" "), )") End Sub
Étape 6: Maintenant, exécutez le code en appuyant sur la touche F5 ou en cliquant sur le bouton de lecture. Nous verrons les nombres disponibles dans la colonne A maintenant convertis en texte avec plusieurs zéros, ce qui conduit à des nombres à 6 chiffres dans la colonne B.
Voyons maintenant ce qui se passerait si nous modifiions à nouveau le format de sortie des zéros non significatifs au format temporel.
Étape 7: Dans Arg2, mettez le format d'heure en HH: MM: SS et changez la cellule de plage de sortie en C1 en C5 sans perturber la sortie obtenue à partir du code précédent.
Code:
Sub VBA_Text3 () Range ("C1: C5"). Value = Range ("C1: C5"). Worksheet.Evaluate ("INDEX (TEXT (A1: A5, " "hh: mm: ss" "), )") ) End Sub
Étape 8: Exécutez à nouveau le code. Nous verrons, la colonne C sera remplie avec le format d'heure par défaut.
Essayons une autre expérience.
Étape 9: En cela, nous allons changer la plage de cellules de sortie de D1 à D5 où nous verrons le texte VBA. Et changez l'Arg2, au format Date qui est DD-MMM-YYYY comme indiqué ci-dessous.
Code:
Sub VBA_Text3 () Range ("D1: D5"). Value = Range ("D1: D5"). Worksheet.Evaluate ("INDEX (TEXT (A1: A5, " "DD-MMM-YYYY" "), )" " ) End Sub
Étape 10: Exécutez à nouveau le code. Cette fois, nous verrons, la date sera affichée dans la colonne D. Et ces dates sont au format que ou format DD-MMM-YYYY.
C'est ainsi que nous pouvons changer les nombres dans n'importe quel format standard que nous voulons.
Avantages et inconvénients de la fonction de texte Excel VBA
- Ceci est facile à mettre en œuvre.
- Nous pouvons changer les nombres dans n'importe quel format que nous voulons voir.
- Nous ne pouvons convertir aucun texte au format numérique requis.
Choses dont il faut se rappeler
- Le texte VBA convertit uniquement les nombres en nombres. Mais le format des nombres sera les formats standard tels que la date, l'heure, la combinaison de la date et de l'heure ou toute séquence de chiffres.
- Si vous appliquez et modifiez les nombres dans un format de zéros précédents, placez l'apostrophe avant les zéros. Pour que les nombres soient convertis en texte et que les zéros apparaissent.
- Si nous essayons de convertir n'importe quel texte avec du texte VBA, il donnera la sortie sous forme de texte uniquement.
- Pour obtenir la sortie exacte, nous devons connaître la combinaison de nombres qui fournira l'heure et la date exactes que nous voulons voir.
- Une fois cela fait, enregistrez toujours le code complet au format Macro-Enabled, afin que le code ne soit pas perdu.
Articles recommandés
Ceci est un guide de la fonction de texte VBA. Nous discutons ici comment utiliser la fonction Texte dans Excel VBA ainsi que des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -
- Fonction Copier Coller dans VBA
- Fonction Excel de sous-chaîne
- Indice VBA hors plage
- Formule ISNUMBER Excel