Majuscule

TONY21

XLDnaute Nouveau
Bonjour à tous

Un problème tout bête (pour moi certainement)

Je ne peut mettre une majuscule automatiquement dans une cellule

J'ai rechercher dans les options ou dans l'aide, mais j'ai pas trouver mon bonheur

si quelqu'un pouvais me données la solution

Merci

@ +
Tony 21
 

Hervé

XLDnaute Barbatruc
Re : Majuscule

bonjour tout le monde :)

Application.Proper(Target)

en vba on peut tres bien utiliser les fonctions natives d'excel, exemple :

MsgBox Application.Sum(10 + 5)

ce code renvoi 15, on à simplement utilisé la fonction somme() dans vba.

proper est la traduction anglaise de la fonction NOMPROPRE()


voilà pour l'explication de proper.

salut
 

duplaly

XLDnaute Occasionnel
Re : Majuscule

bonjour Tony21
Salut mjo RICO1972 Jacques87

une autre macro pour l'initiale en majuscule

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Value = UCase(Left(Target.Value, 1)) & Right(Target.Value, Len(Target.Value) - 1)
End Sub

valable pour toute la feuille

si tu veux restreindre a certaines cellules reviens pour preciser lesquelles
Bonjour
Si je veux appliquer ton code uniquement à la colonne «G». G2 jusqu'à la dernière ligne remplie.

ton support est apprécié!
 

job75

XLDnaute Barbatruc
Bonsoir duplaly, le fil,
Si je veux appliquer ton code uniquement à la colonne «G». G2 jusqu'à la dernière ligne remplie
Pour éviter à pierrejean de se fatiguer :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If FilterMode Then ShowAllData 'si la feuille est filtrée
Set Target = Intersect(Target, Range("G2", Range("G" & Rows.Count).End(xlUp)))
If Target Is Nothing Then Exit Sub
Application.EnableEvents = False 'désactive les évènements
For Each Target In Target 'si entrées multiples
    Target = Application.Proper(Target) 'NOMPROPRE
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
A+
 

duplaly

XLDnaute Occasionnel
Bonsoir duplaly, le fil,

Pour éviter à pierrejean de se fatiguer :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If FilterMode Then ShowAllData 'si la feuille est filtrée
Set Target = Intersect(Target, Range("G2", Range("G" & Rows.Count).End(xlUp)))
If Target Is Nothing Then Exit Sub
Application.EnableEvents = False 'désactive les évènements
For Each Target In Target 'si entrées multiples
    Target = Application.Proper(Target) 'NOMPROPRE
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
A+
Un grand merci car le code fonctionne Nikel.

Toujours avec le même principe jusqu'à la dernière ligne remplie, comment est-ce que je pourrais arranger ce code:
Range("B4:B60") = [INDEX(UPPER(B4:B60),)]
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso