bonjour a tous
j'ai une base de donnees sur un tableau excel (version 2003) et sous windows
7
quand j'indique un nom de pays, en majuscules certains apparaissent
automatiquement en minuscules:
par exemple (un extrait de mon tableau par copier-coller):
France
Italie
Allemagne
ISRAEL
Etats-Unis
Espagne
IRAN
ALBANIE
Belgique
Luxembourg
GRANDE BRETAGNE
BOLIVIE
connaissez-vous le moyen d'obtenir tout en majuscules
par avance, merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour,
Dans le module de la feuille, tu peux copier cette procédure. Dans mon exemple, je spécifie que la plage de cellules concernée est "Range("A:A"), mais tu peux choisir la plage que tu désires. L'effet de cette procédure est qu'elle met en majuscule toutes les données saisies dans la colonne A:A. À toi d'adapter.
Pour insérer, cette procédure dans le module de la feuille, tu fais un clic droit sur l'onglet de la feuille et tu choisis la commande visualiser le code. Tu colles le code dans la page blanche!
'-------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim Rg As Range Set Rg = Intersect(Target, Range("A:A")) If Not Intersect(Rg, Target) Is Nothing Then Application.EnableEvents = False For Each c In Rg c.Value = UCase(c.Value) Next Application.EnableEvents = True End If End Sub '--------------------------------
Si dans certains cas, le pays se met en majuscule automatiquement c'est que ledit pays est défini dans la liste des "Mises en forme automatique au cours de la frappe" dans les options d'Excel / vérification / options de correction automatique /
Dans le module de la feuille, tu peux copier cette procédure.
Dans mon exemple, je spécifie que la plage de cellules concernée
est "Range("A:A"), mais tu peux choisir la plage que tu désires.
L'effet de cette procédure est qu'elle met en majuscule toutes les
données saisies dans la colonne A:A. À toi d'adapter.
Pour insérer, cette procédure dans le module de la feuille, tu fais
un clic droit sur l'onglet de la feuille et tu choisis la commande
visualiser le code. Tu colles le code dans la page blanche!
'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("A:A"))
If Not Intersect(Rg, Target) Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
c.Value = UCase(c.Value)
Next
Application.EnableEvents = True
End If
End Sub
'--------------------------------
Si dans certains cas, le pays se met en majuscule automatiquement
c'est que ledit pays est défini dans la liste des "Mises en forme
automatique au cours de la frappe" dans les options d'Excel /
vérification / options de correction automatique /
Dans le module de la feuille, tu peux copier cette procédure. Dans mon exemple, je spécifie que la plage de cellules concernée est "Range("A:A"), mais tu peux choisir la plage que tu désires. L'effet de cette procédure est qu'elle met en majuscule toutes les données saisies dans la colonne A:A. À toi d'adapter.
Pour insérer, cette procédure dans le module de la feuille, tu fais un clic droit sur l'onglet de la feuille et tu choisis la commande visualiser le code. Tu colles le code dans la page blanche!
'-------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim Rg As Range Set Rg = Intersect(Target, Range("A:A")) If Not Intersect(Rg, Target) Is Nothing Then Application.EnableEvents = False For Each c In Rg c.Value = UCase(c.Value) Next Application.EnableEvents = True End If End Sub '--------------------------------
Si dans certains cas, le pays se met en majuscule automatiquement c'est que ledit pays est défini dans la liste des "Mises en forme automatique au cours de la frappe" dans les options d'Excel / vérification / options de correction automatique /
"MichD" a écrit dans le message de groupe de discussion : kltgsl$1g1$ '-------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim Rg As Range Set Rg = Intersect(Target, Range("A:A")) If Not Intersect(Rg, Target) Is Nothing Then Application.EnableEvents = False For Each c In Rg c.Value = UCase(c.Value) Next Application.EnableEvents = True End If End Sub '--------------------------------
merci beaucoup pour ta reponse rapide et qui fonctionne tres bien tu vas penser que je suis trop exigeant, mais j'ai encore un petit probleme: effectivement, lorsque je tape un nom de pays, il se met automatiquement en majuscules, mais ceux que j'ai tape avant l'introduction de cette routine n'ont pas ete transformes. Ce qui fait que j'ai a peu pres 2500 pays a re-ecrire Faisable, bien sur, mais pas tres interessant. Une autre solution miracle?
"MichD" a écrit dans le message de groupe de discussion :
kltgsl$1g1$1@speranza.aioe.org...
'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("A:A"))
If Not Intersect(Rg, Target) Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
c.Value = UCase(c.Value)
Next
Application.EnableEvents = True
End If
End Sub
'--------------------------------
merci beaucoup pour ta reponse rapide et qui fonctionne tres bien
tu vas penser que je suis trop exigeant, mais j'ai encore un petit probleme:
effectivement, lorsque je tape un nom de pays, il se met automatiquement en
majuscules, mais ceux que j'ai tape avant l'introduction de cette routine
n'ont pas ete transformes. Ce qui fait que j'ai a peu pres 2500 pays a
re-ecrire
Faisable, bien sur, mais pas tres interessant.
Une autre solution miracle?
"MichD" a écrit dans le message de groupe de discussion : kltgsl$1g1$ '-------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim Rg As Range Set Rg = Intersect(Target, Range("A:A")) If Not Intersect(Rg, Target) Is Nothing Then Application.EnableEvents = False For Each c In Rg c.Value = UCase(c.Value) Next Application.EnableEvents = True End If End Sub '--------------------------------
merci beaucoup pour ta reponse rapide et qui fonctionne tres bien tu vas penser que je suis trop exigeant, mais j'ai encore un petit probleme: effectivement, lorsque je tape un nom de pays, il se met automatiquement en majuscules, mais ceux que j'ai tape avant l'introduction de cette routine n'ont pas ete transformes. Ce qui fait que j'ai a peu pres 2500 pays a re-ecrire Faisable, bien sur, mais pas tres interessant. Une autre solution miracle?
MichD
Bonjour,
Tu peux utiliser cette procédure :
Dans la procédure, adapte le nom de l'onglet de la feuille en remplaçant "NomDeLaFeuill" par le nom de l'onglet de la feuille de ton application.
Tu dois aussi adapter l'adresse de la plage de cellules à traiter. remplace A par la lettre de la colonne de ton choix dans : .Range("A1:A" & .Range("A65536").End(xlUp).Row) Et au lieu de A1, cela peut débuter au numéro de la ligne que tu désires.
'--------------------------------------- Sub Mise_En_Majuscule() Dim C As Range Application.ScreenUpdating = False Application.EnableEvents = False With Worksheets("NomDeLaFeuill") For Each C In .Range("A1:A" & .Range("A65536").End(xlUp).Row) C.Value = UCase(C.Value) Next End With Application.EnableEvents = True Application.ScreenUpdating = True End Sub '---------------------------------------
Dans la procédure, adapte le nom de l'onglet de la feuille
en remplaçant "NomDeLaFeuill" par le nom de l'onglet de
la feuille de ton application.
Tu dois aussi adapter l'adresse de la plage de cellules à traiter.
remplace A par la lettre de la colonne de ton choix dans :
.Range("A1:A" & .Range("A65536").End(xlUp).Row)
Et au lieu de A1, cela peut débuter au numéro de la ligne que
tu désires.
'---------------------------------------
Sub Mise_En_Majuscule()
Dim C As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("NomDeLaFeuill")
For Each C In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
C.Value = UCase(C.Value)
Next
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------------------
Dans la procédure, adapte le nom de l'onglet de la feuille en remplaçant "NomDeLaFeuill" par le nom de l'onglet de la feuille de ton application.
Tu dois aussi adapter l'adresse de la plage de cellules à traiter. remplace A par la lettre de la colonne de ton choix dans : .Range("A1:A" & .Range("A65536").End(xlUp).Row) Et au lieu de A1, cela peut débuter au numéro de la ligne que tu désires.
'--------------------------------------- Sub Mise_En_Majuscule() Dim C As Range Application.ScreenUpdating = False Application.EnableEvents = False With Worksheets("NomDeLaFeuill") For Each C In .Range("A1:A" & .Range("A65536").End(xlUp).Row) C.Value = UCase(C.Value) Next End With Application.EnableEvents = True Application.ScreenUpdating = True End Sub '---------------------------------------
"MichD" a écrit dans le message de groupe de discussion : klumis$ljb$
Bonjour,
Tu peux utiliser cette procédure :
Dans la procédure, adapte le nom de l'onglet de la feuille en remplaçant "NomDeLaFeuill" par le nom de l'onglet de la feuille de ton application.
Tu dois aussi adapter l'adresse de la plage de cellules à traiter. remplace A par la lettre de la colonne de ton choix dans : .Range("A1:A" & .Range("A65536").End(xlUp).Row) Et au lieu de A1, cela peut débuter au numéro de la ligne que tu désires.
'--------------------------------------- Sub Mise_En_Majuscule() Dim C As Range Application.ScreenUpdating = False Application.EnableEvents = False With Worksheets("NomDeLaFeuill") For Each C In .Range("A1:A" & .Range("A65536").End(xlUp).Row) C.Value = UCase(C.Value) Next End With Application.EnableEvents = True Application.ScreenUpdating = True End Sub '---------------------------------------
MichD --------------------------------------------------------------- merci, merci encore plus rapide que DHL !!!!!!!!!!!!!!!! je vais essayer cela au bureau, des demain matin
"MichD" a écrit dans le message de groupe de discussion :
klumis$ljb$1@speranza.aioe.org...
Bonjour,
Tu peux utiliser cette procédure :
Dans la procédure, adapte le nom de l'onglet de la feuille
en remplaçant "NomDeLaFeuill" par le nom de l'onglet de
la feuille de ton application.
Tu dois aussi adapter l'adresse de la plage de cellules à traiter.
remplace A par la lettre de la colonne de ton choix dans :
.Range("A1:A" & .Range("A65536").End(xlUp).Row)
Et au lieu de A1, cela peut débuter au numéro de la ligne que
tu désires.
'---------------------------------------
Sub Mise_En_Majuscule()
Dim C As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("NomDeLaFeuill")
For Each C In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
C.Value = UCase(C.Value)
Next
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------------------
MichD
---------------------------------------------------------------
merci, merci
encore plus rapide que DHL !!!!!!!!!!!!!!!!
je vais essayer cela au bureau, des demain matin
"MichD" a écrit dans le message de groupe de discussion : klumis$ljb$
Bonjour,
Tu peux utiliser cette procédure :
Dans la procédure, adapte le nom de l'onglet de la feuille en remplaçant "NomDeLaFeuill" par le nom de l'onglet de la feuille de ton application.
Tu dois aussi adapter l'adresse de la plage de cellules à traiter. remplace A par la lettre de la colonne de ton choix dans : .Range("A1:A" & .Range("A65536").End(xlUp).Row) Et au lieu de A1, cela peut débuter au numéro de la ligne que tu désires.
'--------------------------------------- Sub Mise_En_Majuscule() Dim C As Range Application.ScreenUpdating = False Application.EnableEvents = False With Worksheets("NomDeLaFeuill") For Each C In .Range("A1:A" & .Range("A65536").End(xlUp).Row) C.Value = UCase(C.Value) Next End With Application.EnableEvents = True Application.ScreenUpdating = True End Sub '---------------------------------------
MichD --------------------------------------------------------------- merci, merci encore plus rapide que DHL !!!!!!!!!!!!!!!! je vais essayer cela au bureau, des demain matin