Excel mise en forme

vda30 Messages postés 197 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8930 Statut Membre -
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


A voir également:

3 réponses

Darkam1 Messages postés 181 Statut Membre 18
 
Essaye donc ça : = A1 & " " & majuscule(B3).

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

Bye bye :)
0
vda30 Messages postés 197 Date d'inscription   Statut Membre Dernière intervention   20
 
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
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
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
Patrice33740 Messages postés 8930 Statut Membre 1 782
 
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