Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Petite question sur des dates dans texbox

dubarre

XLDnaute Occasionnel
Bonjour à tous,

Je viens vers vous car j'ai petite question à vous poser dans l'exemple du classeur que je mets à disposition dans mon UserForm j'ai deux textbox.

La première reçoit une date avec le bon format cela fonctionne pas de souci pour exemple si vous mettez la date suivante dans la première textbox :03/05/2020 et dans la seconde vous rentrez la date suivante :01/06/2020

Dans la seconde la date s'efface avec la formule que j'ai mis dedans je voudrais savoir si il était possible que la formule se concentre aussi sur le jour et le mois en plus de l'année.

Car si je rentre plusieurs dates de la même année elle va s'effacer automatiquement hors j'ai besoin de pouvoir rentrer des dates supérieures au premier exemple comme on pourrait rentrer dans la seconde textbox la date suivante :04/05/2020 par contre là où il joue bien le rôle ces si on met une date inférieure exemple 02/05/2020 la elle ne doit pas s'afficher.

Pouvez-vous m'aider s'il vous plaît.

VB:
Option Explicit

Private Sub TextBox1_Change()

Dim valeur As Byte
TextBox1.MaxLength = 10 'nb caractères maxi autorisé dans le textbox
valeur = Len(TextBox1)
If valeur = 2 Or valeur = 5 Then
TextBox1 = TextBox1 & "/"
End If
Me.TextBox1.Value = UCase(Me.TextBox1.Value)

End Sub

Private Sub TextBox2_Change()

Dim valeur As Byte
TextBox2.MaxLength = 10 'nb caractères maxi autorisé dans le textbox
valeur = Len(TextBox2)
If valeur = 2 Or valeur = 5 Then
TextBox2 = TextBox2 & "/"
End If
Me.TextBox2.Value = UCase(Me.TextBox2.Value)

End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If Me.TextBox2.Value < Me.TextBox1.Value Or Me.TextBox2.Value = Me.TextBox1.Value Then
Me.TextBox2.Value = ""
End If

End Sub
 

Pièces jointes

  • Date_dans_textbox.xlsm
    20.3 KB · Affichages: 18

dubarre

XLDnaute Occasionnel
Bonjour

veuillez m'excuser si je me suis mal exprimé je pensais être explicite dans le message précédent pour faire simple dans textbox1 je rentre une date de la manière suivante le jour le mois et ensuite l'année exemple : 03/05/2020.

Dans la textbox2 je rentre un autre jour par contre le même mois et la même année exemple : 06/05/2020.

Avec le code VBA que j'ai mis il m'efface la date dans la textbox2 automatiquement alors que j'ai besoin de pouvoir rentrer cette date la.

Je ne sais pas comment expliquer autrement mais par contre si on a là date suivante exemple : 02/05/2020 dans la textbox2 alors la il doit l'effacer.
 

dysorthographie

XLDnaute Accro
le code que tu as implémenté fait explicitement ce à quoi il est destiné, il efface le textbox2 et c'est pas ce que tu veux j'ai bien compris!

à quoi devrait servir le code VBA vérifier qu'il s'agit bien d'une date vérifier la vitesse du vent!

que voulais tu faire avec ce code pas vider le textbox2 évidement!

tu n'arrête pas d'expliquer ce que tu ne voulais pas faire et tu ne dit rien de ce que tu veux faire!
 

dubarre

XLDnaute Occasionnel
Bonjour on m'a proposé une solution sur un autre forum que je voulais partager pour que vous puissiez comprendre par contre je ne comprends pas pourquoi ça fonctionne sur le UserForm2 mais pas sur le UserForm1 alors que ce sont deux choses identiques donc si vous pouvez m'aider à trouver la solution pourquoi ça fonctionne d'un côté et pas de l'autre en vous remerciant.
 

Pièces jointes

  • XLD_Dubarre_Gestion_des_Artistes_vBéta2aide.xlsm
    683.8 KB · Affichages: 5

patricktoulon

XLDnaute Barbatruc
bonjour dubarre
ne nous envois pas une usine a gaz qui déjà contient pas mal d'erreurs notamment pour le hooking
envoie nous un simple userform avec tes deux textboxs date et dis nous ce que tu veux faire avec intelligiblement sans parler vba
 

dubarre

XLDnaute Occasionnel
Bonjour,

Avec tout le respect que je dois au forum nous ne sommes pas tous professionnels dans le domaine nous essayons de réaliser des choses pour nous directement ou pour essayer d'aider des personnes à travailler plus facilement je comprends que pour certaines personnes une usine à gaz peut déranger mais pour essayer peut-être de nous aider au lieu de dire usine à gaz prenez mon classeur et montrez-moi comment vous le réaliseriez romes'est pas fait en un jour il est code VBA peut avoir plusieurs versions voilà ce que je veux dire avec tout le respect que je dois à toutes les personnes qui sont sur ce forum et je sais très bien que ce sont des bénévoles comme moi j'essaye aussi de répondre certaines fois à d'autres avec mes connaissance.

Je ne suis pas en colère je dis simplement ce que je pense en vous remerciant cordialement
 

patricktoulon

XLDnaute Barbatruc
bonjour dubarre
j'aimerais bien mais tu a 36 userforms du quel tu parles(tu n'a pas précise )
on te demande pas d’être expert mais un minimum de renseignements et ou régler le problème serait le bien venu surtout avec le nombre d'userform qu'il y a dans le fichier

une demande doit être claire et suffisamment renseignée sur les tenants et aboutissants
comprends bien que l'on est pas dans ta tète et on ne peut deviner tes intentions
et je dis ca moi aussi avec un calme olympien
 

dubarre

XLDnaute Occasionnel
Dans mon premier message je pensais que le plus clair dans le second aussi par contre il est vrai je n'ai pas précisé dans quelle fenêtre cela se passait dans le UserForm1 et le UserForm2 une personne m'a aidé sur un autre forum est je tenais simplement à le faire partager sur ce forum aussi car j'avais posé la question en même temps cela se passe au niveau des dates j'avais besoin de pouvoir dans les textbox mettre des dates et des jours proches et le code que j'avais mis au départ ne fonctionnai pas il bloquait par rapport à l'année donc on m'a proposé cette solution la si vous en avait une autre dans le codage plus courte ça peut me permettre de voir une autre façon de le réaliser en vous remerciant.
 

Pièces jointes

  • XLD_Dubarre_Gestion_des_Artistes_vBéta02092020.xlsm
    692 KB · Affichages: 5

patricktoulon

XLDnaute Barbatruc
re
bon quand je regarde les usf 1 et 2 tu a textbox 26,27,28,et 29
a la vue du code tu veux
que la date tapée dans le 26 ne soit pas égale ou supérieure au autres
la question aurait donc du etre
comment forcer la saisie de date dans un textbox inferieure aux autres
voila tu aurais dis ça tout le monde aurait compris

il te faut donc pinguer les textbox et récupérer la plus vieille
et l'ors de la saisie ou au change tester cette date avec celle que tu tape c'est tout

après il faut arrêter de picoler et je dis ça en toute gentillesse et mon humour(certes un peu piquant des fois)
je dis ça pourquoi?
et bien tu force le 26 a être inférieur au 27 et plus loin dans le code tu force le 27 dans le exit du 27 a inférieur au 26

je ne regarde pas pour le 28 et ou 29 je suppose que c'est pareil
je pense que même sans parler de vba ni d'expertise tu a un sérieux problème appréhension de ton environnement et la raison n'est pas ton niveau en vba mais bien un problème de logique

et cela ne peut se régler que dans ta tète
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
ca va être un truc fou a coder çà
on ne peut globaliser une macro étant donné que c'est l'inverse pour le précédent + autre condition sur le suivant sans parler du test vide a ajouter dans le if

events 26 =si 26>27 ou 26>28(pour l'usf2 ou 26>29) alors 26=""
events 27 =si 27 <26 ou 27>28 si 28 est plein ou 26 est plein alors 27=""
events 28= si 28<27 ou 28<26 alors 28=""
et pour l'usf2
events 29 =si 29<28 ou 29<27 ou 29<26 alors 29=""

tout ça parce que l'on peut tester les dates uniquement si elle sont complètement renseignées
le teste ne peut se faire que comme suit if cdate(xx/xx/xxxx)<cdate(xx/xx/xxxx)
bref tu es sur de vouloir y aller là tu te sens prêt ?
 

dubarre

XLDnaute Occasionnel
Bonjour,

À titre d'information entre ce qui a été réalisé sur le classeur et ce que vous proposez pour comprendre en quoi les deux codes VBA ont une différence est-ce que c'est simplement dans l'écriture ou cela va gagner du temps dans la réflexion du programme ?
 

patricktoulon

XLDnaute Barbatruc
bonjour dubarre
tu a 3 textbox dans l'un et 4 dans l'autre
26,27,28,29
1° ces textboxs doivent ils être remplis dans l'ordre?
si oui le code est simple
si non c'est plus compliqué
2° et a tu pensé au contrôle de la validité de la date tapée(dans ton code visiblement pas)
donc si tu teste une date non valide < ou > que... tu aura des erreurs
et il y a bien d'autres choses encore a surveiller

et pour info
if len=2 or len =5 then value=value &"/"
dans l’événement change c'est une énorme erreur
exemple :tu tape 03/09 ca t'ajoute le "/" donc 03/09/
et si tu veux revenir pour changer le mois
ben tu peux pas LOL
tu est obligé de sélectionner la totalité et supprimer pour corriger

pas si simple de transformer un textbox en datebox en plus toi tu a des conditions sur d'autres

tu en a une demo dans les ressource
cherche avec mon pseudo
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
602
Réponses
16
Affichages
837
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…