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 :

plusieurs date à saisir mais de valeurs differentes


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut plusieurs date à saisir mais de valeurs differentes
    bonjour
    c'st couillon, mais
    j'ai le controle calendrier ou je recupere la valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Private Sub MonthView1_DateClick(ByVal DateClicked As Date) 'recopie la valeur du calendrier
     
     
    ComboBox18.Value = MonthView1.Value
    'ComboBox20.Value = MonthView1.Value pas bon
    'ComboBox25.Value = MonthView1.Value pas bon
     
    MonthView1.Visible = False 'rend invible le calendrier
    End Sub


    j'ai 2 autres combobox(20 et 25) qui ont besoin d'appeler le calendrier (monthview)pour recuperer des valeurs, Bien sur differentes!!!!

    Peut on se passer de creer 3 calendrier differents(monthview1,2 et3) et utiliser un seul calendrier ??????

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Un seul contrôle suffit !

    Truc :

    Te servir d'une variable globale à laquelle tu passes la combo concernée (objet)

    A la validation du contrôle, tu lis cette variable et connais donc la combo concernée ...


  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut
    salut ucfoutu

    je comprends pas tout

    varaible global , par exemple madate ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub MonthView1_DateClick(ByVal DateClicked As Date) 'recopie la valeur du calendrier
     
    madate = MonthView1.Value
     
    MonthView1.Visible = False 'rend invible le calendrier
    End Sub

    c'est la que je vois pas

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ça ne t'irait pas ?

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut
    bonjour
    voila ce que j'ai fait bon c'est pas top car au premier passage dans quelque soit la combobox necessitant une date sa valeur reste vide sinon c'est à ameliorer

    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
    29
    30
     
     
    Dim MADATE As String 'variable globale mise à 0 dans USFinit
     
     
     
     
    Private Sub ComboBox18_enter() 'on entre dans le comboboxdate de creation 
    fiche
    ComboBox18.Value = ""
    Me.MonthView1.Visible = True
    ComboBox18.Value = MADATE
    combobox18.enable=false
    End Sub
     
     
    Private Sub ComboBox25_enter() 'on entre dans le comboboxdate de amortissement fiche
    ComboBox25.Value = ""
    Me.MonthView1.Visible = True
    ComboBox25.Value = MADATE
    combobox25.enable=false
    End Sub
     
     
     
    Private Sub MonthView1_DateClick(ByVal DateClicked As Date) 'recopie la valeur du calendrier
     
    MADATE = MonthView1.Value
    MonthView1.Visible = False 'rend invible le calendrier
    End Sub


    c'est pas top un coup de pousse ?????
    si qql un a une idee

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu peux tester ça pour moi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim Madate, MonCombo
    Private Sub Calendar1_Click()
    Madate = Calendar1.Value
    Me.Controls(MonCombo) = Madate
    Me.Controls(MonCombo).Locked = True
    Me.Calendar1.Visible = False
    End Sub
     
    Private Sub ComboBox1_Enter()
    MonCombo = ActiveControl.Name
    Me.Calendar1.Visible = True
    Me.Repaint
    End Sub
    Edit
    Tu mets le même code dans chaque comboboxx_enter

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Coucou,

    Pourquoi passer par la collection controls ?

    Voilà ce que je ferais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim maboite as object
     
    Private Sub MonthView1_Click()
       maboite.enabled = true
       maboite = MonthView1.value
       MonthView1.Visible = False
    End Sub
     
    Private Sub ComboBox1_Enter()
      set maboite = Combobox1
      ComboBox1.enabled = false
      MonthView1.Visible = True
    End Sub
    EDIT : Et je ferais une procédure paramétrée ....(de sorte à n'utiliser qu'une ligne par Combo)... avec comme seul paramètre passé, le contrôle actif ...

  8. #8
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Euh...

    Locked = verrouillé
    et si verrouillé ===>> vérrouillé ===>> pas de modif possible

    C'est kif-kif ...

    Enabled n'empêche rien par code !!!

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Oui, ucfoutu, tu as raison, mais c'était l'idée. Maintenant, j'utiliserais plutôt Locked que Enable, sinon, en cas d'erreur, l'utilisateur ne pourra pas modifier. (pas testé mais ça me semble logique)
    Locked empêche les modifs manuelles (ne les empêche pas par macro) mais n'empêche pas l'accès.

    Citation Envoyé par ucfoutu Voir le message
    Euh...

    Locked = verrouillé
    et si verrouillé ===>> vérrouillé ===>> pas de modif possible

    C'est kif-kif ...

    Enabled n'empêche rien par code !!!
    Non ! C'est pas kif-kif ! Si ! Par macro tu peux modifier le contenu sans déverrouiller ! Testé ! et approuvé !

    EditEssaie de modifier le combo sans avoir placé Enabled à False ! Je viens de testé et j'ai pris une baffe ! (on est dans VBA, pas dans VB... pour autant que VB accepte les modifs par macro avec enabled = false

  10. #10
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Euh ...

    Mais c'est Kif-Kif !!!

    Essaye donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Command1_Click()
      Text1.Enabled = False
      Text1.Text = "et alors ?"
    End Sub
    Et l'utilisateur le "voit" immédiatement (grisé), quand Enabled = False !!!

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    ucfoutu, tu sais lire ?
    Je dis que Locked = True n'empêche ni l'accès ni les modifications d'un combobox par macro
    Enabled = false empêche l'accès.
    Donc, si l'utilisateur veut changer de date avec le calendar, avec Enabled =false, c'est foutu, uc !
    Avec Locked, ça marche !
    Un peu pénible le gars

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,

    en créant 2 combo + 1 calendar dans une userform et
    en activant un combo avant de clicker sur le calendrier

    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
     
    Option Explicit
    Dim activ_combo As ComboBox
     
    Private Sub Calendar1_Click()
    If activ_combo Is Nothing Then
    MsgBox "selectionner un combo"
    End If
    activ_combo.Value = Calendar1
    End Sub
     
    Private Sub ComboBox1_Enter()
    Set activ_combo = Me.ComboBox1
    End Sub
    Private Sub ComboBox2_Enter()
    Set activ_combo = Me.ComboBox2
    End Sub

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Allez, je ré-explique pour ucfoutu qu'a rien compris...
    Tu prends un gars (ce sera l'utilisateur lambda, n'importe lequel) Il sélectionne une date dans le calendar, le gars. Mais la souris a dérapé, bref, il a sélectionné une mauvaise date, le gars. S'il veut la changer avec le calendar, avec Enabled = false, il ne pourra pas, le gars. Et là, il est marron !
    Tandis qu'avec Locked, non seulement il pourra le changer une fois mais plusieurs s'il le désire !
    Si ce n'est toujours pas clair, tu n'as qu'à demander, je t'expliquerai

    Dailleurs, je vais arranger ton code pour que l'utilisateur ne puisse même pas saisir une date manuellement dans le combo
    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
    Dim MonCombo As Control
    Private Sub Calendar1_Click()
    MonCombo = Calendar1.Value
    Me.Calendar1.Visible = False
    End Sub
     
    Private Sub ComboBox1_Enter()
    Set MonCombo = ActiveControl
    Me.Calendar1.Visible = True
    Me.Repaint
    End Sub
     
    Private Sub UserForm_Initialize()
    Me.Calendar1.Visible = False
    ComboBox1.Locked = True
    ComboBox2.Locked = True
    ComboBox3.Locked = True
    '..... etc
    End Sub

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par patbou Voir le message
    bonjour,

    en créant 2 combo + 1 calendar dans une userform et
    en activant un combo avant de clicker sur le calendrier
    Je crois savoir que le calendrier est masqué tant qu'on ne se place pas dans un combobox, donc le message est inutile

  15. #15
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut
    salut à tous

    une petite erreur dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub MonthView1_Click() 'recopie la valeur du calendrier
    MADATE = MonthView1.Value
    Me.MonthView1.Visible = False
    End Sub
    à la ligne ,j'ai l'erreur "438 propriete ou methode non geree par cette objet"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MADATE = MonthView1.Value


    sinon les codes complets sont



    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     
    Dim MADATE As Control
     
     
     
    Private Sub ComboBox18_enter() 'on entre dans le comboboxdate de creation fiche
    Set MADATE = ActiveControl
    Me.MonthView1.Visible = True
    Me.Repaint
    End Sub
     
     
    Private Sub ComboBox25_enter() 'on entre dans le comboboxdate de amortissement fiche
    Set MADATE = ActiveControl
    Me.MonthView1.Visible = True
    Me.Repaint
    End Sub
     
     
     
    Private Sub MonthView1_Click() 'recopie la valeur du calendrier
    MADATE = MonthView1.Value
    Me.MonthView1.Visible = False
    End Sub
     
     
     
    Private Sub UserForm_initialize()
    Frame5.Visible = False
    'Frame1.Visible = False
    Frame4.Visible = False
    Frame2.Visible = False
    Frame6.Visible = False
     
    Me.MonthView1.Visible = False
    ComboBox18.Locked = True
    ComboBox25.Locked = True
    ComboBox2.Locked = True
     
    ......................

  16. #16
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'utilise le contrôle Calendar et ne connais pas Monthview, je n'ai donc pas la syntaxe
    A tout hasard, pour ajouter Calendar -> Click droit dans Boîte à Outils -> Valider la référence "Control Calendrier 10.0"
    Pour office 2003, ce contrôle se trouve dans C:\Program Files\Microsoft Office\Office 10\MScal.ocx
    Sinon, faudra attendre ucfutu qui semble avoir ça mais qui fait la sieste

  17. #17
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Coucou, Gaucho chapeauté,

    Ce n'est pas moi qui la fait, cette sieste.....

    Tiens : lis ceci :

    http://www.developpez.net/forums/sho...d.php?t=509182

    (2ème message) ...

    Pour le reste, j'ai déjà répondu : inutile de passer par la variable MADATE !

  18. #18
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Allez ! on répète donc (et en troquant enabled contre locked pour faire plaisir au cavalier...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim maboite as object
     
    Private Sub MonthView1_Click()
       maboite.Locked = False
       maboite = MonthView1.value
       MonthView1.Visible = False
    End Sub
     
    Private Sub ComboBox1_Enter()
      set maboite = Combobox1
      ComboBox1.Locked = True
      MonthView1.Visible = True
    End Sub
    Et on appelle l'attention sur mon édit :

    EDIT : Et je ferais une procédure paramétrée ....(de sorte à n'utiliser qu'une ligne par Combo)... avec comme seul paramètre passé, le contrôle actif ...
    C'est vraiment fastoche ...

  19. #19
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Sauf qu'avec Looked, tu n'as pas besoin de le re-looker
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub MonthView1_Click()
       'maboite.Locked = False 'pas utile avec looked   maboite = MonthView1.value
       MonthView1.Visible = False
    End Sub

  20. #20
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut
    salut les chefs
    on reste verrouiller sur la date du jour qql soit le choix fait dans "montview"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/11/2012, 10h42
  2. Réponses: 2
    Dernier message: 21/09/2009, 14h20
  3. [Dates] Enregistrer plusieurs dates
    Par bfabrice dans le forum Langage
    Réponses: 7
    Dernier message: 17/05/2006, 10h57
  4. Struts Validation avec plusieurs date pattern, HowTo ?
    Par didleur dans le forum Struts 1
    Réponses: 8
    Dernier message: 08/03/2006, 09h27
  5. selection de plusieurs dates avec un calandrier
    Par matdesign dans le forum Access
    Réponses: 5
    Dernier message: 01/10/2005, 08h21

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