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

T

tonio59

Guest
Bonjour le forum,

Encore une fois, j'ai besoin de votre aide ! ! !
J'ai créer un userform pour saisir les achats et les ventes (gestion de swaps pour les financiers). Sur un useform, on doit saisir le montant de d'achat et la date (idem pour la vente).
J'ai créer des validations pour la date et les montants. ça marche ! ! ! ! ! Mais le problème est que ça marche plusieurs fois, en fait si j'ai eu 3 corrections à faire, l'userform va générer 3 écritures au lieu d'une, en fait il garde en mémoire les données.

Voila le code, si quelqu'un peut m'aider :

Code:
Private Sub OK_Click()
'
'Lancement de la création du swaps
'
Dim i As Double
Dim z As Boolean
Dim date_achat As Date
Dim date_vente As Date

Nouveau_swaps.Hide
'vérification date achat
If valid_date(jour_achat, mois_achat, annee_achat) = False Then
        MsgBox ('Votre date d'achat n'existe pas.')
        Nouveau_swaps.Show
End If
date_achat = DateSerial(annee_achat, mois_achat, jour_achat)
'vérification date vente
If valid_date(jour_vente, mois_vente, annee_vente) = False Then
        MsgBox ('Votre date de vente n'existe pas.')
        Nouveau_swaps.Show
End If
date_vente = DateSerial(annee_vente, mois_vente, jour_vente)

'vérification chronologie entre les 2 dates
If DateDiff('d', date_vente, date_achat) > 0 Then
        MsgBox ('Votre date de vente est inférieure à la date d'achat.')
        Nouveau_swaps.Show
End If
    
'vérification des devises
If Vente_devises - Achat_devises >= 0 Then
    MsgBox ('Votre vente est supérieure ou égale à votre achat.')
    Nouveau_swaps.Show
End If
    
i = nouveau_swap(Achat_devises, Vente_devises, date_achat, date_vente)

End Sub


Merci d'avance ! ! ! ! 🙂

A pluche
 
Bonjour Tonio


Nouveau_swaps.Show, tu relances a chaque correction ton userform et je présumes que tu valides de nouveau par OK ta modif.

tu écris une premiere fois ta modif et tu sors du premeir if donc 2 écritures.

ton problème vient de là.

ne peux-tu pas faire tes verifs au fur et à mesure de la saisie ?
 
Bonjour DG62,


En fait, j'ai continuer à faire des recherches sur internet et j'ai trouvé la solution. En effet, tu as bien identifier le problème. Pour le résoudre, il suffit de mettre un exit sub au lieu du nouveau_swap.show. Cela permet de laisser afficher l'userform, de pouvoir le modifier et de relancer le processus de validation.


Je te met le code si tu veux le voir :
Code:
Private Sub OK_Click()
'
'Lancement de la création du swaps
'
Dim i As Double
Dim z As Boolean
Dim date_achat As Date
Dim date_vente As Date


'vérification date achat
If valid_date(jour_achat, mois_achat, annee_achat) = False Then
    MsgBox ('Votre date d'achat n'existe pas.')
    Exit Sub
End If
date_achat = DateSerial(annee_achat, mois_achat, jour_achat)
'vérification date vente
If valid_date(jour_vente, mois_vente, annee_vente) = False Then
    MsgBox ('Votre date de vente n'existe pas.')
    Exit Sub
End If
date_vente = DateSerial(annee_vente, mois_vente, jour_vente)

'vérification chronologie entre les 2 dates
If DateDiff('d', date_vente, date_achat) > 0 Then
    MsgBox ('Votre date de vente est inférieure à la date d'achat.')
    Exit Sub
End If
    
'vérification des devises
If Vente_devises - Achat_devises >= 0 Then
    MsgBox ('Votre vente est supérieure ou égale à votre achat.')
    Exit Sub
End If

Nouveau_swaps.Hide

i = nouveau_swap(Achat_devises, Vente_devises, date_achat, date_vente)

End Sub


Merci de ta réponse,

A pluche
 
- 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

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
354
Réponses
15
Affichages
771
Réponses
2
Affichages
409
Réponses
9
Affichages
384
Réponses
5
Affichages
904
Retour