IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Saisie d'une date dans une cellule a l'aide d'un Calendrier [FAQ]


Sujet :

Contribuez

  1. #1
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut Saisie d'une date dans une cellule a l'aide d'un Calendrier
    Ce post vous propose une méthode pour aider l'utilisateur à saisir une date dans une cellule en lui proposant un calendrier.

    Pour l'exemple on prendra comme hypothèse que la saisie se fait dans la cellule E11.

    1 - Ajouter sur la feuille contrôle Calendrier que vous trouverez dans les contrôles complémentaires de la boite à outils VBA, et le positionner en bas a droite du coin de la cellule E11

    2 - Dans les propriétes du calendrier, mettre visible à false

    3 - Dans l'évenement Selection_Change de la feuille on va gérer l'affichage du calendrier si la cellule est sélectionnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    If Target.Address = "$E$11" Then
        Me.Calendar1.Visible = True
    Else
        Me.Calendar1.Visible = False
    End If
     
    End Sub
    4 - L'affichage de la date dans la cellule sera provoqué par le click sur le calendrier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Calendar1_Click()
        Range("E11").Value = Me.Calendar1.Value
    End Sub
    5 - Pour éviter les saisies forcées, on utilsera la validation (menu données) que l'on mettra a date supérieur à 01/01/1900 (a vous de voir)


    Et avec le fichier c'est plus parlant : Calendrier.xls

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 467
    Points : 493
    Points
    493
    Par défaut
    Bonsoir jfontaine
    Je me suis permis de porter un petit changement à ton code bien sûr si vous permettait
    A part ça c’est bon, il facilite beaucoup plus la saisie des dates dans les cellules tout en évitant les erreurs de saisie.
    dans l'évenement clic du control calendar
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Calendar1_Click()
        Range("E11").Value = Me.Calendar1.Value
        Me.Calendar1.Visible = False
    End Sub
    dans l'évenement Worksheet_SelectionChange de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$E$11" Then
        Me.Calendar1.Visible = True
    End If
    End Sub
    Bonne soirée
    Abed_H

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    j'aimerai faire la meme chose mais avec excel 2007
    est ce possible
    merci d'avance

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    893
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 893
    Points : 833
    Points
    833
    Par défaut bonsoir jfontaine, abed_H,
    Je prèfere la méthode du double-clic sur la cellule quand on a des colonnes de dates et que l'on doit les traverser au clavier.

    Voir l'exemple justement du post de ce midi :http://www.developpez.net/forums/d88...drier-cellule/

    Réponse à pibi_47, il n'y a aucun problème avec 2007 à partir du moment ou le contrôle calendrier est référencé sur la machine.

    ESVBA

  5. #5
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Une variante pour colonne entière
    Si vous avez une feuille qui contient une colonne DATE et que vous aimeriez saisir des dates différentes dans chacune des cellules de cette colonne, à l'aide du calendrier, voici une petite modification du code VBA.

    À la ligne If Target.Column = 6 Then, inscrire le bon numéro de colonne.

    Prévoir également de figer les volets sous le calendrier, puisqu'il ne se déplace pas à mesure que l'on se déplace sur la feuille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Calendar1_Click()
        ActiveCell = Me.Calendar1.Value
    End Sub
    ________________________________
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    If Target.Column = 6 Then
        Me.Calendar1.Visible = True
    Else
        Me.Calendar1.Visible = False
    End If
     
    End Sub

Discussions similaires

  1. [AC-2007] Comparer une date d'une table et une date saisie
    Par minooo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/03/2019, 21h40
  2. [MySQL] insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 16/08/2014, 11h10
  3. insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/08/2014, 16h31
  4. Réponses: 2
    Dernier message: 23/03/2014, 12h05
  5. Inserer une date d'une table dans une autre table
    Par petitetre dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/04/2007, 20h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo