Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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
333
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…