Convertir du texte en nombres, Excel VBA

Convertir du texte en nombres, Excel VBA

Voici un exemple détaillé de code en VBA (Visual Basic for Applications) pour convertir du texte en nombres dans Excel, avec des explications. 

Objectif : 

Le but est de convertir une chaîne de texte représentant un nombre en un véritable nombre dans une cellule Excel. Parfois, des nombres sont stockés sous forme de texte, ce qui peut poser problème pour les calculs. Nous allons résoudre ce problème avec VBA. 

Exemple de code VBA : 

Sub ConvertirTexteEnNombre() 
    ' Déclare une variable pour stocker la référence de la cellule 
    Dim cell As Range 
    ' Boucle à travers chaque cellule de la sélection active 
    For Each cell In Selection 
        ' Vérifie si la cellule contient du texte 
        If IsNumeric(cell.Value) And IsEmpty(cell.Value) = False Then 
            ' Si la valeur de la cellule est du texte représentant un nombre, on le convertit 
            cell.Value = CDbl(cell.Value) 
        End If 
    Next cell
    ' Message pour indiquer la fin du processus 
    MsgBox "Conversion terminée !", vbInformation 
End Sub

Explications du code : 

1. Déclaration de la variable cell

Dim cell As Range 

Cette ligne déclare une variable cell qui va représenter chaque cellule de la plage sélectionnée. 

2. Boucle For Each

For Each cell In Selection 

Cette ligne commence une boucle qui va parcourir chaque cellule dans la sélection active (plage de cellules sur laquelle vous avez cliqué ou sélectionné). 

3. Vérification du contenu de la cellule

If IsNumeric(cell.Value) And IsEmpty(cell.Value) = False Then 

Ici, on vérifie deux choses : 

  • IsNumeric(cell.Value) : Cette fonction vérifie si le contenu de la cellule est un nombre (même si c’est sous forme de texte). 
  • IsEmpty(cell.Value) = False : Cette vérification permet de s’assurer que la cellule n’est pas vide. 

Si ces deux conditions sont remplies, cela signifie que la cellule contient un texte qui représente un nombre. 

4. Conversion de texte en nombre

cell.Value = CDbl(cell.Value) 

CDbl est une fonction qui convertit le texte en un nombre à virgule flottante. Elle est utilisée ici pour convertir le texte représentant un nombre en un véritable nombre. 

5. Fin de la boucle : La boucle continue avec la cellule suivante dans la sélection jusqu’à ce que toutes les cellules aient été traitées. 

6. Message de fin

MsgBox "Conversion terminée !", vbInformation 

À la fin du processus, un message est affiché pour informer l’utilisateur que la conversion des textes en nombres est terminée. 

Utilisation du code : 

  1. Ouvrez Excel et accédez à l’éditeur VBA en appuyant sur Alt + F11. 
  2. Dans l’éditeur VBA, cliquez sur Insertion > Module pour insérer un nouveau module. 
  3. Copiez et collez le code ci-dessus dans le module. 
  4. Revenez à Excel, sélectionnez les cellules contenant des nombres sous forme de texte. 
  5. Appuyez sur Alt + F8, sélectionnez ConvertirTexteEnNombre dans la liste des macros et cliquez sur « Exécuter ». 

Améliorations possibles : 

  • Prise en compte des erreurs : Si une cellule contient un texte non convertible (par exemple, « Bonjour » ou un autre mot), vous pouvez ajouter un gestionnaire d’erreurs pour éviter que le code ne plante. Par exemple : 
On Error Resume Next 
cell.Value = CDbl(cell.Value) 
If Err.Number <> 0 Then 
    MsgBox "Erreur de conversion dans la cellule " & cell.Address 
End If 
On Error GoTo 0
  • Conversion conditionnelle : Vous pouvez étendre la logique pour convertir uniquement certains types de texte (par exemple, les nombres avec une certaine mise en forme) ou pour ignorer les cellules contenant des dates ou des formules. 

Ce code VBA simple peut vous aider à convertir des textes en nombres dans vos feuilles de calcul Excel de manière efficace. 

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