Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Codes postaux

3 réponses
Avatar
Flac
Bonjour,
Excel 2000
J'ai trouvé sur Internet un code qui permet de formater
les codes postaux (à ce que j'ai vu, un certain Denis Michon aurait pondu ce
code en 2004.
Ma question est:
Comment pourrais-je adapter ce code à plus d'une cellule sans avoir à
multiplier le code pour chacune des cellules?
Par exemple, si je voulais adapter ce code aux cellules
B26 et B38 en plus de B17

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("b17"))
Application.EnableEvents = False
If Not Rg Is Nothing Then
For Each c In Rg
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 = 35
c.Font.ColorIndex = xlAutomatic
Else
MsgBox "La saisie du code postal est incorrecte", vbCritical, "
CODE POSTAL"
c.Interior.ColorIndex = 3
c.Font.ColorIndex = 2
ActiveCell.Offset(-1, 0).Select
End If
Next
End If
Application.EnableEvents = True
End Sub

Merci
Flac

3 réponses

Avatar
Flac
Bonjour,
J'ai oublié de mentionner que c'était pour les codes postaux canadiens.

Excusez.

Flac


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

Bonjour,
Excel 2000
J'ai trouvé sur Internet un code qui permet de formater
les codes postaux (à ce que j'ai vu, un certain Denis Michon aurait pondu
ce code en 2004.
Ma question est:
Comment pourrais-je adapter ce code à plus d'une cellule sans avoir à
multiplier le code pour chacune des cellules?
Par exemple, si je voulais adapter ce code aux cellules
B26 et B38 en plus de B17

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("b17"))
Application.EnableEvents = False
If Not Rg Is Nothing Then
For Each c In Rg
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 = 35
c.Font.ColorIndex = xlAutomatic
Else
MsgBox "La saisie du code postal est incorrecte", vbCritical, "
CODE POSTAL"
c.Interior.ColorIndex = 3
c.Font.ColorIndex = 2
ActiveCell.Offset(-1, 0).Select
End If
Next
End If
Application.EnableEvents = True
End Sub

Merci
Flac



Avatar
michdenis
Tu modifies cette ligne de code de cette manière pour que ces
3 cellules (B17,B26,B38) soient affectées par la macro :
Set Rg = Intersect(Target, Union(Range("b17"),Range("B26"),Range("B38"))



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

Bonjour,
Excel 2000
J'ai trouvé sur Internet un code qui permet de formater
les codes postaux (à ce que j'ai vu, un certain Denis Michon aurait pondu ce
code en 2004.
Ma question est:
Comment pourrais-je adapter ce code à plus d'une cellule sans avoir à
multiplier le code pour chacune des cellules?
Par exemple, si je voulais adapter ce code aux cellules
B26 et B38 en plus de B17

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("b17"))
Application.EnableEvents = False
If Not Rg Is Nothing Then
For Each c In Rg
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 = 35
c.Font.ColorIndex = xlAutomatic
Else
MsgBox "La saisie du code postal est incorrecte", vbCritical, "
CODE POSTAL"
c.Interior.ColorIndex = 3
c.Font.ColorIndex = 2
ActiveCell.Offset(-1, 0).Select
End If
Next
End If
Application.EnableEvents = True
End Sub

Merci
Flac
Avatar
Flac
Merci
Flac


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

Tu modifies cette ligne de code de cette manière pour que ces
3 cellules (B17,B26,B38) soient affectées par la macro :
Set Rg = Intersect(Target, Union(Range("b17"),Range("B26"),Range("B38"))



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

Bonjour,
Excel 2000
J'ai trouvé sur Internet un code qui permet de formater
les codes postaux (à ce que j'ai vu, un certain Denis Michon aurait pondu
ce
code en 2004.
Ma question est:
Comment pourrais-je adapter ce code à plus d'une cellule sans avoir à
multiplier le code pour chacune des cellules?
Par exemple, si je voulais adapter ce code aux cellules
B26 et B38 en plus de B17

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("b17"))
Application.EnableEvents = False
If Not Rg Is Nothing Then
For Each c In Rg
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 = 35
c.Font.ColorIndex = xlAutomatic
Else
MsgBox "La saisie du code postal est incorrecte", vbCritical, "
CODE POSTAL"
c.Interior.ColorIndex = 3
c.Font.ColorIndex = 2
ActiveCell.Offset(-1, 0).Select
End If
Next
End If
Application.EnableEvents = True
End Sub

Merci
Flac