IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Fonctions InputBox et MsgBox: problèmes


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut Fonctions InputBox et MsgBox: problèmes
    Bonjour tout le monde,

    Je vous présente le topo.
    Je dois créer un programme qui permet de calculer des dates de péremptions à 9, 12 et 18 mois de la date initiale (date saisie dans l'InputBox).
    Etant un novice en programmation (j'ai juste suivi quelques cours basiques de VB6), je n'arrive pas à trouver comment faire apparaître plusieurs champs de saisie dans une seule fenêtre (du style: un champ pour le jour, un pour le mois et un dernier pour l'année).
    La seule chose que j'ai réussi à faire pour saisir la date est comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    j = InputBox("Veuillez entrer le jour", "DLUO") 'jour
    m = InputBox("Veuillez entrer le mois", "DLUO") 'mois
    a = InputBox("Veuillez entrer l'année", "DLUO") 'année
    Mais une fenêtre par saisie n'est réellement pas pratique. C'est pour cela que je me tourne vers vous afin d'avoir quelques petits conseils.

    Une autre petite question concernant la MsgBox finale: comment aligne-t'on les phrases de réponse de sorte à avoir ce qui suit comme résultat:

    "Pour 9 mois: Best before end of: jj/mm/aaaa;
    Pour 12 mois: Best before end of: jj/mm/aaaa;
    Pour 18 mois: Best before end of: jj/mm/aaaa."

    Si quelqu'un pouvait m'aider dans cette tâche.

    Merci d'avance.

    Cordialement.

  2. #2
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    bonjour,
    il faut utiliser les feuilles (= forms) dans lequel tu place un controle de type textbox et un bouton (commandbutton).
    Mais surtout, vu le niveau trivial de ta question, il faut aller voir les tutoriels vb
    http://www.developpez.com/vbasic/tutoriel/sommaire.php
    bon apprentissage

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    ou comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Option Explicit
    Dim rep, NbrMois
    Dim Msg$
    Dim NouvDate As Date
    Private Sub Form_Load()
    InteroDate
    End Sub
    Public Sub InteroDate()
    rep = InputBox("Veuillez entrer la date" & vbCrLf & "jour,mois,année   Ex:01/12/2007", "DLUO")
    If rep = "" Then 'bouton annulé ou pas de reponse
     Exit Sub
    End If
    If IsDate(rep) Then
     'c'est bon
     InteroNbrMois
     If NbrMois = "" Then 'bouton annulé ou pas de reponse
      Exit Sub
     End If
     If IsNumeric(NbrMois) Then
      'DateAdd( IntervalType, Number, FirstDate)
      Msg$ = "Vous avez entrez cette date: " & Format(CDate(rep), "dddd dd mmm yyyy") & vbCrLf
      Msg$ = Msg$ & "vous avez demandé de rajouter " & CStr(NbrMois) & " mois" & vbCrLf
      NouvDate = DateAdd("m", NbrMois, CDate(rep))
      Msg$ = Msg$ & "La nouvelle date est donc " & CStr(NouvDate) & vbCrLf
      Msg$ = Msg$ & "ou" & vbCrLf
      Msg$ = Msg$ & Format(CDate(NouvDate), "dddd dd mmm yyyy")
      MsgBox Msg$
      Else
      InteroNbrMois 'pas bon redemande l'entrée de la date
     End If
    End If
    End Sub
    Public Sub InteroNbrMois()
    NbrMois = InputBox("Entrez le nombre de mois à ajouter (9,12 ou 18)")
    End Sub
    motif de l'edit, le commentaire
    InteroNbrMois 'pas bon redemande l'entrée de la date (faut)
    InteroNbrMois 'pas bon redemande l'entrée du nombre de mois a ajouter(juste)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut
    Merci pour vos réponses et conseils.

    En fait, c'est un peu plus compliqué que ça au niveau du calcul des dates de péremptions dû au fait que je m'appuie sur 2 logiciels de gestion de stocks et que un est à 365 jours l'année (normal) et l'autre est à 360 jours. Donc, si tu veux, j'ai un ratio à calculer (les 5 jours de différence entre les deux logiciels diviser par les 12 mois de l'année = un ratio d'environ 0.42 par mois) et à enlever à la date finale ce qui peut la faire basculer au mois précédent.

    Ex. si on prend le 01/11/2007 pour un calcul sur 9 mois.

    Logiquement, on devrait avoir le 01/08/2008. Mais avec cette différence de 5 jours par an, ca change pas mal la donne. En tenant compte du ratio, ça donne:

    0.42*8 = 3.36 jours à soustraire à la date du 01/08/2008 (le 8 du calcul étant le mois de cette même date). Ce qui nous fait basculer, au final, au mois de juillet, le 29/07/2008.

    De plus, aprés la saisie de la date, il faut que le résultat affiche les 3 différentes durées (9, 12 et 18 mois). Donc la sélection du nombre de mois à ajouter n'est pas utile dans ce cas de figure.

    En tout cas merci du temps que vous m'accordez.
    En espérant avoir été assez clair dans mes explications.

    Cordialement.

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut
    Ok, problème résolu au niveau de la présentation.
    Merci pour vos conseils.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction avec 3 paramètre > problème de compilation
    Par arnaudperfect dans le forum C
    Réponses: 2
    Dernier message: 04/01/2008, 15h49
  2. Réponses: 4
    Dernier message: 21/06/2007, 14h12
  3. Problème avec le bouton Annuler de la fonction Inputbox
    Par r0main2b dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/06/2007, 19h48
  4. [outil]Améliorer la fonction InputBox
    Par omen999 dans le forum VBScript
    Réponses: 1
    Dernier message: 03/01/2007, 15h09
  5. Réponses: 6
    Dernier message: 14/02/2006, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo