format date dans texbox1 dans USF

finpier34

XLDnaute Nouveau
Bonsoir a tous,
après de nombreuses heures j'aurai encore besoin de vos conseils si précieux.
je voudrai pouvoir, dans la USF, mettre un format de date dd/mm/yyyy dans la textbox1 et mettre un msgbox nous indiquant une erreur si le format n'est pas respecter.
merci d'avance pour vos réponses et de prendre un moment pour moi.
je vous joint le fichier pour avoir plus de détail.
 

Pièces jointes

  • essai formulaire.xlsm
    178.1 KB · Affichages: 38
  • essai formulaire.xlsm
    178.1 KB · Affichages: 41
  • essai formulaire.xlsm
    178.1 KB · Affichages: 43

Roland_M

XLDnaute Barbatruc
Re : format date dans texbox1 dans USF

bonsoir,

sinon ton classeur dans lequel j'ai incorporé mon calendrier autonome !
 

Pièces jointes

  • date-dans-texbox1-dans-usf-essai-formulaire.xlsm
    195.4 KB · Affichages: 32
  • date-dans-texbox1-dans-usf-essai-formulaire.xlsm
    195.4 KB · Affichages: 31
  • date-dans-texbox1-dans-usf-essai-formulaire.xlsm
    195.4 KB · Affichages: 38

Roland_M

XLDnaute Barbatruc
Re : format date dans texbox1 dans USF

re

j'ai oublié de te préciser que:
c'est la var CalendrierDateDebutSELECT ou le contenu de DTPDateDebut.Caption <ceci est un label
pour reprendre dans ton code la date saisie dans le label DTPDateDebut !
 

Pièces jointes

  • date-dans-texbox1-dans-usf-essai-formulaire.xlsm
    196.8 KB · Affichages: 30
  • date-dans-texbox1-dans-usf-essai-formulaire.xlsm
    196.8 KB · Affichages: 47
  • date-dans-texbox1-dans-usf-essai-formulaire.xlsm
    196.8 KB · Affichages: 30
Dernière édition:

finpier34

XLDnaute Nouveau
Re : format date dans texbox1 dans USF

merci a tous,
- Misange je prends avec plaisir la lecture c'est toujours très utile.
- staple1600 c'est encore un peu compliquer pour moi mais je ne désespère pas de comprendre au fur et a mesure de mes petit programmes.
et pour toi Roland_M c'est tout a fais ce que je souhaitai en mieux donc j'opte pour ta solution en sachant que je vais déchiffrer le code petit a petit.
juste une petite question pour finaliser ma textbox1, comment je peux mettre la date sélectionner dans la cellules correspondante.
merci a vous tous et bonne soirée.
 

Roland_M

XLDnaute Barbatruc
Re : format date dans texbox1 dans USF

re

c'est très simple, tu n'as pas à t'inquiéter du code tout est auto !
la seule chose que tu dois retenir c'est ceci:
d'abord il n'y a plus de textbox1 je l'ai remplacé par un label nommé DTPDateDebut
une fois ta date saisie dans ton code tu disposes de cette date avec la variable CalendrierDateDebutSELECT
ou dans le contenu du label avec DTPDateDebut.Caption

mais c'est plus simple de te servir de CalendrierDateDebutSELECT qui est déclarée As Date !
 

Roland_M

XLDnaute Barbatruc
Re : format date dans texbox1 dans USF

re

ici je pense comme ceci dans ta boucle car je suppose que c'est pour la coller en colonne A

Feuil1.Cells(derligne, 1) = CalendrierDateDebutSELECT
 

Pièces jointes

  • date-dans-texbox1-dans-usf-essai-formulaire.xlsm
    197.2 KB · Affichages: 29
  • date-dans-texbox1-dans-usf-essai-formulaire.xlsm
    197.2 KB · Affichages: 28
  • date-dans-texbox1-dans-usf-essai-formulaire.xlsm
    197.2 KB · Affichages: 27

Docmarti

XLDnaute Occasionnel
Re : format date dans texbox1 dans USF

Bonsoir finpier34; A tous

Voici une autre solution qui permet de vérifier la validité de la date et aussi celle de la valeur numérique dans le Total.

Code:
Private Sub CommandButton2_click()
 
Dim derligne As Integer

If MsgBox("étes vous sûr de vouloir valider?", vbYesNoCancel + vbExclamation, "demande de confirmation") = vbYes Then
With Worksheets("feuil1")
     derligne = .Range("A65536").End(xlUp).Row + 1
      
      'Verifier que la valeur entree est reconnue comme etant une date valide
      If IsDate(TextBox1.Value) Then
       'Ecrire une valeur de type DATE; c'est essentiel
          .Cells(derligne, 1) = CDate(TextBox1.Value)
       Else
         MsgBox TextBox1.Text & " n'est pas une date valide", , "Date : Entree non valide"
        End If
         
         'Verifier que la valeur entree est reconnue comme etant numerique
         If IsNumeric(Replace(TextBox5.Value, ".", Format(0, "."))) Then
          'Ecrire une valeur de type numerique
           .Cells(derligne, 6) = CDbl(Replace(TextBox5.Value, ".", Format(0, ".")))
          Else
           MsgBox TextBox5.Text & " n'est pas une valeur numerique", , "Total : Entree non valide"
         End If
         
                
         If TextBox2.Value > 0 Then .Cells(derligne, 2) = TextBox2.Value
         
         If ComboBox1.Value > 0 Then .Cells(derligne, 3) = ComboBox1.Value
 
         If OptionButton2.Value >= 0 Then .Cells(derligne, 4).Value = "P"
         
         If OptionButton1.Value >= 0 Then .Cells(derligne, 5).Value = "N/P"
         
 End With
 End If

Unload UserForm1
Load UserForm1
UserForm1.Show 0
End Sub

Cordialement

Docmarti
 

Docmarti

XLDnaute Occasionnel
Re : format date dans texbox1 dans USF

Bien d'accord avec toi que ton calendrier est la solution idéale car éliminant toute possibilité de générer une erreur causée par une date non valide. Et, ce qui ne gâte rien, ça fait beaucoup plus pro.
En présentant la solution avec IsDate et CDate, mon but est purement éducatif, visant à rappeler qu'une date en VBA doit être de type DATE (grâce à CDate ou grâce au calendrier) et non de type STRING si on veut obtenir une date valide et qu'on n'a pas la chance d'être Américain.


Cordialement

Docmarti
 

MJ13

XLDnaute Barbatruc
Re : format date dans texbox1 dans USF

Bonjour à tous

Normalement avec ce code, cela devrait le faire .

Code:
If TextBox1.Value > 0 Then Feuil1.Cells(derligne, 1) = CDate(TextBox1)

Cdate est le plus simple pour valider une date reconnu par Excel. L'intérêt est surtout que si on met 4/5 ou 5/4, il le reconnaîtra avec l'année en cours.
 

david84

XLDnaute Barbatruc
Re : format date dans texbox1 dans USF

Bonjour,
pas grand chose à voir avec le sujet initial mais
En présentant la solution avec IsDate et CDate, mon but est purement éducatif, visant à rappeler qu'une date en VBA doit être de type DATE (grâce à CDate ou grâce au calendrier) et non de type STRING si on veut obtenir une date valide et qu'on n'a pas la chance d'être Américain.
Si l'on n'a pas d'autre choix que de traiter une chaîne de caractère correspondant à une date saisie en texte ou avec des caractères numériques mais ne correspondant pas au format date (de type dd/mm/aaaa par exemple), la fonction (basée sur les expressions rationnelles) que j'avais faite il y a quelques temps peut dépanner.

Elle traite la chaîne de caractères et ramène une date dont l'année s'étend de l'an 1 à 9999 (si cette chaîne correspond à une date valide) au format dd/mm/aaaa (mais possibilité de choisir un autre format).

Le fichier se trouve ici (cf onglet test).
A+
 

Si...

XLDnaute Barbatruc
Re : format date dans texbox1 dans USF

salut
Bonjour à tous

Normalement avec ce code, cela devrait le faire .

Code:
If TextBox1.Value > 0 Then Feuil1.Cells(derligne, 1) = CDate(TextBox1)
Cdate est le plus simple pour valider une date reconnu par Excel...

à condition d'avoir une "date". Ce sont les différents contrôles de validité qui compliquent la programmation.
Un autre exemple en pièce jointe avec une date préformatée (../../....)
 

Pièces jointes

  • TextBox Format Date.xlsm
    167.2 KB · Affichages: 33

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87