Macro majuscule minuscule, dans code la feuille...

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais votre aide pour ce problème.

dans zone de saisies F2:F4000 ce que je souhaite ;

- je tape ; machintruc christian je valide, ça me donne MACHINTRUC Christian
ou je tape ; MACHINTRUC CHRISTIAN je valide, ça me donne MACHINTRUC Christian

Autrement dit, quelque soit la position du clavier toutes les saisies seront uniformes.

Merci pour votre aide, si précieuse.

Bien à vous,
Christian
 

Christian0258

XLDnaute Accro
Re : Macro majuscule minuscule, dans code la feuille...

Re, le forum, JB,

Bonjour à tous,

A nouveau merci pour ton aide, JB, mais je souhaite le NOM propre tout en majuscule, dans ton fichier seule la première lettre du Nom est en majuscule...?

à vous lire,

Bien à vous,
Christian
 

Christian0258

XLDnaute Accro
Re : Macro majuscule minuscule, dans code la feuille...

Re, le forum, JB


J'applique cette macro sur la colonne F donc j'ai mis ;
If Target.Column = 6 And Target.Count = 1 Then c'est ok

comment modifier pour appliquer cette macro également sur la colonne G soit 7

à vous lire.
Merci

Bien amicalement,
Christian
 

job75

XLDnaute Barbatruc
Re : Macro majuscule minuscule, dans code la feuille...

Bonjour Christian, JB,

Les traits d'union dans les noms à rallonge ce n'est pas le top, ils peuvent être évités :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s, n, p
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 Then
  s = Split(UCase(Application.Trim(Target)))
  n = UBound(s) + 1
  If n = 2 Then s(1) = Application.Proper(s(1))
  If n > 2 Then
    p = Int(Abs(Val(InputBox("Entrez le nombre de mots du nom :", , 1))))
    p = IIf(p = 0, 1, IIf(p > n, n, p))
    For n = p + 1 To n
      s(n - 1) = Application.Proper(s(n - 1)):
    Next
  End If
  Target = Join(s)
End If
Application.EnableEvents = True
End Sub
A+
 

Christian0258

XLDnaute Accro
Re : Macro majuscule minuscule, dans code la feuille...

Re, le forum, JB? job75

Si, job75, j'ai pal mal essayé mais quand on ne connait pas grand chose en VBA, on met une virgule, un espace ou autre mais comme c'est jamais à la bonne place dans la macro ...ça plante.

Bien à toi,
Christian
 

job75

XLDnaute Barbatruc
Re : Macro majuscule minuscule, dans code la feuille...

Re,

Pour éviter de créer une variable supplémentaire j'ai écrit au post #7 For n = p + 1 To n

Mais il faut écrire For p = p + 1 To n :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s, n, p
Application.EnableEvents = False
If InStr("6 7", Target.Column) And Target.Count = 1 Then
  s = Split(UCase(Application.Trim(Target)))
  n = UBound(s) + 1
  If n = 2 Then s(1) = Application.Proper(s(1))
  If n > 2 Then
    p = Int(Abs(Val(InputBox("Entrez le nombre de mots du nom :", , 1))))
    p = IIf(p = 0, 1, IIf(p > n, n, p))
    For p = p + 1 To n
      s(p - 1) = Application.Proper(s(p - 1))
    Next
  End If
  Target = Join(s)
End If
Application.EnableEvents = True
End Sub
Je n'avais pas testé correctement, désolé.

Bonne fin de soirée.
 

job75

XLDnaute Barbatruc
Re : Macro majuscule minuscule, dans code la feuille...

Bonjour Christian, JB,

Pour changer un peu :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Static s: Dim n%, p
If InStr("6 7", Target.Column) = 0 Or Target.Count > 1 Or IsArray(s) Then Exit Sub
s = Split(UCase(Application.Trim(Target)))
n = UBound(s)
If n = 1 Then s(1) = Application.Proper(s(1))
If n > 1 Then
  p = Int(Abs(Val(InputBox("Entrez le nombre de mots du nom :", , 1))))
  p = IIf(p = 0, 1, IIf(p > n, n + 1, p))
  For p = p To n
    s(p) = Application.Proper(s(p))
  Next
End If
Target = Join(s): s = Empty
End Sub
A+
 
Dernière édition:

Christian0258

XLDnaute Accro
Re : Macro majuscule minuscule, dans code la feuille...

Re, le forum, JB, job75,

Merci à vous pour vos solutions.

Très pratiques, job75, ta solution "ImputBox" dans le cas de NOM composés...

Dernière question, comment éviter que l'entête, de la colonne 6 et 7, soit traité.

Bien à vous,
Christian
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Macro majuscule minuscule, dans code la feuille...

Bonjour,

If Not Intersect([F2:G10000], Target) Is Nothing And Target.Count = 1 Then

ou si les colonnes sont discontinues

If Not Intersect(Range("F2:F10000,H2:H10000"), Target) Is Nothing And Target.Count = 1 Then

JB
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 071
Messages
2 085 049
Membres
102 766
dernier inscrit
Awiix