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
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
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" <nospam.demokos@free.fr> a écrit dans le message de groupe de discussion :
4a9bc9ac$0$31263$426a34cc@news.free.fr...
Bonjour à toutes et à tous.
Comment faire, en VBA, pour que chaque entrée soit mise en majuscule ?
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
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-ê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
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" <nospam.demokos@free.fr> a écrit dans le message de groupe de discussion :
4a9bc9ac$0$31263$426a34cc@news.free.fr...
Bonjour à toutes et à tous.
Comment faire, en VBA, pour que chaque entrée soit mise en majuscule ?
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
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" 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
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" <nospam.demokos@free.fr> a écrit dans le message de groupe de discussion :
4a9bd3b0$0$22558$426a34cc@news.free.fr...
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" <nospam.demokos@free.fr> a écrit dans le message de groupe de discussion :
4a9bc9ac$0$31263$426a34cc@news.free.fr...
Bonjour à toutes et à tous.
Comment faire, en VBA, pour que chaque entrée soit mise en majuscule ?
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
MichDenis
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" a écrit dans le message de groupe de discussion :
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" a écrit dans le message de news: 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
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" <garnote3@videotron.ca> a écrit dans le message de groupe de discussion :
ORsDxMkKKHA.1488@TK2MSFTNGP03.phx.gbl...
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" <nospam.demokos@free.fr> a écrit dans le message de news:
4a9bd3b0$0$22558$426a34cc@news.free.fr...
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" <nospam.demokos@free.fr> a écrit dans le message de groupe de
discussion : 4a9bc9ac$0$31263$426a34cc@news.free.fr...
Bonjour à toutes et à tous.
Comment faire, en VBA, pour que chaque entrée soit mise en majuscule ?
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" a écrit dans le message de groupe de discussion :
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" a écrit dans le message de news: 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
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" 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
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" <michdenis@hotmail.com> a écrit dans le message de news:
ewysQOkKKHA.4608@TK2MSFTNGP02.phx.gbl...
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" <nospam.demokos@free.fr> a écrit dans le message de groupe de
discussion :
4a9bd3b0$0$22558$426a34cc@news.free.fr...
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" <nospam.demokos@free.fr> a écrit dans le message de groupe de
discussion :
4a9bc9ac$0$31263$426a34cc@news.free.fr...
Bonjour à toutes et à tous.
Comment faire, en VBA, pour que chaque entrée soit mise en majuscule ?
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
MichDenis
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 ! ;-)
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 !
;-)
| 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
| 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.
| 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.
| 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
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
Je n'avais pas non plus le
If C <> "" Then
mais est-ce vraiment nécessaire ?
"garnote" <garnote3@videotron.ca> a écrit dans le message de news:
%23Vx2EUkKKHA.3708@TK2MSFTNGP02.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message de news:
ewysQOkKKHA.4608@TK2MSFTNGP02.phx.gbl...
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" <nospam.demokos@free.fr> a écrit dans le message de groupe de
discussion :
4a9bd3b0$0$22558$426a34cc@news.free.fr...
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" <nospam.demokos@free.fr> a écrit dans le message de groupe de
discussion :
4a9bc9ac$0$31263$426a34cc@news.free.fr...
Bonjour à toutes et à tous.
Comment faire, en VBA, pour que chaque entrée soit mise en majuscule ?
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
LSteph
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-ê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" 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 -
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 <nospam.demo...@free.fr> 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-ê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" <nospam.demo...@free.fr> a écrit dans le message de groupe de discussion :
> 4a9bc9ac$0$31263$426a3...@news.free.fr...
> 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 -
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-ê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" 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 -