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

Macros et VBA Excel Discussion :

Manipulation d'un calendrier sur Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 40
    Par défaut Manipulation d'un calendrier sur Excel
    Salut à tous,
    Je dispose d'un calendrier sur excel pour le choix de mes dates.
    Il marche plutôt bien mais j'aimerais y rajuter deux petites modifs:
    J'aimerais qu'en fait celui ci n'apparaisse que lors d'un double click sur la cellule cible (en plus de toutes les conditions déjà implementées).
    Ensuite ce serait bien qu'il disparaisse ddès qu'on effectue le choix de la date
    Ci joint le code que j'ai adapté:
    Quelqu'un pourrait il m'aider svp??
    Merci d'avance!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Private Sub Calendar1_Click()
     ActiveCell.Value = Calendar1.Value
    End Sub
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If ((((Target.Column = 5 Or Target.Column = 9) And Target.Row > 16) Or (Target.Column = 5 And (Target.Row = 8 Or Target.Row = 9))) And Target.Cells.Count = 1) Then
                Calendar1.Top = Target.Offset(1, 0).Top + 2
                Calendar1.Left = Target.Left + 10
                Calendar1.LinkedCell = Target.Address
                If IsDate(Target.Value) Then
                    Calendar1.Value = Target.Value
               Else
                    Calendar1.Value = Date
                End If
                Calendar1.Visible = True
     
        Else
        Calendar1.Visible = False
                     Exit Sub
     
     
     
        End If
    End Sub

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir http://www.developpez.net/forums/d43...ellule-active/ et adapter à ton contexte
    voir avec évènement Worksheet_BeforeDoubleClick

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 40
    Par défaut
    Merci pour les liens!!
    ça ne m'a pas trop réussi mais j'ai finalement résolu mon problème tout seul.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Private Sub Calendar1_Click()
     ActiveCell.Value = Calendar1.Value
    Calendar1.Visible = False 'Pour fermer dès que tu cliques dessus
     
     
    End Sub
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If ((((Target.Column = 5 Or Target.Column = 9) And Target.Row > 16) Or (Target.Column = 5 And (Target.Row = 8 Or Target.Row = 9))) And Target.Cells.Count = 1) Then
                If Target.value="" Then 
    'pour qu'il ne s'ouvre que lorsque la cellule est vide
                   Calendar1.Top = Target.Offset(1, 0).Top + 2
                   Calendar1.Left = Target.Left + 10
                   Calendar1.LinkedCell = Target.Address
                   Calendar1.Value = Date
                   Calendar1.Visible = True
                End If
     
        Else
        Calendar1.Visible = False
                     Exit Sub
     
     
     
        End If
    End Sub
    Plus besoin de double clique du coup c'est beaucoup moins génant!!!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. manipuler les objets graphique d'excel sur access
    Par technopole dans le forum Access
    Réponses: 4
    Dernier message: 21/07/2006, 10h37
  2. Export Texte sur Excel
    Par Damien1969 dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2005, 13h17
  3. forcer date sans texte sur excel
    Par scully2501 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/09/2005, 13h45
  4. comment afficher des données Access sur Excel ??
    Par merlubreizh dans le forum Access
    Réponses: 9
    Dernier message: 14/09/2005, 14h38
  5. Manipulation d'un Objet OLE Excel ?
    Par NiKro75 dans le forum VBA Access
    Réponses: 10
    Dernier message: 05/07/2004, 17h43

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