NOM Prénom et dates

Bonjour,

Je reviens vers vous pour deux problèmes : je pensais que le premier était résolu mais en fait j'avais fait deux codes pour chaque cellule et cela ne marche pas.

Problème 1:

J'ai 2 colonnes ( 1 concernant les noms et la seconde concernant les prénoms)

Je souhaiterais que peu importe le mode saisie ( majuscule ou minuscule) que la première colonne apparaisse en MAJUSCULE et dans la seconde que le prénom apparaisse avec la première lettre seulement en Majuscule.

Problème 2

Est-il possible de saisir pour la date 10072017 et que cela apparaisse en 10/07/2017

merci pour votre dévouement

Bonjour

Ne serait-il pas plus simple de continuer dans le même fil https://forum.excel-pratique.com/post553756.html#p553756 ?

Bonjour le forum,

Voir le fichier joint.

14maj.xlsm (38.66 Ko)

Bonjour le fil, bonjour le forum,

@Precisium,

Pour la date c'est plus complexe. D'abord si tu tapes dans Excel 01022017 tu verras que le premier zéro disparaît, à moins que la cellule ne soit au format texte... Ensuite le code que je te propose ne va fonctionner que si tu tapes toujours :

2 digit pour les jour [01, 09, 15, etc.]

2 digits pour les mois [03,11, etc.]

4 digits pour les années [17 pour 2017 ne fonctionnera pas !].

À partir de là, le code pour la date est un peut plus complexe :

J'ai codé colonne 2 pour le nom, 3 pour le prénom et 4 pour la date. Tu adapteras...

Le code :

Private TEST As Boolean 'déclare la variable TEST

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 4 Then 'condition : colonne 4 (à adapter à ton cas)
    If Target.Value = "" Then Target.NumberFormat = "@" 'impose le format texte à la cellule selectionnée si non vide
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim J As String 'déclare la variable J (Jour)
Dim M As String 'déclare la variable M (Mois)
Dim A As String 'déclare la variable A (Année)
Dim D As Long 'déclare la variable D (Date en entier long)

If TEST = True Then Exit Sub 'si TEST est [Vrai], sort de la procédure
If Target.Column = 2 Then TEST = True: Target.Value = UCase(Target.Value): TEST = False 'nom (colonne 2 à adapter à ton cas)
If Target.Column = 3 Then TEST = True: Target.Value = Application.WorksheetFunction.Proper(Target.Value): TEST = False 'prenom (colonne 3 à adapter à ton cas)
If Target.Column = 4 Then 'condition : colonne 4 (à adapter à ton cas)
    If Target.Value = "" Then Exit Sub 'si la cellule est effacée, sort de la procédure
    J = Left(Target.Value, 2) 'définit le jour J
    M = Mid(Target.Value, 3, 2) 'définit le mois M
    A = Right(Target.Value, 4) 'définit l'Année A
    D = DateSerial(A, M, J) 'définit la date D
    TEST = True 'définit la variable TEST = [vrai]
    Target.Value = D 'renvoie la date dans D (relance la procédure Change d'où la variable TEST)
    TEST = False
    Target.NumberFormat = "dd/mm/yyyy" 'impose la format date à la cellule modifiée
End If 'fin de la condition
End Sub
Rechercher des sujets similaires à "nom prenom dates"