Conversion des informations importées en valeurs numériques (Microsoft Excel)
Garrett a demandé s’il y avait un moyen de convertir rapidement des données textuelles en données numériques. Il importe un fichier texte qui utilise des espaces au nombre de milliers (1 256) au lieu d’une virgule (1 256).
Il existe plusieurs manières d’aborder ce problème. Le premier est de comprendre la source du problème. Le fichier texte est probablement créé sur un système qui suit une norme métrique. Certains pays, suivant la norme métrique, utilisent un espace pour un séparateur de milliers au lieu d’une virgule. Ainsi, vous pouvez importer correctement le fichier dans Excel si vous modifiez vos paramètres régionaux dans Windows avant de démarrer Excel et de procéder à l’importation. Vous pouvez modifier les paramètres régionaux à l’aide de l’applet Options régionales dans le Panneau de configuration.
Si vous ne souhaitez pas modifier les paramètres régionaux de votre système, vous pouvez prendre d’autres approches. Une fois qu’Excel a importé les informations, vous pouvez sélectionner la plage de cellules contenant des nombres et effectuer simplement une recherche et un remplacement. Vous recherchez un seul espace et le remplacez par rien. Cela supprime complètement l’espace et Excel traitera alors le contenu de la cellule comme un nombre.
Vous pouvez également utiliser une formule, si vous le souhaitez, pour modifier les données importées. Par exemple, si le numéro importé (contenant un espace) se trouve dans la cellule A3, vous pouvez utiliser cette formule pour supprimer l’espace:
=1*SUBSTITUTE(A3," ","")
Notez qu’il y a un espace entre le premier jeu de guillemets et rien entre le deuxième jeu de guillemets.
Si vous avez pas mal de données à convertir, ou si vous avez du texte entrecoupé de cellules « uniquement numériques », vous pouvez alors décider d’utiliser une macro pour effectuer la conversion. La macro suivante fonctionne sur une sélection que vous faites avant de l’appeler. Il vérifie également que la cellule, après avoir supprimé les espaces, contient une valeur numérique. Si ce n’est pas le cas, aucune conversion n’est effectuée.
Sub ClearSpacesIfNumeric() Dim c As Range 'Cell under examination Dim tmpText As String 'Cell contents without spaces Dim i As Integer 'Simple counter For Each c In Selection tmpText = "" 'Initialize 'Check each character to see if it's a space 'If it isn't, add it to tmpText For i = 1 To Len(c.Text) If Mid(c.Text, i, 1) <> " " Then tmpText = tmpText & Mid(c.Text, i, 1) End If Next i 'tmpText is now the cell contents without spaces 'If tmpText is a number, assign its value to 'the current cell If IsNumeric(tmpText) Then c.Value = tmpText End If Next c End Sub
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2248) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Converting_Imported_Information_to_Numeric_Values [Conversion des informations importées en valeurs numériques]
.