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

Mettre en majuscule

18 réponses
Avatar
Demokos
Bonjour à toutes et à tous.

Comment faire, en VBA, pour que chaque entrée soit mise en majuscule ?

Par avance merci

8 réponses

1 2
Avatar
garnote
Alors j'ai du rêver ;-)

"MichDenis" a écrit dans le message de news:
%
| Quant au clic et double-clic sur un même bouton,
| il me semble avoir déjà vu cette possibilité ici-même
| il y a plusieurs années.

Je ne dis pas que cela ne fonctionne pas, mais il y a au
moins une restriction, celle de ne pas avoir aussi pour le
même bouton un événement Clic.



Avatar
MichDenis
| mais est-ce vraiment nécessaire ?
Non

et j'aurais pu préciser davantage comme ceci :
Dans le cas d'un copier-coller d'une grande plage
cela éviterait de boucler sur toutes les cellules qui
ne sont pas du texte !

'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
On Error Resume Next
Application.EnableEvents = False
For Each C In Target.SpecialCells(xlCellTypeConstants, xlTextValues)
C.Value = UCase(C.Value)
Next
Application.EnableEvents = True
End Sub
'--------------------------------




"garnote" a écrit dans le message de groupe de discussion :

Je n'avais pas non plus le
If C <> "" Then
mais est-ce vraiment nécessaire ?


"garnote" a écrit dans le message de news:
%
Ave le magicien,

J'avais la même chose mais sans
Application.EnableEvents = False
et
Application.EnableEvents = True
Pas osé publier ma patente, beaucoup trop lent c'était.

Quant au clic et double-clic sur un même bouton,
il me semble avoir déjà vu cette possibilité ici-même
il y a plusieurs années.

Serge



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

Utilise ce code :
'---------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
For Each C In Target
Application.EnableEvents = False
If C <> "" Then
C.Value = UCase(C.Value)
End If
Application.EnableEvents = True
Next
End Sub
'---------------------------------

"Demokos" a écrit dans le message de groupe de
discussion :
4a9bd3b0$0$22558$
Merci à FS et à MichDenis,
mais y a-t-il une façon de faire en sorte que ça s'applique à toute la
feuille, et non seulement à une plage ? Range("A1:IV65535"), peut-être
?(XL 2003)


MichDenis a écrit :
Bonjour,

Dans le module feuille de ta feuille de calcul où l'action se déroule,
copie ce qui suit :
Dans l'exemple suivant, la mise en majuscule s'applique pour
la plage A1:G25 seulement. À toi de déterminer quelle est la
plage de la feuille de ton application où la macro doit être effective.

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

Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Range("A1:G25"))
If Not Rg Is Nothing Then
For Each C In Rg
C.Value = UCase(C.Value)
Next
End If

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



"Demokos" a écrit dans le message de groupe de
discussion :
4a9bc9ac$0$31263$
Bonjour à toutes et à tous.

Comment faire, en VBA, pour que chaque entrée soit mise en majuscule ?

Par avance merci









Avatar
Demokos
Je confirme que cette solution rame !!!

FS a écrit :
Utilise plutôt Cells pour toute la feuille (mais ça va ramer !)

Sub essai()
Dim cell As Range
For Each cell In Cells
cell.Value = UCase(cell.Value)
Next cell
End Sub

FS


Avatar
Demokos
Pour moi, la fonction de MichDenis fonctionne très bien sans
If C <> "" Then
et
End If
Merci MichDenis

MichDenis a écrit :
| mais est-ce vraiment nécessaire ?
Non

et j'aurais pu préciser davantage comme ceci :
Dans le cas d'un copier-coller d'une grande plage
cela éviterait de boucler sur toutes les cellules qui
ne sont pas du texte !

'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
On Error Resume Next
Application.EnableEvents = False
For Each C In Target.SpecialCells(xlCellTypeConstants, xlTextValues)
C.Value = UCase(C.Value)
Next
Application.EnableEvents = True
End Sub
'--------------------------------




"garnote" a écrit dans le message de groupe de discussion :

Je n'avais pas non plus le
If C <> "" Then
mais est-ce vraiment nécessaire ?


"garnote" a écrit dans le message de news:
%
Ave le magicien,

J'avais la même chose mais sans
Application.EnableEvents = False
et
Application.EnableEvents = True
Pas osé publier ma patente, beaucoup trop lent c'était.

Quant au clic et double-clic sur un même bouton,
il me semble avoir déjà vu cette possibilité ici-même
il y a plusieurs années.

Serge



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

Utilise ce code :
'---------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
For Each C In Target
Application.EnableEvents = False
If C <> "" Then
C.Value = UCase(C.Value)
End If
Application.EnableEvents = True
Next
End Sub
'---------------------------------

"Demokos" a écrit dans le message de groupe de
discussion :
4a9bd3b0$0$22558$
Merci à FS et à MichDenis,
mais y a-t-il une façon de faire en sorte que ça s'applique à toute la
feuille, et non seulement à une plage ? Range("A1:IV65535"), peut-être
?(XL 2003)


MichDenis a écrit :
Bonjour,

Dans le module feuille de ta feuille de calcul où l'action se déroule,
copie ce qui suit :
Dans l'exemple suivant, la mise en majuscule s'applique pour
la plage A1:G25 seulement. À toi de déterminer quelle est la
plage de la feuille de ton application où la macro doit être effective.

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

Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Range("A1:G25"))
If Not Rg Is Nothing Then
For Each C In Rg
C.Value = UCase(C.Value)
Next
End If

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



"Demokos" a écrit dans le message de groupe de
discussion :
4a9bc9ac$0$31263$
Bonjour à toutes et à tous.

Comment faire, en VBA, pour que chaque entrée soit mise en majuscule ?

Par avance merci











Avatar
Demokos
J'ai également testé ton code, LSteph, et il fonctionne tout aussi bien
que celui de MichDenis.
Merci à vous deux.

LSteph a écrit :
Bonjour,
..une possibilité:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Application.EnableEvents = False
With Target.Cells
For i = 1 To .Count
.Item(i) = UCase(.Item(i))
Next
End With
Application.EnableEvents = True
End Sub

'lSteph

On 31 août, 15:44, Demokos wrote:
Merci à FS et à MichDenis,
mais y a-t-il une façon de faire en sorte que ça s'applique à toute la
feuille, et non seulement à une plage ? Range("A1:IV65535"), peut-être
?(XL 2003)

MichDenis a écrit :



Bonjour,
Dans le module feuille de ta feuille de calcul où l'action se déroule,
copie ce qui suit :
Dans l'exemple suivant, la mise en majuscule s'applique pour
la plage A1:G25 seulement. À toi de déterminer quelle est la
plage de la feuille de ton application où la macro doit être effective.
'------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Range("A1:G25"))
If Not Rg Is Nothing Then
For Each C In Rg
C.Value = UCase(C.Value)
Next
End If
End Sub
'------------------------------
"Demokos" a écrit dans le message de groupe de discussion :
4a9bc9ac$0$31263$
Bonjour à toutes et à tous.
Comment faire, en VBA, pour que chaque entrée soit mise en majuscule ?
Par avance merci- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -





Avatar
mugrec75
bonjour à tous et toutes

pour ma part, je mets la police "Felix Titling" comme police par défaut,
elle ressemble à "Times New Roman", et je peux saisir minuscule ou majuscule

cdlt

"MichDenis" wrote:

Bonjour Frédéric,

| Utilise plutôt Cells pour toute la feuille (mais ça va ramer !)

J'aurais utilisé cells peut être mais avec usedrange.cells
ça peut toujours ramer mais moins fort !!!
Voire même
UsedRange.SpecialCells(xlCellTypeConstants, xlTextValues).Cells
ça dépend de la grosseur de la gourde d'eau !
;-)




Avatar
MichDenis
Merci pour l'info.

Et comment tu fais si tu veux du texte en minuscule ?
;-)


"mugrec75" a écrit dans le message de groupe de
discussion :
bonjour à tous et toutes

pour ma part, je mets la police "Felix Titling" comme police par défaut,
elle ressemble à "Times New Roman", et je peux saisir minuscule ou majuscule

cdlt

"MichDenis" wrote:

Bonjour Frédéric,

| Utilise plutôt Cells pour toute la feuille (mais ça va ramer !)

J'aurais utilisé cells peut être mais avec usedrange.cells
ça peut toujours ramer mais moins fort !!!
Voire même
UsedRange.SpecialCells(xlCellTypeConstants, xlTextValues).Cells
ça dépend de la grosseur de la gourde d'eau !
;-)




Avatar
garnote
Il y a aussi la fonte Castellar :
http://pt.fontstock.net/15464/castellar.html


"mugrec75" a écrit dans le message de
news:
bonjour à tous et toutes

pour ma part, je mets la police "Felix Titling" comme police par défaut,
elle ressemble à "Times New Roman", et je peux saisir minuscule ou
majuscule

cdlt

"MichDenis" wrote:

Bonjour Frédéric,

| Utilise plutôt Cells pour toute la feuille (mais ça va ramer !)

J'aurais utilisé cells peut être mais avec usedrange.cells
ça peut toujours ramer mais moins fort !!!
Voire même
UsedRange.SpecialCells(xlCellTypeConstants, xlTextValues).Cells
ça dépend de la grosseur de la gourde d'eau !
;-)






1 2