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

Format spécial

6 réponses
Avatar
EliotNaiss
bonjour à tous
dans des cellules, je saisi un nombre à 3 chiffres suivi d'un espace puis
d'une ou deux lettres.(123 JA)
existe-t-il un format spécial qui puisse écrire le nombre, un espace, puis
la ou les lettres ?
Evidemment c'est pour éviter d'oublier la saisie de cet espace que je
cherche de format.
Merci
Cordialement
Eliot

6 réponses

Avatar
Chrystelle
Tu peux toujours avoir une colonne pr les chiffres, 1 pr les lettres et une
ds laquelle tu mets ¡&" "&B1. Ca t'assure un format constant, mais je ne
suis pas sûre que ça te convienne vraiment.

"EliotNaiss" escribió:

bonjour à tous
dans des cellules, je saisi un nombre à 3 chiffres suivi d'un espace puis
d'une ou deux lettres.(123 JA)
existe-t-il un format spécial qui puisse écrire le nombre, un espace, puis
la ou les lettres ?
Evidemment c'est pour éviter d'oublier la saisie de cet espace que je
cherche de format.
Merci
Cordialement
Eliot





Avatar
michdenis
Bonjour Eliot,

Dans le module feuille où l'action se déroule, tu peux utiliser ceci :

Il ne te reste plus qu'à déterminer la plage de cellules qui doivent
respecter le format....

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

Dim Rg As Range, Pattern As String, R As String

Pattern = "[0-9][0-9][0-9][a-z][a-z]"
Pattern1 = "[0-9][0-9][0-9][a-z]"

Set Rg = Intersect(Target, Range("A:A")) ' à déterminer

Application.EnableEvents = False
If Not Rg Is Nothing Then
For Each c In Rg
If c <> "" Then
R = LCase(Replace(c.Value, " ", ""))
If R Like Pattern Then
c.Value = UCase(Left(R, 1) & Mid(R, 2, 1) _
& Mid(R, 3, 1) & " " & Mid(R, 4, 1) _
& Mid(R, 5, 1))
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic

ElseIf R Like Pattern1 Then
c.Value = UCase(Left(R, 1) & Mid(R, 2, 1) _
& Mid(R, 3, 1) & " " & Mid(R, 4, 1))
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic
Else
c.Interior.Color = vbRed
c.Font.Color = vbWhite
MsgBox "La donnée saisie ne respecte pas " & _
"le contenu de la cellule.", vbInformation + vbOKOnly _
, Application.UserName
End If
Else
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic
End If
Next
End If
Application.EnableEvents = True

End Sub
'----------------------------




"EliotNaiss" a écrit dans le message de news:
%
bonjour à tous
dans des cellules, je saisi un nombre à 3 chiffres suivi d'un espace puis
d'une ou deux lettres.(123 JA)
existe-t-il un format spécial qui puisse écrire le nombre, un espace, puis
la ou les lettres ?
Evidemment c'est pour éviter d'oublier la saisie de cet espace que je
cherche de format.
Merci
Cordialement
Eliot
Avatar
EliotNaiss
Bonjour et merci michdenis,
cela me convient, je vais juste l'arranger car je crois que dès fois, je
n'aurais que deux chiffres plus la ou les lettres.
cordialement
eliot
"michdenis" a écrit dans le message de news:
efyW$
Bonjour Eliot,

Dans le module feuille où l'action se déroule, tu peux utiliser ceci :

Il ne te reste plus qu'à déterminer la plage de cellules qui doivent
respecter le format....

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

Dim Rg As Range, Pattern As String, R As String

Pattern = "[0-9][0-9][0-9][a-z][a-z]"
Pattern1 = "[0-9][0-9][0-9][a-z]"

Set Rg = Intersect(Target, Range("A:A")) ' à déterminer

Application.EnableEvents = False
If Not Rg Is Nothing Then
For Each c In Rg
If c <> "" Then
R = LCase(Replace(c.Value, " ", ""))
If R Like Pattern Then
c.Value = UCase(Left(R, 1) & Mid(R, 2, 1) _
& Mid(R, 3, 1) & " " & Mid(R, 4, 1) _
& Mid(R, 5, 1))
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic

ElseIf R Like Pattern1 Then
c.Value = UCase(Left(R, 1) & Mid(R, 2, 1) _
& Mid(R, 3, 1) & " " & Mid(R, 4, 1))
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic
Else
c.Interior.Color = vbRed
c.Font.Color = vbWhite
MsgBox "La donnée saisie ne respecte pas " & _
"le contenu de la cellule.", vbInformation + vbOKOnly _
, Application.UserName
End If
Else
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic
End If
Next
End If
Application.EnableEvents = True

End Sub
'----------------------------




"EliotNaiss" a écrit dans le message de news:
%
bonjour à tous
dans des cellules, je saisi un nombre à 3 chiffres suivi d'un espace puis
d'une ou deux lettres.(123 JA)
existe-t-il un format spécial qui puisse écrire le nombre, un espace, puis
la ou les lettres ?
Evidemment c'est pour éviter d'oublier la saisie de cet espace que je
cherche de format.
Merci
Cordialement
Eliot





Avatar
JB
Bonjour,

http://cjoint.com/?jydyePeTbt

3 chiffres +1 lettre ou 2 lettres :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count
= 1 Then
Application.EnableEvents = False
If Target <> "" Then
saisie = UCase(Replace(Target, " ", ""))
Target.Interior.ColorIndex = xlNone
If saisie Like "###[A-Z][A-Z]" Or saisie Like "###[A-Z]" Then
Target = Left(saisie, 3) & " " & Mid(saisie, 4)
Else
Target.Interior.ColorIndex = 33
End If
Else
Target.Interior.ColorIndex = xlNone
End If
Application.EnableEvents = True
End If
End Sub


3 chiffres +1 lettre ou 2 lettres /2 chiffres +1 lettre ou 2 lettres:


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count
= 1 Then
Application.EnableEvents = False
If Target <> "" Then
saisie = UCase(Replace(Target, " ", ""))
Target.Interior.ColorIndex = xlNone
If saisie Like "###[A-Z][A-Z]" Or saisie Like "###[A-Z]" Then
Target = Left(saisie, 3) & " " & Mid(saisie, 4)
Else
If saisie Like "##[A-Z][A-Z]" Or saisie Like "##[A-Z]" Then
Target = Left(saisie, 2) & " " & Mid(saisie, 3)
Else
Target.Interior.ColorIndex = 33
End If
End If
Else
Target.Interior.ColorIndex = xlNone
End If
Application.EnableEvents = True
End If
End Sub

Cordialement JB

bonjour à tous
dans des cellules, je saisi un nombre à 3 chiffres suivi d'un espace pu is
d'une ou deux lettres.(123 JA)
existe-t-il un format spécial qui puisse écrire le nombre, un espace, puis
la ou les lettres ?
Evidemment c'est pour éviter d'oublier la saisie de cet espace que je
cherche de format.
Merci
Cordialement
Eliot


Avatar
EliotNaiss
Bonjour et MERCI JB, c'est super !
Cordialement
Eliot
"JB" a écrit dans le message de news:

Bonjour,

http://cjoint.com/?jydyePeTbt

3 chiffres +1 lettre ou 2 lettres :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count
= 1 Then
Application.EnableEvents = False
If Target <> "" Then
saisie = UCase(Replace(Target, " ", ""))
Target.Interior.ColorIndex = xlNone
If saisie Like "###[A-Z][A-Z]" Or saisie Like "###[A-Z]" Then
Target = Left(saisie, 3) & " " & Mid(saisie, 4)
Else
Target.Interior.ColorIndex = 33
End If
Else
Target.Interior.ColorIndex = xlNone
End If
Application.EnableEvents = True
End If
End Sub


3 chiffres +1 lettre ou 2 lettres /2 chiffres +1 lettre ou 2 lettres:


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count
= 1 Then
Application.EnableEvents = False
If Target <> "" Then
saisie = UCase(Replace(Target, " ", ""))
Target.Interior.ColorIndex = xlNone
If saisie Like "###[A-Z][A-Z]" Or saisie Like "###[A-Z]" Then
Target = Left(saisie, 3) & " " & Mid(saisie, 4)
Else
If saisie Like "##[A-Z][A-Z]" Or saisie Like "##[A-Z]" Then
Target = Left(saisie, 2) & " " & Mid(saisie, 3)
Else
Target.Interior.ColorIndex = 33
End If
End If
Else
Target.Interior.ColorIndex = xlNone
End If
Application.EnableEvents = True
End If
End Sub

Cordialement JB

bonjour à tous
dans des cellules, je saisi un nombre à 3 chiffres suivi d'un espace puis
d'une ou deux lettres.(123 JA)
existe-t-il un format spécial qui puisse écrire le nombre, un espace, puis
la ou les lettres ?
Evidemment c'est pour éviter d'oublier la saisie de cet espace que je
cherche de format.
Merci
Cordialement
Eliot


Avatar
EliotNaiss
Bonjour et MERCI JB, c'est super !
Cordialement
Eliot
"JB" a écrit dans le message de news:

Bonjour,

http://cjoint.com/?jydyePeTbt

3 chiffres +1 lettre ou 2 lettres :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count
= 1 Then
Application.EnableEvents = False
If Target <> "" Then
saisie = UCase(Replace(Target, " ", ""))
Target.Interior.ColorIndex = xlNone
If saisie Like "###[A-Z][A-Z]" Or saisie Like "###[A-Z]" Then
Target = Left(saisie, 3) & " " & Mid(saisie, 4)
Else
Target.Interior.ColorIndex = 33
End If
Else
Target.Interior.ColorIndex = xlNone
End If
Application.EnableEvents = True
End If
End Sub


3 chiffres +1 lettre ou 2 lettres /2 chiffres +1 lettre ou 2 lettres:


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count
= 1 Then
Application.EnableEvents = False
If Target <> "" Then
saisie = UCase(Replace(Target, " ", ""))
Target.Interior.ColorIndex = xlNone
If saisie Like "###[A-Z][A-Z]" Or saisie Like "###[A-Z]" Then
Target = Left(saisie, 3) & " " & Mid(saisie, 4)
Else
If saisie Like "##[A-Z][A-Z]" Or saisie Like "##[A-Z]" Then
Target = Left(saisie, 2) & " " & Mid(saisie, 3)
Else
Target.Interior.ColorIndex = 33
End If
End If
Else
Target.Interior.ColorIndex = xlNone
End If
Application.EnableEvents = True
End If
End Sub

Cordialement JB

bonjour à tous
dans des cellules, je saisi un nombre à 3 chiffres suivi d'un espace puis
d'une ou deux lettres.(123 JA)
existe-t-il un format spécial qui puisse écrire le nombre, un espace, puis
la ou les lettres ?
Evidemment c'est pour éviter d'oublier la saisie de cet espace que je
cherche de format.
Merci
Cordialement
Eliot