Excel mise en forme

Bonjour,
j'ai fait une petite feuille de calcul simple qui comporte 1 plage nom prénom or je voudrais automatiser la mise en majuscule du nom et du prénom dans cette plages , que ça se fasse à la saisie dès l'ouverture de la feuille bref que ça soit automatisé.
Merci pour votre aide



--
Il est fort possible que tes résultats ne soient pas à la hauteur de tes espérances, dans ce moments là dis toi que le Grand Chêne aussi ,un jour, a été un gland.

3 réponses

  1. Essaye donc ça : = A1 & " " & majuscule(B3).

    Qui devient : = nompropre(A3) & " " & majuscule(B3).
    = prenom(A3) & " " & majuscule(B3).

    Bye bye :)
    0
    1. Merci de ta réponse, mais.....

      j'aurais souhaité le faire sous forme d'une macro derrière ma feuille je suppose que ça doit bien exister.....???
      0
  2. Salut,

    oui bien sur que ça existe suffit de demander ou certainement en cherchant un peu sur le forum ou sur Google

    clic droit sur l'onglet de ta feuille/Visualiser le code
    colle ce code pour trater la plage A2 à A100

    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
    If Target.Count > 1 Or Target = "" Then Exit Sub
    Dim Tablo As Variant
    Application.EnableEvents = False
    Tablo = Split(Application.Proper(Target), " ")
    If UBound(Tablo) >= 0 Then Tablo(0) = UCase(Tablo(0))
    Target = Join(Tablo)
    Application.EnableEvents = True
    End If
    End Sub

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. Bonjour,

      Il est préférable de placer le nom et le prénom dans 2 colonnes distinctes car quand ils sont composés de plusieurs mots, il est difficile des distinguer l'un de l'autre.

      Voici un code qui fonctionne aussi pour les sélections multiples et les copier coller, avec le NOM colonne A et le Prénom colonne B
      Option Explicit 
      
      Private Sub Worksheet_Change(ByVal Target As Range) 
        Call ChangerLaCasse(Intersect(Target, ActiveSheet.UsedRange)) 
      End Sub 
      
      Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
        Call ChangerLaCasse(Intersect(Target, ActiveSheet.UsedRange)) 
      End Sub 
      
      Private Sub ChangerLaCasse(Cible As Range) 
        If Cible Is Nothing Then Exit Sub 
        If Intersect(Cible, Range("A:B")) Is Nothing Then Exit Sub 
        Dim cel As Range 
        Application.EnableEvents = False 
        For Each cel In Cible.Cells 
          If Not Intersect(cel, Range("A:A")) Is Nothing Then 
            cel.Value = UCase(cel.Value) 
          ElseIf Not Intersect(Cible, Range("B:B")) Is Nothing Then 
            cel.Value = Application.WorksheetFunction.Proper(cel.Value) 
          End If 
        Next cel 
        Application.EnableEvents = True 
      End Sub 
      

      Cordialement
      Patrice
      0