noms de pays en minuscules !!

Le
EDGAR
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #25378282
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 /



MichD
---------------------------------------------------------------
EDGAR
Le #25379602
"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
Le #25379712
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
---------------------------------------------------------------
EDGAR
Le #25379752
"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
Publicité
Poster une réponse
Anonyme