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 :

Textbox et dates [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 231
    Par défaut Textbox et dates
    Bonjour.

    Je suis en train de mettre en place un tableau de statistiques et je souhaiterais que les utilisateurs indiquent les dates de comparaisons depuis un userform contenant des textbox.

    L'userform :
    Nom : Capture.PNG
Affichages : 280
Taille : 7,0 Ko

    Le code :
    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
    Private Sub CommandButton2_Click()
    UserForm2.Hide
    End Sub
    Private Sub UserForm_Activate()
    TextBox1.Value = ActiveSheet.Range("Q2").Value
    TextBox2.Value = ActiveSheet.Range("R2").Value
    TextBox3.Value = ActiveSheet.Range("S2").Value
    TextBox4.Value = ActiveSheet.Range("T2").Value
    End Sub
    Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual
    ActiveSheet.Range("Q2").Value = TextBox1.Value
    ActiveSheet.Range("R2").Value = TextBox2.Value
    ActiveSheet.Range("S2").Value = TextBox3.Value
    ActiveSheet.Range("T2").Value = TextBox4.Value
    UserForm2.Hide
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    End Sub
    L'ensemble fonctionne bien, sauf que les dates copiées dans les cellules Q2, R2, S2 et T2 ne sont pas reconnues comme des dates malgré le format DATE des cellules en question.

    Comment faire pour que les dates, soient des dates ?

    Merci d'avance, excellente journée à vous !

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Une textbox est du texte (type string)
    A transformer en Date par CDate (à lire dans aide VBA)

    Tu devrais par ailleurs t'intéresser à ce qu'est la propriété ControlSource d'une Textbox et l'utiliser (au lieu de toutes ces lignes de code).

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 231
    Par défaut
    Merci Unparia, voici le code définitif qui résous mon problème :

    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
    Private Sub UserForm_Initialize()
    Me.StartUpPosition = 0
    Me.Left = Application.Left + (0.5 * Application.Width) - (0.5 * Me.Width)
    Me.Top = Application.Top + (0.5 * Application.Height) - (0.5 * Me.Height)
    End Sub
    Private Sub CommandButton2_Click()
    UserForm2.Hide
    End Sub
    Private Sub UserForm_Activate()
    TextBox1 = CDate(ActiveSheet.Range("Q2"))
    TextBox2 = CDate(ActiveSheet.Range("R2"))
    TextBox3 = CDate(ActiveSheet.Range("S2"))
    TextBox4 = CDate(ActiveSheet.Range("T2"))
    End Sub
    Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual
    ActiveSheet.Range("Q2") = CDate(TextBox1)
    ActiveSheet.Range("R2") = CDate(TextBox2)
    ActiveSheet.Range("S2") = CDate(TextBox3)
    ActiveSheet.Range("T2") = CDate(TextBox4)
    UserForm2.Hide
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    End Sub
    Je me renseigne concernant la propriété ControlSource.

    Merci !

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 231
    Par défaut
    En effet, c'est tellement plus simple ! ^^
    Donc finalement, plus de code du tout, et un userform sans bouton, quoi de mieux ?!

    Un grand merci unparia, excellente journée à toi !

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

Discussions similaires

  1. [XL-2010] userform / textbox avec date / faire une addition dans une autre textbox
    Par GADENSEB dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/04/2014, 17h21
  2. [XL-2010] Textbox avec date
    Par bboy-eazy dans le forum Excel
    Réponses: 2
    Dernier message: 09/12/2013, 07h38
  3. Textbox et date du jour
    Par phoenix345 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/03/2010, 16h13
  4. compareValidator avec textbox et date systeme
    Par tortuegenie dans le forum ASP.NET
    Réponses: 8
    Dernier message: 16/06/2008, 14h48
  5. vb.net textbox vérifier date
    Par Alex35 dans le forum VB.NET
    Réponses: 9
    Dernier message: 28/11/2007, 12h20

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