Préparation des données pour l’importation dans Access (Microsoft Excel)
Si vous êtes un programmeur de base de données, vous pouvez parfois obtenir des fichiers Excel que vous devez «nettoyer» pour les mettre dans Access. Deux problèmes courants sont causés par les numéros de sécurité sociale et les codes postaux. Il est préférable de les stocker sous forme de texte dans la base de données et non sous forme de nombres comme ils le sont souvent dans Excel.
(Dans Excel, les nombres peuvent s’afficher correctement en raison du formatage des cellules, et non parce qu’ils sont stockés sous forme de texte.)
Même lorsque la plage est formatée sous forme de texte dans Excel, avec des zéros non significatifs, Access convertit le plus souvent ces valeurs en nombres.
Toutefois, si le nombre est précédé d’une apostrophe, comme pour une étiquette, Access l’importera correctement sous forme de texte sans l’apostrophe de début.
Pour préparer les numéros de sécurité sociale à l’importation dans Access, une petite macro rapide peut s’avérer utile – une macro qui garantit que des zéros non significatifs sont présents et que l’apostrophe est en place pour la cellule. Pour utiliser la macro, sélectionnez simplement la plage de numéros de sécurité sociale, puis exécutez la macro:
Sub SSN2Text() Dim c As Range Application.ScreenUpdating = False 'Format selected cells as text Selection.NumberFormat = "@" For Each c In Selection If Left(c, 1) = "'" Then 'strip the apostrophe, if any c = Mid(c, 2, 99) Else c = "'" & Right("000000000" & c, 9) End If Next c Application.ScreenUpdating = True End Sub
La solution pour les codes postaux est de nature similaire. La macro pour traiter les codes postaux parcourt chaque cellule de la sélection, la met en forme sous forme de texte, ajoute une apostrophe principale et insère les zéros non significatifs. La différence est que la macro doit également tenir compte des instances où il existe des codes postaux à cinq ou neuf chiffres.
Sub ZIP2Text() Dim c As Range Application.ScreenUpdating = False 'Format selected cells as text Selection.NumberFormat = "@" For Each c In Selection If Left(c, 1) = "'" Then 'strip the apostrophe, if any c = Mid(c, 2, 99) End If If Len(c) <= 5 Then c = "'" & Right("00000" & c, 5) Else c = "'" & Right("00000" & c, 10) End If Next c Application.ScreenUpdating = True 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 (2400) 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-Preparing_Data_for_Import_into_Access [Préparation des données pour l’importation dans Access]
.