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. 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
    1. 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. 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