Modifier une date dans un Userform

Résolu/Fermé
dudulleray - 15 oct. 2013 à 14:06
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 16 oct. 2013 à 16:42
Bonjour, a tous, forum


excel 2007 VBA

Pour modifier la date d'une expiration ( variable DateExpiration= `16/10/2013' ) se trouvant dans le Label 486 de l'UserForm

il me faut lancer mon programme et aller dans le code pour que je puisse mettre une nouvelle
date d'expiration dans la variable.

ce qui n'ai pas très pratique.

Alors comment faire pour changer la Date sans avoir à ouvrir le code pour effectuer la modification

Je reste ouvert à toutes propositions.

Cordialement Ray

lien pour voir photo

http://www.cjoint.com/?0Jpn5BT1tcK


Private Declare Function GetTickCount Lib "Kernel32" () As Long 'Pour la minuterie

''''''''''''''''''

'*** CODE POUR L'EXPIRATION "DATE" DE LA CARTE BLEUE
Dim Fin As Date: Dim DateExpiration

DateExpiration = "16/10/2013" 'Pour modifier la date d'expiration

Me.Label486.Caption = Application.Proper(Format(DateExpiration, "dd/mmm/yyyy"))

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

Do While Time < Fin
Label486.ForeColor = vbYellow
Label321.ForeColor = vbYellow

Minuterie 500 'Toutes les demi seconde
Label486.ForeColor = vbRed 'Rouge Date
Label321.ForeColor = vbRed 'Rouge Expiration
Minuterie 500

Loop
Label486.ForeColor = vbYellow 'Remets en Jaune la date après clignotement
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
A voir également:

5 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
15 oct. 2013 à 14:11
Bonjour,

Une suggestion :
Tu mets ta date d'expiration dans une cellule.
Par exemple, tu crées une feuille paramètre.
en A1 : date d'expiration
en A2 : la valeur de ta date d'expiration

et dans ton code, au lieu d'écrire :
DateExpiration = "16/10/2013"

tu écris
DateExpiration = sheets("Paramètre").cells(1,2)
1
Salut melanie1324

merci pour ta réponse et pour ta sggestion

j'aurai préferer intervenir directement pas l'intermédiaire de mon USF

j'avais penser à un Input Box ou un Textbox ou autre, bon, suis pas très sur d'avoir bon LOL

Cdlt Ray
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
Modifié par melanie1324 le 15/10/2013 à 14:42
Oui,

tu peux faire aussi comme ca :

tu rajoutes une zone dans ton formulaire en indiquant date d'expiration.
Ou alors, effectivement, tu écris une minimacro demandant une date d'expiration et ensuite, tu enchaînes sur le userform.

Pour la macro :

public date DateExpiration

sub dateexpiration

DateExpiration = inputbox("Merci d'indiquer une date d'expiration :")

call userform("Me")

end sub
0
Serai t'il possible d'utiliser directement le Label486 qui affiche la date d'expiration actuel comme sur la photo que j'ai mis ligne

Par Exemple: je clic dans le Label 486 et la date s'effacerai et je remplace par une autre, tout
simplement

car plus de place dans L'USF

Je t'avoue que je sais pas encore comment opérer , mais je cherche

Merci de t'interresser a mon sujet, c'est gentil

Ray
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
Modifié par melanie1324 le 15/10/2013 à 15:28
Coucou,

je ne vois pas la photo.
Tu peux aussi utiliser le label486. Mais je te conseille alors de remplacer ton label par une zone de texte.

A l'initialisation de ton userform : zone de texte = dateexpiration

Puis tu rajoutes : (attention, à chaque fois que tu cliqueras, la date s'effacera) :

sub zonedetexte_Click
zonedetexte.value = ""

end sub

Ou alors tu laisses le label et tu rajoutes un bouton à droite du label : changer la date d'expiration et tu fais alors apparaître une inpubox demandant la nouvelle date.
0
Lien pour la photo ci dessous

http://www.cjoint.com/?0Jpn5BT1tcK

SVP qu'appelle tu (Zone de texte) , remplacer ton label par une zone de texte.

ci dessous bonne idée c'est peut etre jouable, je devrai pouvoir arranger ca

Ou alors tu laisses le label et tu rajoutes un bouton à droite du label : changer la date d'expiration et tu fais alors apparaître une inpubox demandant la nouvelle date

tu veux bien svp me faire un model de code pour ton idée ci dessous, si tu a le temps bien sur merci bien

Plus le temps d'essayer, je reviens plus tard après RDV spécialiste

Merci beaucoup Mélanie
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 oct. 2013 à 11:17
Bon, je suis un peu perdue, alors on va tout reprendre.

Ce que tu trouvais bien :

Ou alors tu laisses le label et tu rajoutes un bouton à droite du label : changer la date d'expiration et tu fais alors apparaître une inpubox demandant la nouvelle date.

Si j'ai bien compris, ton label 486 n'est plus un label mais un bouton, OUI ou non?

Que veux-tu qu'il fasse ce bouton? Qu'il demande la date d'expiration et que le commandbutton contienne la nouvelle date d'expiration?

Si tel est le cas, voici le code associé au bouton :




sub commandbutton_click 'remplaces commandbutton1 par le nom de ton commandbutton

dateexpiration = ""
do while dateexpiration =""

dateexpiration = "Merci d'indiquer la date d'expiration souhaitée :")
if not isdate(dateexpiration) then
dateexpiration = ""
msgbox "La date que vous avez saisi n'est pas une date"
end if
loop

commandbutton1.caption = dateexpiration 'remplace commandbutton1 par le nom de ton bouton

end sub
0
Salut

Merci pour ta réponse

j'ai déplacer le Label486 provisoirement plus gènant pour l'instant

et mis et baptiser un commandbutton2 pour l'instant
et qui est dessiné a la place du Label486

j'ai mis un dim dateexpiration car j'avais ( une erreur variable non définie)

des que je clic dans le commandbutton2 pour mettre une date

le message "La date que vous avez saisi n'est pas une date" apparait

et impossible de sortir d'excel pas planté mais bloquer

obliger de faire CTRL ALT SUP pour en sortir

le code modifier ci dessous


Sub Commandbutton2_click()
Dim DateExpiration

DateExpiration = ""
Do While DateExpiration = ""

DateExpiration = "Merci d'indiquer la date d'expiration souhaitée :"
If Not IsDate(DateExpiration) Then
DateExpiration = ""
MsgBox "La date que vous avez saisi n'est pas une date"
End If
Loop

CommandButton2.Caption = DateExpiration
End Sub


PS: Près éventuellement a faire autrement

Vu l'heure un bon app et merci pour ton aide

Raymond
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 oct. 2013 à 13:10
Bonjour,

ca c'est à cause de la boucle :

Do While DateExpiration = ""DateExpiration = "Merci d'indiquer la date d'expiration souhaitée :" If Not IsDate(DateExpiration) Then DateExpiration = "" MsgBox "La date que vous avez saisi n'est pas une date" End IfLoop
Ca vérifie si c'es tune date, si tu veux enlever la vérification :

Sub Commandbutton2_click()
CommandButton2.Caption = "Merci d'indiquer la date d'expiration souhaitée :"

end sub
0
Re

suivi conseil et ca marche pas

Ca m'affiche dans le commandButton2 le texte "Merci d'indiquer la date d'expiration souhaitée :"

et je ne peux rien entrer ni chiffre ni lettre d'ailleurs rien LOL

si on essayai le Inputbox ou mettre un TextBox

quand pense tu
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 oct. 2013 à 13:39
pardon, une erreur de ma part, rééessaie les deux codes :



Sub Commandbutton2_click()
Dim DateExpiration
DateExpiration = ""
Do While DateExpiration = ""
DateExpiration = inputbox("Merci d'indiquer la date d'expiration souhaitée :")
If Not IsDate(DateExpiration) Then
DateExpiration = ""
MsgBox "La date que vous avez saisi n'est pas une date"
End If
Loop
CommandButton2.Caption = DateExpiration
End Sub

2°) ou

Sub Commandbutton2_click()
CommandButton2.Caption = inputbox("Merci d'indiquer la date d'expiration souhaitée :")
End Sub
0
Merci bien , OK ca marche avec les deux codes

mais ca mets l'inputbox au milieu de l'écran et de l'userform

Alors peut'on faire pareil mais avec un Textbox comme ca
on resterai dans le control Textbox

je vire le commandButton2 et je mets un Textbox comme ca reste propre

voila derniere idée

Merci Mélanie
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 oct. 2013 à 14:22
Oui tu peux mettre une textbox.

Il suffit juste de mettre à l'initialisaiton de l'userform
texbox = dateexpiration

si tu veux vérifier que la saisie est une date :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

if not isdate(textbox1.value) then
msgbox "Attention, la date saisie n'est pas correcte :"
end if

End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Re

J'ai mis un TextBox4 a la place du commandbutton2

j'ai mis le code

je clic dans le Textbox pour entrer une Date ok

je fait enter hé la message d'enfer

Excel a cessé de fonctionner etc etc
Fermer le programme

j'ai fait l'essai plusieurs fois idem

j'ai redemarrer j'ai mis en remarque le code du textbox et plus de plantage


Sinon je retiens l'idée du textbox j'en ai déja 3 dans mon USF et ca marche très bien

et en plus c'est propre a l'écran

Voila pour cet essai

Merci Ray
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 oct. 2013 à 15:56
donc tout est résolu?
0
Heu non pas du tout excel plante

tu a lu ma dernière réponse a ce propos de plantage avec la TextBox
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 oct. 2013 à 16:42
Coucou,

Je ne sais pas quel code tu as mis, mais ca ne devrait pas tourner en boucle.

Je te joins un fichier :

http://cjoint.com/confirm.php?cjoint=CJqqPm7T051

Clique sur le bouton. Change la date, clique sur la seconde textbox.
Mets une date valide et une date invalide.

Ensuite, regarde le code.

Si vraiment ca t'échappe, faudra que tu me donnes ton fichier.
0