Comment mettre auto une plage en nom propre en vba

libellule85

XLDnaute Accro
Bonjour le forum,

Une question pour les pros des macros : comment mettre une plage automatiquement en nom propre en vba ?

J'ai une plage de B11:G16, sur chaque ligne je rentre une date 04/04/2016 au format lundi 04 avril 2016 et je veux que la date apparaisse Lundi 04 Avril 2016.

d'avance merci pour votre aide
 

Pièces jointes

  • libellule85 nom propre plage.xlsm
    9.2 KB · Affichages: 44

job75

XLDnaute Barbatruc
Re : Comment mettre auto une plage en nom propre en vba

Bonjour libellule85,

Les formats de dates sont toujours en minuscules.

Pour obtenir des noms propres il faut une formule :

Code:
=NOMPROPRE(TEXTE(A1;"jjjj jj mmmm aaaa"))
A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Comment mettre auto une plage en nom propre en vba

Re,

Dans le code de la feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [B11:B16])
If r Is Nothing Then Exit Sub
For Each r In r 'si entrées multiples
  r.NumberFormat = """" & Application.Proper(Format(r, "dddd")) _
    & """ dd """ & Application.Proper(Format(r, "mmmm")) & """ yyyy"
Next
End Sub
Un format personnalisé est créé pour chaque cellule, au total il pourra s'en créer 7 x 12 = 84 :rolleyes:

A+
 

job75

XLDnaute Barbatruc
Re : Comment mettre auto une plage en nom propre en vba

Re,

Pour éviter la création de formats comme "hello" jj "hello" aaaa :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [B11:B16])
If r Is Nothing Then Exit Sub
For Each r In r 'si entrées multiples
If IsDate(r) Then _
  r.NumberFormat = """" & Application.Proper(Format(r, "dddd")) _
    & """ dd """ & Application.Proper(Format(r, "mmmm")) & """ yyyy"
Next
End Sub
A+
 

Discussions similaires

Réponses
1
Affichages
328

Statistiques des forums

Discussions
312 198
Messages
2 086 153
Membres
103 137
dernier inscrit
Billly