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

[résolu]Ou est l'erreur ?

  • Initiateur de la discussion Initiateur de la discussion anthonygg
  • 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 !

A

anthonygg

Guest
Bonjour,

J'ai une userform qui me sert de boite de saisie. Je dois choisir une date et faire un commentaire ensuite je valide et le logiciel me l'enregistre dans un tableau. Pour améliorer le confort j'incrémente la date de +1 à chaque saisie.

Problème : Si je saisie mes données à la suite, tout marche mais si je saute une date (par exemple du 16/01 au 18/01), mes données ne s'enregistre plus pour un jour, puis le jour d'après cela remarche ...

Comment faire pour que cela enregistre mes données à 100% ?
 

Pièces jointes

Dernière modification par un modérateur:
Re : [résolu]Ou est l'erreur ?

Re,

Maintenant si vous voulez modifier Saisie!A1 via l'USF il faut ajouter une macro :

Code:
Private Sub dateBox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Not IsDate(dateBox) Then Cancel = True: MsgBox "Date non valide !", 48: Exit Sub
    Sheets("Saisie").[A1] = CDate(dateBox)
    UserForm_Initialize 'pour copier le format
End Sub

Private Sub UserForm_Initialize()
    dateBox = Sheets("Saisie").Range("A1").Text
End Sub

Private Sub validerBouton_Click()
Dim lig5

'Recopie les données vers la BDD
    lig5 = Application.Match(Sheets("Saisie").[A1].Value2, Sheets("data").[A1:A367], 0)
    If IsError(lig5) Then MsgBox "date non trouvée": Exit Sub
    Sheets("data").Cells(lig5, 2) = commentairesBox
    
'Incrémente de 1 la date
    Sheets("Saisie").[A1] = Sheets("Saisie").[A1] + 1
    UserForm_Initialize
End Sub

A+
 
Re : [résolu]Ou est l'erreur ?

@job75 : La solution que tu suggères

Code:
Private Sub UserForm_Initialize()
    dateBox = Sheets("Saisie").Range("A1").Text
End Sub

fait exactement ce que fait la mienne :


Code:
dateBox.Value = CStr(madate)

Ces 2 solutions attribuent au TextBox une valeur de type String et l'inversion Jour/Mois n'a pas lieu.

Comme la propriété Value du TextBox est toujours de type String, le fait de lui attribuer une valeur de type String n'exige pas un appel à la fonction interne dans VBA de conversion d'un type à un autre (type Date vers type String dans le cas présent). Donc la date n'est pas interprétée, mais est acceptée telle quelle par le TextBox.

Pour observer l'inversion des dates dans un TextBox, j'ai effectué mes tests sur une version française de Excel 2007 qui doit être ouverte après que les paramètres régionaux et linguistiques dans le Panneau de configuration aient été changé pour Langue : Anglais (Etats-Unis)
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
Réponses
2
Affichages
4 K
L
B
Réponses
2
Affichages
2 K
B
J
Réponses
3
Affichages
2 K
julien 07
J
C
Réponses
6
Affichages
3 K
christophe697569
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…