Mettre en majuscule

Le
Demokos
Bonjour à toutes et à tous.

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

Par avance merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FS
Le #20025141
Bonjour,

Par exemple, pour la plage A1:F30 de la feuille active :

Sub essai()
Dim cell As Range
For Each cell In Range("A1:F30")
cell.Value = UCase(cell.Value)
Next cell
End Sub

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Demokos a écrit :
Bonjour à toutes et à tous.

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

Par avance merci


MichDenis
Le #20025091
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" 4a9bc9ac$0$31263$
Bonjour à toutes et à tous.

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

Par avance merci
Demokos
Le #20025811
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" 4a9bc9ac$0$31263$
Bonjour à toutes et à tous.

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

Par avance merci



MichDenis
Le #20025421
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" 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" 4a9bc9ac$0$31263$
Bonjour à toutes et à tous.

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

Par avance merci



MichDenis
Le #20025671
Bonjour Garnote,

Et si tu fais un copier-coller de données qui proviennent d'une autre
feuille, est-ce que ta procédure fonctionne encore ?

Si tu sélectionnes une plage de cellules, appuies sur la touche F2
et entres une chaîne de caractère et que tu valides par Ctrl + Maj + Enter
Est-ce que ta procédure fonctionne toujours ?




"garnote"
Bonjour,

Essaie ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then Target.Value = UCase(Target.Value)
End Sub

Serge



"Demokos" 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" discussion : 4a9bc9ac$0$31263$
Bonjour à toutes et à tous.

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

Par avance merci




garnote
Le #20025661
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"
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" 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" discussion :
4a9bc9ac$0$31263$
Bonjour à toutes et à tous.

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

Par avance merci





MichDenis
Le #20025801
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 !
;-)
MichDenis
Le #20025791
| 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.
garnote
Le #20025781
Je n'avais pas non plus le
If C <> "" Then
mais est-ce vraiment nécessaire ?


"garnote" %
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"
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" 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" discussion :
4a9bc9ac$0$31263$
Bonjour à toutes et à tous.

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

Par avance merci









LSteph
Le #20025761
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
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-êtr e
?(XL 2003)

MichDenis a écrit :



> Bonjour,

> Dans le module feuille de ta feuille de calcul où l'action se dérou le,
> 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 effect ive.

> '------------------------------
> 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" > 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 -


Publicité
Poster une réponse
Anonyme