OVH Cloud OVH Cloud

Codes postaux

3 réponses
Avatar
supers_g
Quels codes inscrire dans "format de cellule >nombre>personnalisée" afin que
s'inscrivent correctement les codes postaux canadiens, c'est-à-dire, une
lettre majuscule+un chiffre+une majuscule+un espace+un chiffre+une
majuscule+un chiffre (ex: H1H 1H1) et ce, après avoir saisie à la volée
h1h1h1 ?

3 réponses

Avatar
Daniel
Bonjour.
Pas de format personnalisé, mais un bout de procédure évenementielle. En
supposant que les codes soient en colonne A :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer, Cod As String, Car As String
If Target.Column <> 1 Then Exit Sub
Application.EnableEvents = False
For i = 1 To 6
Car = Mid(Target.Value, i, 1)
Select Case i
Case 1, 3, 5
Cod = Cod & UCase(Car)
Case 2, 6
Cod = Cod & Car
Case 4
Cod = Cod & " " & UCase(Car)
End Select
Next i
Target.Value = Cod
Application.EnableEvents = True
End Sub

Cordialement.
Daniel
"supers_g" a écrit dans le message de
news:
Quels codes inscrire dans "format de cellule >nombre>personnalisée" afin
que
s'inscrivent correctement les codes postaux canadiens, c'est-à-dire, une
lettre majuscule+un chiffre+une majuscule+un espace+un chiffre+une
majuscule+un chiffre (ex: H1H 1H1) et ce, après avoir saisie à la volée
h1h1h1 ?


Avatar
michdenis
Bonjour supers_g,

La procédure suppose que les codes postaux sont saisis en colonne C:C
sélectionne ta colonne en modifiant le 3 de la ligne de code suivante :
Set Rg = Intersect(Target, Columns(3))

à copier dans le module feuille où la saisie à lieu.

'---------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range
Set Rg = Intersect(Target, Columns(3))
Application.EnableEvents = False
If Not Rg Is Nothing Then
For Each c In Rg
If c <> "" Then
c.Value = UCase(Application.Trim(c))
If c.Value Like "[A-Z][0-9][A-Z] [0-9][A-Z][0-9]" Or _
c.Value Like "[A-Z][0-9][A-Z][0-9][A-Z][0-9]" Then
c.Value = Left(c, 3) & " " & Right(c, 3)
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic
Else
MsgBox "la saisie du code postal est inexacte"
c.Interior.ColorIndex = 3
c.Font.ColorIndex = 2
End If
Else
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic
End If
Next
End If
Application.EnableEvents = True
End Sub
'---------------------------------------


Salutations!



"supers_g" a écrit dans le message de news:

Quels codes inscrire dans "format de cellule >nombre>personnalisée" afin que
s'inscrivent correctement les codes postaux canadiens, c'est-à-dire, une
lettre majuscule+un chiffre+une majuscule+un espace+un chiffre+une
majuscule+un chiffre (ex: H1H 1H1) et ce, après avoir saisie à la volée
h1h1h1 ?
Avatar
supers_g
Merci à vous deux mais la programmation quelle qu'elle soit, très peu pour
moi. Ça demeure du vrai chinois pour moi. Je me contenterai de saisir
manuellement mes données.


Bonjour supers_g,

La procédure suppose que les codes postaux sont saisis en colonne C:C
sélectionne ta colonne en modifiant le 3 de la ligne de code suivante :
Set Rg = Intersect(Target, Columns(3))

à copier dans le module feuille où la saisie à lieu.

'---------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range
Set Rg = Intersect(Target, Columns(3))
Application.EnableEvents = False
If Not Rg Is Nothing Then
For Each c In Rg
If c <> "" Then
c.Value = UCase(Application.Trim(c))
If c.Value Like "[A-Z][0-9][A-Z] [0-9][A-Z][0-9]" Or _
c.Value Like "[A-Z][0-9][A-Z][0-9][A-Z][0-9]" Then
c.Value = Left(c, 3) & " " & Right(c, 3)
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic
Else
MsgBox "la saisie du code postal est inexacte"
c.Interior.ColorIndex = 3
c.Font.ColorIndex = 2
End If
Else
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic
End If
Next
End If
Application.EnableEvents = True
End Sub
'---------------------------------------


Salutations!



"supers_g" a écrit dans le message de news:

Quels codes inscrire dans "format de cellule >nombre>personnalisée" afin que
s'inscrivent correctement les codes postaux canadiens, c'est-à-dire, une
lettre majuscule+un chiffre+une majuscule+un espace+un chiffre+une
majuscule+un chiffre (ex: H1H 1H1) et ce, après avoir saisie à la volée
h1h1h1 ?