Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour innavigo1,
Essaie ceci. Copie la procédure dans le module de la feuille où l'action doit se dérouler :
Dans l'exemple soumis, la plage retenue pour la saisie du code postal est la colonne 3 (c:c) de la feuille. À toi de déterminer la plage concernée par ton application.
'----------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range Set Rg = Intersect(Target, Columns(3)) 'à déterminer 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!
"innavigo1" a écrit dans le message de news:
J'aimerais ne pas avoir à me soucier de l'espace. Ex. : G7J 4X1
Bonjour innavigo1,
Essaie ceci. Copie la procédure dans le module de la feuille où l'action doit se dérouler :
Dans l'exemple soumis, la plage retenue pour la saisie du code postal est la colonne 3 (c:c) de la feuille. À toi de
déterminer la plage concernée par ton application.
'-----------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Columns(3)) 'à déterminer
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!
"innavigo1" <innavigo1@discussions.microsoft.com> a écrit dans le message de news:
EFBAE790-E0B4-4780-B462-3FEBEEDBB6CC@microsoft.com...
J'aimerais ne pas avoir à me soucier de l'espace. Ex. : G7J 4X1
Essaie ceci. Copie la procédure dans le module de la feuille où l'action doit se dérouler :
Dans l'exemple soumis, la plage retenue pour la saisie du code postal est la colonne 3 (c:c) de la feuille. À toi de déterminer la plage concernée par ton application.
'----------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range Set Rg = Intersect(Target, Columns(3)) 'à déterminer 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!
"innavigo1" a écrit dans le message de news:
J'aimerais ne pas avoir à me soucier de l'espace. Ex. : G7J 4X1