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

Forçage majuscule

6 réponses
Avatar
fredbzr
Bonjour,
J'ai deux colonnes dans lesquelles je souhaiterai ecrire obligatoirement en
majuscule (E8:E500 et G8:G500)
Comment faire sans passer par une autre cellule
(=majuscule(droite(E8;nbcar(E8)-cherche("";E8)))
mais directement dans les cellules concernées du tableau
Merci

--


Katia , Fred & Valentin

6 réponses

Avatar
JB
Bonjour,

Traduit en majuscule dès la saisie dans la colonne A
Pour Nompropre, remplacer Ucase() par Application.Proper()

Le code VBA de la procédure Sub Worksheet_Change() est exécuté à
chaque fois qu'une cellule est modifiée dans une feuille

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If (Not Intersect(Target, Range("E8:E500")) Is Nothing) Or _
(Not Intersect(Target, Range("G8:E500")) Is Nothing) Then
Target.Value = UCase(Target.Value)
End If
Application.EnableEvents = True
End Sub

-Alt+F11
-Double clic sur Feuil1
-Choisir événement Change

Cordialement JB
Avatar
fredbzr
Bonjour JB,
merci de ta réponse aussi rapide mais je n'arrive pas à la faire fonctionner
je saisie en minuscule en E9 (par ex) et lorsque je tape entrée rien ne se
passe.
J'ai mis la macro dans la feuille concernée et je suis bien en
worksheet_change

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If (Not Intersect(Target, Range("E8:E500")) Is Nothing) Or _
(Not Intersect(Target, Range("G8:E500")) Is Nothing) Then
Target.Value = Application.Proper(Target.Value)
End If
Application.EnableEvents = True
End Sub

Qu'ai-je oublié ?
"JB" a écrit dans le message de news:

Bonjour,

Traduit en majuscule dès la saisie dans la colonne A
Pour Nompropre, remplacer Ucase() par Application.Proper()

Le code VBA de la procédure Sub Worksheet_Change() est exécuté à
chaque fois qu'une cellule est modifiée dans une feuille

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If (Not Intersect(Target, Range("E8:E500")) Is Nothing) Or _
(Not Intersect(Target, Range("G8:E500")) Is Nothing) Then
Target.Value = UCase(Target.Value)
End If
Application.EnableEvents = True
End Sub

-Alt+F11
-Double clic sur Feuil1
-Choisir événement Change

Cordialement JB
Avatar
JB
Essayer fichier joint:

http://cjoint.com/?mcntTdUwiQ


JB
Avatar
ChrisV
Bonjour fredbzr,

Dans la feuille de code de l'onglet concerné (avec la plage de données
nommée ici Zn):

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("Zn")) Is Nothing Then _
Target.Value = UCase(Target.Value)
End Sub


ChrisV


"fredbzr" a écrit dans le message de news:
439030a1$0$6683$
Bonjour JB,
merci de ta réponse aussi rapide mais je n'arrive pas à la faire
fonctionner
je saisie en minuscule en E9 (par ex) et lorsque je tape entrée rien ne se
passe.
J'ai mis la macro dans la feuille concernée et je suis bien en
worksheet_change

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If (Not Intersect(Target, Range("E8:E500")) Is Nothing) Or _
(Not Intersect(Target, Range("G8:E500")) Is Nothing) Then
Target.Value = Application.Proper(Target.Value)
End If
Application.EnableEvents = True
End Sub

Qu'ai-je oublié ?
"JB" a écrit dans le message de news:

Bonjour,

Traduit en majuscule dès la saisie dans la colonne A
Pour Nompropre, remplacer Ucase() par Application.Proper()

Le code VBA de la procédure Sub Worksheet_Change() est exécuté à
chaque fois qu'une cellule est modifiée dans une feuille

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If (Not Intersect(Target, Range("E8:E500")) Is Nothing) Or _
(Not Intersect(Target, Range("G8:E500")) Is Nothing) Then
Target.Value = UCase(Target.Value)
End If
Application.EnableEvents = True
End Sub

-Alt+F11
-Double clic sur Feuil1
-Choisir événement Change

Cordialement JB




Avatar
fredbzr
çà fonctionne
merci de ton aide
"JB" a écrit dans le message de news:

Essayer fichier joint:

http://cjoint.com/?mcntTdUwiQ


JB



Avatar
fredbzr
Bonjour ChrisV
çà marche bien
merci à vous
"ChrisV" a écrit dans le message de news:

Bonjour fredbzr,

Dans la feuille de code de l'onglet concerné (avec la plage de données
nommée ici Zn):

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("Zn")) Is Nothing Then _
Target.Value = UCase(Target.Value)
End Sub


ChrisV


"fredbzr" a écrit dans le message de news:
439030a1$0$6683$
Bonjour JB,
merci de ta réponse aussi rapide mais je n'arrive pas à la faire
fonctionner
je saisie en minuscule en E9 (par ex) et lorsque je tape entrée rien ne
se passe.
J'ai mis la macro dans la feuille concernée et je suis bien en
worksheet_change

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If (Not Intersect(Target, Range("E8:E500")) Is Nothing) Or _
(Not Intersect(Target, Range("G8:E500")) Is Nothing) Then
Target.Value = Application.Proper(Target.Value)
End If
Application.EnableEvents = True
End Sub

Qu'ai-je oublié ?
"JB" a écrit dans le message de news:

Bonjour,

Traduit en majuscule dès la saisie dans la colonne A
Pour Nompropre, remplacer Ucase() par Application.Proper()

Le code VBA de la procédure Sub Worksheet_Change() est exécuté à
chaque fois qu'une cellule est modifiée dans une feuille

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If (Not Intersect(Target, Range("E8:E500")) Is Nothing) Or _
(Not Intersect(Target, Range("G8:E500")) Is Nothing) Then
Target.Value = UCase(Target.Value)
End If
Application.EnableEvents = True
End Sub

-Alt+F11
-Double clic sur Feuil1
-Choisir événement Change

Cordialement JB