Convertir des nombres en texte, Excel VBA

Convertir des nombres en texte, Excel VBA

Voici un code détaillé en VBA Excel pour convertir des nombres en texte. Ce code vous permet de convertir des valeurs numériques en texte de manière flexible, selon vos besoins. 

Objectif : 

Le but de ce code est de convertir des nombres (entiers ou décimaux) en texte, tout en conservant leur format (par exemple, les chiffres avec ou sans décimales). Ce code peut être utilisé pour manipuler des données dans une feuille de calcul Excel via VBA. 

Code VBA pour convertir des nombres en texte 

1. Ouvrir l’éditeur VBA dans Excel

  • Pressez Alt + F11 pour ouvrir l’éditeur VBA. 
  • Dans l’éditeur, cliquez sur Insertion > Module pour insérer un nouveau module. 

2. Copier et coller le code suivant dans le module

Sub ConvertirNombresEnTexte() 
    Dim rng As Range 
    Dim cell As Range 
    Dim nombre As Double 
    Dim texte As String 
    ' Sélectionner la plage de cellules à convertir 
    Set rng = Selection 
    ' Vérifier si une plage est sélectionnée 
    If rng Is Nothing Then 
        MsgBox "Veuillez sélectionner des cellules avec des nombres à convertir", vbExclamation 
        Exit Sub 
    End If 
    ' Boucle à travers chaque cellule de la plage sélectionnée 
    For Each cell In rng 
        ' Vérifier si la cellule contient un nombre 
        If IsNumeric(cell.Value) Then 
            ' Récupérer la valeur de la cellule 
            nombre = cell.Value 
            ' Convertir le nombre en texte 
            texte = CStr(nombre) ' La fonction CStr permet de convertir le nombre en texte 
            ' Si le nombre est un entier, vous pouvez choisir de formater le texte pour ne pas afficher de décimales 
            If Int(nombre) = nombre Then 
                ' Convertir en texte sans décimales 
                texte = CStr(Int(nombre)) 
            Else 
                ' Si le nombre a des décimales, vous pouvez choisir un format spécifique 
                texte = Format(nombre, "0.00") ' Exemple de format à deux décimales 
            End If          
            ' Remplacer la valeur numérique par son équivalent texte 
            cell.Value = texte 
        Else 
            ' Si la cellule ne contient pas de nombre, on la laisse telle quelle 
            cell.Value = "Non numérique" 
        End If 
    Next cell 
End Sub

Explications détaillées du code : 

1. Déclaration des variables : 

  • rng : représente la plage de cellules que l’utilisateur sélectionne. 
  • cell : représente chaque cellule individuelle dans la plage sélectionnée. 
  • nombre : contient la valeur numérique de chaque cellule. 
  • texte : la version texte du nombre. 

2. Sélection de la plage : 

  • Le code commence par récupérer la plage de cellules que vous avez sélectionnées dans Excel (Set rng = Selection). 

3. Vérification de la validité des données : 

  • Si la sélection ne contient pas de nombre, un message d’erreur s’affiche (MsgBox). 
  • Pour chaque cellule de la plage sélectionnée, on vérifie si elle contient un nombre avec IsNumeric(cell.Value). 

4. Conversion du nombre en texte : 

  • Si le nombre est un entier (Int(nombre) = nombre), il est converti en texte sans décimales. Si ce n’est pas un entier, il est converti avec un format spécifique (par exemple, 2 décimales). 

5. Remplacer les valeurs dans les cellules : 

  • La valeur numérique dans chaque cellule est remplacée par la version texte de cette valeur (cell.Value = texte). 

Exemple d’utilisation : 

  • Sélectionner les cellules contenant des nombres. 
  • Exécuter la macro en allant dans l’éditeur VBA et en pressant F5 ou en affectant un bouton à la macro dans Excel. 

Options de formatage : 

  • Le formatage est flexible dans cette solution. Par exemple : 
  • Vous pouvez utiliser Format(nombre, « 0.00 ») pour afficher deux décimales. 
  • Si vous voulez plus de décimales, vous pouvez ajuster le format, comme « 0.0000 » pour quatre décimales. 
  • Si vous ne voulez pas de décimales, utilisez « 0 ». 

Conclusion : 

Ce code VBA est un moyen flexible de convertir des nombres en texte, tout en vous permettant de personnaliser le format de la conversion. Vous pouvez facilement adapter ce code pour l’utiliser dans diverses situations selon le type de données avec lequel vous travaillez dans Excel. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x