• Initiateur de la discussion Initiateur de la discussion Byfranck
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Byfranck

XLDnaute Occasionnel
Bonjour à tous,

Je me suis une base de données clients grâce à votre aide en très grande partie, maintenant je calle sur certain point malgrès mes recherches dans le forum:
Dans ma base j'affiche dans un UserForm des TextBox qui reprennent des valeur de ma feuil1.
Entre autre j'ai besoin d'une date de relance jj/mm/aaaa.
L'affichage dans l'UserForm se fait correctement, mais dès que je veux changer la date celle-ci se trouve enregistrée au forme mm/jj/aaaa et donc à l'ouverture suivante de mon Userform jours et mois sont inversés.
Dans le Forum j'ai vu qu'il fallait placer un "CDATE" quelque part, mais je ne dis pas être doué car rien de ce que j'ai essayé ne fonctionne!😕

Un coup de main serait le bienvenue!


Voila en racourci ce que j'ai dans mon UserForm:


Option Explicit

Private Sub CommandButton2_Click()
Range("BM7").Select
Unload résultat
End Sub

Private Sub CommandButton6_Click()
If résultat.TextBox1.Value = "" Then
MsgBox " Le champ SOCIETE est obligatoire . "
Exit Sub
Else
'modification
Dim réponse
réponse = MsgBox(" Etes vous sur de vouloir modifier cette fiche ? ", vbYesNo + vbQuestion, "Validation")
If réponse = vbNo Then Exit Sub

ActiveCell.EntireRow.Select
ActiveCell.Value = résultat.TextBox1.Value
ActiveCell.Offset(0, 1).Value = résultat.TextBox1.Value
ActiveCell.Offset(0, 2).Value = résultat.TextBox8.Value

MsgBox " La fiche est modifiée . "
End If
End Sub

Private Sub Label1_Click()
End Sub

Private Sub TextBox1_Change()
End Sub

Private Sub TextBox8_Change()
End Sub

Private Sub UserForm_Activate()
ActiveCell.EntireRow.Select

résultat.TextBox1.Value = ActiveCell.Value
résultat.TextBox8.Value = ActiveCell.Offset(0, 2).Value
End Sub



Cordialement
 
Re : Problème de dates

Bonjour Franck

essaye peut être ainsi :

Code:
ActiveCell.Offset(0, 1).Value = CDate(r[COLOR="Red"][B]é[/B][/COLOR]sultat.TextBox1.Value)

par contre méfie toi de l'accentuation, dans le nom des objets, cela peut parfois poser des problèmes...

bonne fin d'après midi
@+
 
Re : Problème de dates

Merci c'est le bon endroit
... mais maintenant nouveau problème:
Si j'efface la date que j'ai mis pour tester .. ça plante:
Erreur 13
Incompatibilité de type.

Il y a une soluce pour que ça accepte les cases vides ou voir même avec du texte?

Merci d'avance
 
Re : Problème de dates

Re

un "else" alors...

Code:
Private Sub CommandButton1_Click()
If IsDate(résultat.TextBox1.Value) Then
    ActiveCell.Offset(0, 1).Value = CDate(résultat.TextBox1.Value)
Else
    ActiveCell.Offset(0, 1).Value = résultat.TextBox1.Value
End If
End Sub
 
Re : Problème de dates

Merci ça ve beaucoup mieux ...

Mais .. comme sur la valeur date je fait une opération (ajourd'hui - la date) si je met du texte ça bug..

Existe-t-il un moyen pour que lors de la saisie d'une date dans un textbox on puisse forcer l'utilisateur à saisir une valeur jj/mm/aaaa ou peut être l'empêcher de saisir du texte?
 
Re : Problème de dates

Re

regarde les codes ci dessous, si ils peuvent t'aider :

Code:
Private Sub TextBox1_Change()
If Len(TextBox1) = 2 Or Len(TextBox1) = 5 Then TextBox1 = TextBox1 & "/"
End Sub

Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("0123456789/", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(TextBox1.Value) Then MsgBox "Date erronée !!!": Cancel = True: Exit Sub
If CDate(TextBox1.Value) < #1/1/1950# Or CDate(TextBox1.Value) > #12/31/2050# Then _
    MsgBox "Date erronée !!!": Cancel = True
End Sub
A placer dans le module de l'usf concerné, nom du textbox à "adapter"...

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
203
Réponses
10
Affichages
292
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
179
Réponses
2
Affichages
169
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
514
Réponses
2
Affichages
160
Réponses
4
Affichages
231
Retour