Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Powerpoint > VBA PowerPoint
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/05/2011, 19h45   #1
Invité régulier
 
Inscription : septembre 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 12
Points : 5
Points : 5
Par défaut Saisie de date dans une zone de texte

Bonjour,

Tout d'abord, je vous prie de pardonner mon incompétence. J'ai bien essayer de chercher une solution, mais en vain

Mon problème :

J'essaye d'intégrer un petit calcul interactif dans une prez PPT, reprenant un calcul simple des frais de résiliation d'un abonnement de téléphone mobile tenant compte de la loi Chatel...bref

J'ai intégrer pour le moment 3 TextBox (Plif, Plaf, Pluf). Une pour la date de début d'engagement, une autre pour la date de fin et une troisième pour afficher le nombre de mois restant.

Voici le code que j'ai bricoler :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Plaf_Change()
    Call calculate
End Sub
 
Private Sub Plif_Change()
    Call calculate
End Sub
 
Sub calculate()
 
' Date1 => date de début
Dim dat1 As Date
'Date2 => date de fin
Dim dat2 As Date
Dim nbre_mois As Integer
 
dat1 = DateValue(Plif)
dat2 = DateValue(Plaf)
 
Pluf = DateDiff("m", dat1, dat2)
 
End Sub
Or ce code fonctionne, mais j'ai un message d'erreur VBA "Erreur 13 -> Incompatibilité de type" qui pointe sur dat1 = DateValue(Plif) à chaque caractère saisi dans mes TextBox...

Comment l'éviter ? Y a-t-il une manière d'intégrer des saisie de date plus facilement ? D'autant que je n'ai pas fini mon histoire car après le calcul du nombre de mois de complets, il faut que j'arrive à ressortir le nombre de jour pour le calcul du prorata sur le mois incomplet...

Merci de votre aide.
delorvallois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 20h05   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 968
Points : 30 968
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Lorsque tu utilises l'évènement Change, le code est interprété à chaque saisie, hors ta date ne sera valide qu'à la fin de la saisie complète.

Il faut donc réaliser un contrôle de la saisie de la sorte :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub calculate()
 
' Date1 => date de début
Dim dat1 As Date
'Date2 => date de fin
Dim dat2 As Date
Dim nbre_mois As Integer
 
    If IsDate(Me.Plif.Value) And IsDate(Me.Plaf.Value) Then
        dat1 = DateValue(Plif)
        dat2 = DateValue(Plaf)
 
        Pluf = DateDiff("m", dat1, dat2)
    Else
        Exit Sub
    End If
End Sub
Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 21h17   #3
Invité régulier
 
Inscription : septembre 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 12
Points : 5
Points : 5
Merci de cette réponse. J'ai pris bonnes notes des balises de code à insérer
delorvallois est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h45.


 
 
 
 
Partenaires

Hébergement Web