Insertion d'une date calendrier dans Textbox

Résolu
Bonjour a toutes et tous, Forum Bonjour

Excel 2007 - VBA Windows 7

Je souhaiterai rajouter un quatrième Textbox4 dans mon UserForm qui aurai pour office de récupérer la date calendrier Ex: Monthview ou DT Picker

Je vois ca comme ca.

(1) Je clic dans le Textbox4 qui fera apparaitre le calendrier
(2) Je clic sur une date du calendrier qui ira s'afficher dans le Textbox4
(3) Affichage de la date dans ce format 01/Oct/2013
(4) Petit test pour bien entrer une date au format souhaiter
(5) Attribuer la valeur Textbox4 dans une variable EX: UtileDate que j'utiliserai par la suite
(6) Puis disparation du calendrier

J'ai fait quelques essais avec des bouts de code trouver sur le net mais hélas je n'ai
pas réussi a faire ce que je souhaitai a part avoir planter mon excel LOL
Donc je repars a zéro en postant cette demande.

Si quelqu'un svp veux bien m'aider sur ce coup, alors merci beaucoup par avance

Merci pour votre aide et votre savoir partagé

Bonne journée a vous tous

Bien cordialement Ray

7 réponses

  1. Salut Zoul67

    juste pour te dire que j'avais réussi a faire ca que je voulais

    non sans mal mais maintenant ca fonctionne bien et pil poil comme je voulais

    bonne continuation a toi

    merci pour ton aide

    bonne soirée
    Cordialement Raymond
    1. Bonjour a tous ,bonjour Forum

      Salut Zoul67

      Tout d'abord merci beaucoup pour mon anniversaire, c'est gentil a toi.
      et merci également pour le fichier déprotéger ainsi que le bout de code.

      Bien j'ai créer un deuxième petit USF ou j'ai mis le "Monthview" calendrier


      '### Le code ci-dessous est dans l'USERFORM (1)

      '*** TextBox4 appel userform calendrier

      Private Sub TextBox4_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
      TextBox4 = "" 'On vide le TextBox4
      UserForm2.Show 'On charge l'USF calendrier(Monthview)
      End Sub


      ----------------------

      Bilan l'USF(Monthview) s'affiche bien et je peux cliquer sur une date qui va s'inscrire dans le TextBox4 et l'USF(Monthview) qui s'efface ensuite automatiquement

      Toujours ok jusque la, Mon premier soucis est le suivant:

      (1) je n'arrive pas a tester la date d'expiration a (J-1) qui devrait
      faire clignoter le Label321 "Expiration C-B" ainsi que la Date dans le TextBox4

      (2) Quand la date que j'ai choisi est inscrite dans le TextBox4
      si je quitte mon programme, je sauvegarde bien entendu MAIS

      quand j'ouvre le programme de nouveau, la date n'ai pas sauvegarder et le TextBox4 est vide bien sur.

      Sinon j'ai presque réussi avec les codes proposés, merci

      Le but étant, tu l'aura compris, c'est de faire clignoter le Label321 et le Texte du TextBox4 donc seulement la DATE

      A propos du code pour faire clignoter, ca, c'est bon ca marche.

      Bonne après midi avec tous mes remerciements

      Cordialement Ray

      -----------------
      Second code dans l'USERFORM (Monthview)


      Option Explicit

      '*** Pour la minuterie
      Private Declare Function GetTickCount Lib "Kernel32" () As Long
      Public DateExpiration
      Public Fin As Date

      Private Sub MonthView1_DateClick(ByVal DateClicked As Date)

      UserForm1.TextBox4.Value = Format(Me.MonthView1.Value, "dd/Mmm/yyyy")

      DateExpiration = UserForm1.TextBox4.Value

      MsgBox "01--" & DateExpiration

      Unload Me 'Quitte le calendrier
      End Sub

      ------------------

      '*** CODE POUR L'EXPIRATION "DATE" DE LA CARTE BLEUE
      Private Sub UserForm_Activate()

      MsgBox "02--" & DateExpiration

      'UserForm1.TextBox4.Value = Application.Proper(Format(DateExpiration, "dd/mmm/yyyy"))

      'If CDate(Me.TextBox4.Value) - Date <= 1 Then '(1) corresponds a alarme "1" jour avant la date d'expiration
      'Fin = Time + 0.208 / 3600 'Temps 5 secondes

      Do While Time < Fin
      UserForm1.TextBox4.ForeColor = vbYellow
      UserForm1.Label321.ForeColor = vbYellow
      Minuterie 500 'Toutes les demie secondes
      UserForm1.TextBox4.ForeColor = vbRed 'Rouge Date
      UserForm1.Label321.ForeColor = vbRed 'Rouge Expiration
      Minuterie 500
      Loop
      UserForm1.TextBox4.ForeColor = vbYellow 'Remets en Jaune la date après clignotement
      UserForm1.Label321.ForeColor = vbWhite 'Remets en Blanc la date après clignotement
      ' End If
      End Sub

      '*** MACRO MINUTERIE POUR DATE D'EXPIRATION
      Sub Minuterie(Milliseconde As Long)
      Dim Arret As Long
      Arret = GetTickCount() + Milliseconde

      Do While GetTickCount() < Arret
      DoEvents
      Loop
      End Sub
      1. Re,

        Pour 1), je ne sais pas trop et je n'ai pas trop de temps.
        Pour 2), il faut que tu sauvegardes l'info dans un onglet (je ne vois pas d'autre moyen).

        A+
      2. Salut Zoul67

        Merci pour la réponse

        je vais essayer d'écrire la date dans une cellule de la feuil(Compte)
        je ne sais pas comment je vais faire
        puis récuperer l'info Date de la cellule a l'ouverture de mon fichier

        je regarde sur le net si je trouve quelque chose a ce sujet

        Si tu n'a plus le temps c'est pas grave, on laisse tomber t'inquiéte pas
        vais bien arriver a me débrouiller

        Alors je te souhaite la bonne soirée et merci pour ton aide

        Bien cordialement Raymond
    2. Bonjour Zoul67, salut Forum

      Merci pour ton aide et les recherches que tu fait

      Si tu t'intéresses à MonthView, je t'en fournis un exemple d'utilisation : http://cjoint.com/?CJskZgvNOGA

      (1) Pour le fichier je l'ai bien, mais je n'ai pas accès aux codes, je pense que c'est protèger ?????

      sinon effectivement (MonthView) m'interesse, je cherche pour l'instant a l'ouvrir
      sur un clic du Texbox4

      pour le refermer je ne sais pas encore, a suivre

      -------------------------------

      (2) j'ai excel 2007 et que veut dire par l'activer, normalement dans excel 2007
      ce n'ai pas utile ????

      Ici, comment l'activer dans Office 2010 : http://www.fontstuff.com/vba/vbatut07.htm

      (3) Si j'arrive a controler l'ouverture et le fermeture du (MonthView)
      il ne restera plus qu'a cliquer sur une date de mon choix et mettre cette date dans le textbox4

      Pas trop sur d'avoir raison, j'essai de voir comme ca

      61 printemps aujourd'hui alors j'y crois

      Bien des mercis a toi, un bon W-end

      Bien cordialement Raymond
      1. Bonjour Raymond et bon anniversaire avec un peu de retard,

        Ci-après le lien avec la protection ôtée sur le code VBA : https://www.cjoint.com/c/CJvkCpMmhPV
        J'aurais plutôt utilisé deux Combobox comme ce qu'on trouve sur Internet (car le jour ne figure pas).

        A+
    3. Re

      J'avais fait une petite compta juste sur une feuille excel, puis commencant a me débrouillez en VBA, j'ai améliorer la compta.

      puis j'ai vu lors de recherche sur le net un modèle fait avec un UserForm c'était bien sympa, alors je me suis lancer dans la création de l'USF et voila

      pensant controler ou piloter la compta a partir uniquement de l'USF, c'était mon idée première et c'est plus joli que la feuil d'excel.

      pour coder tout ca, j'ai demander de l'aide dans divers forum, alors avec des avis très divers

      Maintenant je me débrouille pas trop mal, du moins j'essai car j'aime bien programmer

      Pour faire l'USF m'a pris une bonne après midi mais j'avais dessiner la présentation

      le but du fichier est ma compta perso simple, gérer CB chéque retrait et les dépenses du mois, rien de complexe

      pourquoi si compliquer, c'est parce que j'aime bien apporter pleins de petits plus gadjets qui embellise la présentation, l'automatisme des quelques calculs etc etc

      dont pleins que je pourrai me passer, avant c'était la cahier gomme crayon, temps pour les comptes 5 minutes maxi

      mais tripoter l'ordi le programme modifier la programmation ca me plait

      mais suis bien conscient aussi qu'il ne faut pas que ca rame non plus.

      pour la présentation j'ai la patience t'inquiéte pas

      voila si tu veux savoir autre chose demande

      dispo jusqu'a 20h tous les jours après j'arrete déja beaucoup de micro tous les jours

      merci pour tes infos je vais regarder ca pour en savoir davantage

      PS facher avec l'anglais mais avec les traducteurs je m'en sors quand mème

      a plus tard

      Raymond
      1. Bonjour Raymond,

        Je me suis mal exprimé... Ton fichier te sert-il à constater (comme un extrait de compte avant l'heure) ou à te projeter ?
        Sur la pratique de la compta personnelle, il y a autant d'avis que de personnes. Pour ma part, je ne vérifiais que mes extraits de compte. Depuis que j'ai accès à mon compte sur internet et que j'ai plus de mouvements, je regarde sur mon smartphone (dernière découverte : pourquoi dois-je payer autant de frais pour mon service CB ?) mais rien sur papier ou dans un fichier.

        Comme tu comptes mettre un lien vers le site de ta banque, tu as sans doute accès à ton compte en ligne et peux sûrement télécharger les opérations. Si j'avais une chose à faire, ce serait le traitement des fichiers téléchargeables.

        A+
      2. Bonjour Zoul67

        D'abord c'est d'avoir un but de programmation et l'autre consulter mes comptes tout simplement

        le reste se fait sur le site de la banque

        pas besoin de traitements
        juste un petit fichier de compta, vu que je n'ai pas un salaier de ministre les comptes sont vite faits
        ni de patrimoine a gérer

        juste essayer de faire comme souhaiter si possible TextBox4 ou autre a déterminer

        voila merci a toi et une bonne journée

        Cordialement Raymond
      3. Re,

        J'ai cherché un peu pourquoi le TextBox4 ne fonctionnait pas tel quel mais sans succès.
        Pour ta soif de découverte en programmation, tu peux essayer sur un classeur vierge.

        Pour les expirations de carte bleue, en ligne, on peut sélectionner dans deux listes déroulantes (mois+année ; Combobox). C'est ce que je ferais.

        Si tu t'intéresses à MonthView, je t'en fournis un exemple d'utilisation : https://www.cjoint.com/c/CJskZgvNOGA
        Ici, comment l'activer dans Office 2010 : http://www.fontstuff.com

        Encore un truc pour assouvir ta curiosité : mdf_xlCalendar pour la saisie assistée de dates dans un onglet Excel.

        Bon week-end !
    4. Re Salut Zoul67

      voici le lien du fichier
      http://www.cjoint.com/?3JrpLWfDJ09

      Le Textbox4 se trouve dans l'userform / Frame10 a coté du label bleu ecrit (Expiration C-B) en bas a gauche en Gris.

      Dans l'UserForm, des codes en courts d'essai sont mis en remarque SAUF le code du TexTbox4 celui du lien que tu m'a proposer tout a l'heure.

      Merci a toi bon courage, je suis a ta dispo.

      je suis ca de près

      Bien cdlt Ray
      1. Toutes ces couleurs dans ton UserForm et dans la feuille Excel m'ont donné mal au crâne...
        Je n'avais jamais vu un UserForm avec autant de contrôles. Est-ce vraiment exploitable ?

        En supprimant quelques objets, ça ne plante plus. Il semblerait qu'il y ait une limite au nombre d'objets dans un UserForm ( https://www.excel-downloads.com/threads/listview-userform-memoire-insuffisante.172354/ ) mais ça n'explique pas pourquoi il se charge et qu'il plante seulement après.
        Les Frames sont à manier avec précaution : TextBox4_Exit ne s'active pas car - je pense - un contrôle peut être actif dans chaque Frame.
        Toutes les cellules dans le UserForm ne sont-elles pas une recopie de la feuille Excel ? Ce serait gérable en tant qu'objet et allégerait le code...
      2. Re

        Tout d'abord merci d'avoir pris le temps de regarder mon programme

        Désolé pour les couleurs, j'ai un écran 22" et ca passe bien, aussi une question d'habitude
        j'ai vu plusieurs UserForms (8) avec encore plus de controls que moi et ca marchait très bien
        et des codes a tapisser la salle a manger LOL

        d'ailleurs pour mon cas, un gars m'a confirmé que c'était parfaitement gérable grace notamment avec des modules de classe

        chez moi il fonctionne très bien, très rapide aussi, bon j'ai un bon PC aussi ca compense surement

        Toutes les cellules dans le UserForm ne sont-elles pas une recopie de la feuille Excel
        OUI effectivement c'est excatement ca ET je ne gère pratiquement rien a partir de l'UserForm
        ce n'était pourtant pas ce que je voulais faire mais par contre je voulais tout gérer avec l'userform

        On m'a mal aiguiller quand j'ai commencer ce programme.

        n'étant pas plus férer que ca en VBA je me vois très mal de refaire seul le programme et je ne pense pas trouver quelqu'un qui aurai le courage de reprendre tout le code, un magicien peut etre LOL

        moi je peux en tant que retraité j'ai beaucoup de temps de libre mais tout seul il va me falloir une deuxième vie.

        Alors bilan que fait 'on

        une autre possibilité est'elle envisageable ???

        A plus tard au plaisir de te relire et merci

        Raymond
      3. Pour la TextBox, à part tenter de la remplacer par 3 Listbox (jour, mois, année), je ne vois pas.

        Par rapport à la recopie des données dans chaque label (la mise à jour se fait rapidement à l'ouverture du UserForm, c'est vrai, mais pour placer tous les labels à la main, les renommer... pfioulala), j'aurais penché pour une solution de ce genre : https://stackoverflow.com/questions/13527540/how-to-display-part-of-excel-on-vba-form (recopie dans un UserForm d'un morceau de tableau)

        Pour re-conceptualiser le tout, il y a peut-être moyen de s'arranger... Sans vouloir faire d'ingérence dans ta comptabilité, quel est le but du fichier (et pourquoi me semble-t-il si compliqué :-) )?
    5. Salut Zoul67

      Merci pour ta réponse, j'ai essayer le code que tu me propose mais
      ca marche pas

      dès que je clic dans la textbox4 Excel redemarre comprends pas pourquoi

      puisque j'ai déja 3 autres textboxs et ca fonctionne tres bien.

      Merci a toi

      bonne après midi

      Cdlt Ray
      1. Merci a toi
        je vais voir pour te faire une version de mon fichier sans infos de compta perso.
        te fait ca dans l'après midi entre deux chantiers LOL
        toutefois dans initialize userform je n'ai rien de déclarer et le textbox4 est dans l'Userform/Frame10

        Cdlt
        Ray