Lorsque l'on traite des données relatives au Canada en Excel ou en Access, il est essentiel de s'assurer de la validité des codes postaux. Ces codes, spécifiques au Canada, ont une structure unique qui peut être vérifiée avec VBA. Je vous propose donc une fonction toute faite pour vérifier la validité d'un code postal canadien en VBA.
Structure d'un Code Postal Canadien – Un Peu de Théorie
Un code postal canadien est composé d'une alternance de lettres et de chiffres dans le format ANA NAN (par exemple, K1A 0B1). La première lettre donne un aperçu du district électoral fédéral, ce qui peut aider à déterminer la province ou le territoire. Voici une liste des lettres valides pour les districts électoraux fédéraux au Canada:
- A – Terre-Neuve-et-Labrador
- B – Nouvelle-Écosse
- C – Île-du-Prince-Édouard
- E – Nouveau-Brunswick
- G, H, J – Québec
- K, L, M, N, P – Ontario
- R – Manitoba
- S – Saskatchewan
- T – Alberta
- V – Colombie-Britannique
- X – Nunavut et Territoires du Nord-Ouest
- Y – Yukon
Exemples d'Entrées et Résultats de la Fonction
Pour vous donner une idée de ce que fait exactement la fonction VBA que je vous propose, voici quelques exemples des "codes postaux canadiens" à vérifier, ainsi que la réponse de la fonction à ces différents cas.
Entrée | Résultat de la Fonction | Commentaire |
---|---|---|
K1A 0B1 | VRAI | Code postal valide |
K1A0B1 | VRAI | Code postal valide sans espaces |
K1Z B12 | FAUX | Format incorrect |
K1A0 | FAUX | Code postal trop court |
K1A0B1C | FAUX | Code postal trop long |
K1A OB1 | FAUX | Lettre mal placée |
Z1A 0B1 | FAUX | Première lettre invalide |
Comme vous pouvez le constater, les vérifications suivantes sont effectuées pour garantir la validité des codes postaux canadiens en Excel, en Access ou même en Outlook:
- suppression des espaces
- vérification que le code postal a 6 places
- vérification du format "ANANAN" (A = lettre, N = nombre)
- vérification que la première lettre correspond bien à la liste des districts canadiens
Fonction VBA pour Vérifier le Code Postal Canadien
La fonction suivante peut être utilisée directement dans les Feuilles Excel en tant que UDF (User Defined Function) ou dans vos projets VBA (Excel, MS Access ou MS Outlook). Elle prend en argument le code postal canadien à vérifier sous forme de variable de type String
et retourne VRAI (True
) ou FAUX (False
) selon sa validité (variable de type Booléen).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Function VerifierCodePostalCanadien(code As String) As Boolean 'par Excel-Malin.com ( https://excel-malin.com/ ) Dim lettresValides As String ' Lettres valides pour les districts électoraux fédéraux lettresValides = "ABCEGHJKLMNPRSTVXY" ' Vérifie la longueur du code postal If Len(code) <> 6 And Len(code) <> 7 Then Exit Function ' Supprime les espaces code = Replace(code, " ", "") ' Vérifie si la première lettre est valide If InStr(lettresValides, Left(code, 1)) = 0 Then Exit Function ' Vérifie le format ANANAN If Not (IsNumeric(Mid(code, 2, 1)) And _ IsNumeric(Mid(code, 4, 1)) And _ IsNumeric(Mid(code, 6, 1))) Then Exit Function ' Vérifie si les positions 1, 3 et 5 sont des lettres If Not (Mid(code, 1, 1) Like "[A-Za-z]" And _ Mid(code, 3, 1) Like "[A-Za-z]" And _ Mid(code, 5, 1) Like "[A-Za-z]") Then Exit Function ' Si toutes les vérifications sont passées VerifierCodePostalCanadien = True End Function |
Exemple d'Utilisation de la Fonction de Vérification
Voici comment utiliser cette fonction dans votre projet VBA. Supposons que le code postal canadien que vous souhaitez vérifier soit dans la cellule "B2". La procédure suivante teste sa validité à l'aide de la fonction VerifierCodePostalCanadien()
et affiche un message indiquant si le code est valide ou non.
1 2 3 4 5 6 7 8 9 10 |
Sub VerifierCode() Dim code As String code = Range("B2").Value If VerifierCodePostalCanadien(code) Then MsgBox "Le code postal est valide." Else MsgBox "Le code postal est invalide." End If End Sub |
Pour aller plus loin en VBA…
Et comme toujours, pour finir, une liste d'autres articles sur VBA qui pourraient vous être utiles:
- Toutes les fonctions en VBA – liste exhaustive des fonctions disponibles en VBA
- Vérifier en VBA: la validité du numéro de carte de crédit ou la validité de l'adresse email
- Différents codes sources VBA pratiques et prêts à l'emploi
- Calcul des Jours fériés au Canada en VBA
- RECHERCHEV en VBA – oui, c'est possible!