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 :

Appel des fonctions à partir d'un module


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 18
    Points
    18
    Par défaut [Abandonnage, Délestage tout]Appel des fonctions à partir d'un module
    Bonjour, voilà j'ai 4form (form1(Clt), 2(saisieCalcul), 3(Total), 4(Recap))

    Le Form1 s'ouvre, je rentre les coordonées du client (Nom, réf = txtbox et pièce = combo) pièce que je sélectionne à partir de données existantes.
    j'appuies sur OK (ouverture du 2)

    le form2 est ouvert avec le nom de la pièce (copie du combo1 ds txtbox), Je sélectionne le type de profil ainsi que son diametre qui s'affichera si le profil doit avoir un diam. Le bouton OK sert à la combobox "nb face" de générer un chiffre déterminé. Je sélectionne le traitement et la matière. Selon le profil, la textbox "hauteur" reste visible ou non. Je saisie dans les textbox des valeurs qui lorsque du click sur Resu s'additionera ou se multipliera selon le profil sélectionner ; pareil pour la longueur et le nombre de pièce(s) et pour le bouton Total. Ensuite lorsque je clique sur Valider, un MsgBox me demande si je souhaite ajouter un profil ("Oui" ou "Non")

    Si oui alors ajouter le profil ainsi que son Total dans les 2listbox du form3 et rester sur form2
    nom_p = comprofil
    tot = txt_tot
    Sinon si Non Alors ajouter le profil ainsi que son Total dans les 2listbox du form3 et ouvrir form3
    nom_p = comprofil
    tot = txt_tot

    Dans le form3, ça reprends tout ce qu'on a saisie ou sélectionné du form1 et form2 mais il me reste que les totaux à programmer (je vous rassure, c'est déjà coder)
    Explication du bouton Total Pièces = C'est le total de la listbox "tot", il suffit d'appuyer sur TotalPièces ensuite de rentrer une valeur dans le textbox Nb ensemble(s) et d'appuyer de nouveau mais cette fois-ci sur TotalGénéral.

    Mon problème se trouve sur le bouton "Ajout pièce(s)"
    C'est-à-dire que pour un client, il peut y avoir deux pièces voire 3 voire 4 bref autant de pièces qu'il nous ammène...En gros tant qu'on n'a pas appuyé sur Récapitulatif, ça m'ajoute les pièces en conservant bien le client, la référence, le type de pièce ainsi que nom_p, tot, le nombre d'ensemble et son TotalGénéral bref le form3.

    Et lorsque J'appuies sur Récapitulatif y'a toutes les pièces et totaux qui sont déjà en mémoire qui s'afficherai dans la textbox "trecap" pour y être sauvegarder en fichier texte sur mon pocket PC


    D'avance Merci de votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 18
    Points
    18
    Par défaut
    Et en faisant une boucle sur un bouton "Ajout profil" que je rajouterai sur le form3 mais est-il possible de garder en mémoire les différentes pièces précédemment traité

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    Bonjour
    Tout cela manque de clarté...
    Là, tu dois expliquer les choses plus concrétement (en bon français si possible et avec des images)
    ...sinon, personne ne pourra t'aider

    pour uploader ...passe par imageshaks; va voir sur mon site dans la partie "tutoriels"

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Si j'ai bien compris vous voulez procéder aux cycles de saisie form 1-2-3-4 puis recommencer 1-2-3-4, etc, et cumuler les totaux.
    Il faut définir une zone tampon ou vous stockerez vos calculs.
    Une solution est de créer un module de classe avec
    - une variable privée contenant le total
    - une propriété renvoyant ce total
    - une fonction totalise qui effectue la somme (fonction qui renvoie un N° d'erreur en cas de problème)

    Info : dans la form 3 : appel de la fonction totalise; dans la 4 utiliser la propriété pour visualiser le total.

    Si les classes vous semble trop compliquée utilisez un module.

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 18
    Points
    18
    Par défaut
    procéder aux cycles de saisie form 1-2-3-4 puis recommencer 1-2-3-4, etc, et cumuler les totaux.
    Oui C'est ça mais avec 1-2-3, tant que je mets un ajout de pièce OUI et pour l'arrêter je mets NON et ça me basculera sur 4 avec le récapitulatif de tout...

    Merci, je vais essayer mais bon je ne pense pas y arriver car moi le VB c'est pas trop mon truc...

    A force de déterminatination, on y arrive quand même...

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    ce n'est pas du vb, c'est le la logique.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Voici un squelette de classe (classNomClasseTotal.cls) (exemple schématique)
    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
    ' -- variables privées de la classe --
    Private mintTotal As Integer ' a adapter suivant vos besoin (long, ..)
    ' -- propriétées de la classe --
    '----------------------------------------------------------------
    ' donne le total
    Public Property Get Total() As Integer
      Total = mintTotal
    End Property
    ' -- méthodes de la classe (objet) --
    '----------------------------------------------------------------
    ' Objet:       cumule les sommes
    ' retours:     numéro d'erreur
    Public Function Totalise(Valeur as integer) As Integer
      On Error GoTo GereErreur  'gestion des erreurs de VB
      Totalise=0
      mintTotal=mintTotal + valeur
      Exit Function ' ok nous sortons
    GereErreur:
      Totalise=1
    End Function
    '----------------------------------------------------------------
    Private Sub Class_Initialize()
      mintTotal = 0
    End Sub
    Créer un type de cette classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Global ClassTotal  As classNomClasseTotal
    Pour utiliser déclarer une variable du type de classe et intitialiser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Set MaclasseTotal = New ClassTotal  ' création
    pour la détruire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set MaclasseTotal = Nothing
    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  8. #8
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut walf80

    Comme tu vois, j'arrive toujours avec le décallage horaire outre Atlantique.

    En passant, pour éviter que d'autres te le dise avec moins d'élégance, Essaie de mettre de la ponctuation et de formuler clairement. Car si c'était moi qui avais lu ton message en premier, je serais passé sans répondre... comme beaucoup d'autres d'ailleurs. Un p'tit effort et puis tout l'monde est content. Et puis, souvent, le simple fait de reformuler ce que l'on souhaite solutionner nous aide à trouver une solution.

    bon courage!

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 18
    Points
    18
    Par défaut
    Désolé zaza mais j'étais presser, je n'avais pas mangé ce matin...

  10. #10
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Si tu pouvais aussi mettre un titre en rapport avec le question après manger...

  11. #11
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Après l'explication sur la classe, voici un complément d'info.

    Vous pouvez dans la classe créer une variable tableau, qui vous permettra de stocker les sous totaux pour votre récapitulatif. (avec pour la visualisation, une autre fonction qui complétera votre contrôle (liste? (none)) dans le récapitulatif).

    J'ai séparé un peu les choses pour plus de clarté.

    Bon développement , Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 18
    Points
    18
    Par défaut
    Merci rv26t mais je ne crains ne pas y arriver, c'est trop compliqué pour moi...Le code VB ça va mais tous ce qui est classe et/ou modules je ne maîtrise pas beaucoup voir pô beaucoup...



    Si quelqu'un peut vraiment m'aider... il serai bien aimable. Mais j'oublie pas ceux qui m'ont aidé auparavant

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 18
    Points
    18
    Par défaut
    J'ai un module qui s'apelle "totaliz" dont le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Option Explicit
     
    Dim mintTotal As Integer
     
    Public Function Totalise(Valeur As Integer) As Integer
      On Error GoTo GereErreur  'gestion des erreurs de VB
      Totalise = 0
      mintTotal = mintTotal + Valeur
      Exit Function ' ok nous sortons
    GereErreur:
      Totalise = 1
    End Function
    Mais il faut que j'apelle mes fonctions mais comment ???

  14. #14
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Citation Envoyé par bidou
    Si tu pouvais aussi mettre un titre en rapport avec le question après manger...
    J'avais oublié de te le demander. Aussi je réitère l'invitation de bidou. Il te suffit d' ton premier message et de modifier le champ Intitulé.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 18
    Points
    18
    Par défaut
    Désolé pour le titre de la discussion

  16. #16
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Effectivement pour utiliser les classes il faut avoir une bonne pratique de VB, je suis désolé de vous avoir orienté dans ce sens.
    Dans ce cas il vaut mieux procéder de façon classique comme vous faites d'habitude.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 18
    Points
    18
    Par défaut
    Tu ne pouvais pas le savoir...

    Et je sais mêm pas appeler les fonctions...enfin bref les modules et classes je ne maîtrise pas donc si vous pouvez m'aider

  18. #18
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Pas de problèmes... (changement de titre), c'est le métier qui entre!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Et je sais mêm pas appeler les fonctions...
    C'est pas vraiment compliqué. d'ondinaire une fonction retourne une valeur d'un certain type. L'aide à la saisie de VB affiche une bulle avec une brève description des paramètres de la fonction, leur type et le type de donnée retounée. Il te suffit de déclarer une variable du type voulu et de lui assigner la valeur de retour de la fonction. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Function Addition(n1 As Integer, n2 As Integer) As Integer
        ' Cette fonction additionne deux entiers passés en paramètres
        ' et retourne le résultat. Une petite classique! ;)
        Addition = n1 + n2
    End Function
     
    Private Sub Command1_Click()
        ' à condition de mettre des nombres entiers dans les textBox...
        MsgBox Text1.Text & " + " & Text2.Text & " = " & Addition(Text1.Text, Text2.Text)
    End Sub

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 18
    Points
    18
    Par défaut
    Bonjour
    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
     
    Option Explicit
     
    Dim mintTotal As Integer
     
    Public Function Totalise(Valeur As Integer) As Integer
      On Error GoTo 0
      Totalise = 0
      mintTotal = mintTotal + Valeur
      Exit Function ' ok nous sortons
    GereErreur:
      Totalise = 1
    End Function
     
    'Call Correspondance(Montype, MonProfil)
    Comment on peux faire pour appeler mes private sub pour qu'elle se sauvegarde pour être traiter lors du refus d'ajout de pièces.

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 18
    Points
    18
    Par défaut Complément du #1
    Exemple pour 1client ayant 1profil à faire traiter :

    Le Client : "Popo"
    Sa référence "987"

    Pour un profil : "Bati"
    Tôle ==> 1.8
    Carrée ==> 2.12

    Toutes les pièces font : "3.92" m²
    Avec un Ensemble est de : "2"
    Le développé de toutes les pièces représente : "7.84" m²

    Pour ce même client : Un développé de "7.84" m²
    ____________________________________________________________

    Exemple pour 1client ayant 2profil à faire traiter :

    Le Client : "Popo"
    Sa référence "987"

    Pour un profil : "Bati"
    Tôle ==> 1.8
    Carrée ==> 2.12

    Toutes les pièces font : "3.92" m²
    Avec un Ensemble est de : "2"

    Le développé de toutes les pièces représente : "7.84" m²

    Pour un profil : "Caillebotis"
    Rond ==> 0.8
    HEA ==> 0.521

    Toutes les pièces font : "1.321" m²
    Avec un Ensemble est de : "2"
    Le développé de toutes les pièces représente : "2.642" m²


    Pour ce même client : Un développé de "10.482" m² (7.84 + 2.642)
    ____________________________________________________________

    Ceci seera dans le form4 en récapitulatif...

Discussions similaires

  1. appel des fonctions d'un driver dans un programme en c
    Par richie25 dans le forum Windows
    Réponses: 5
    Dernier message: 10/01/2006, 08h27
  2. Réponses: 6
    Dernier message: 30/09/2005, 00h53
  3. appel de fonction à partir d'une image activer/desactiver
    Par philippe123 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/08/2005, 16h26
  4. appeler plusieurs fonctions à partir d'une checkbox
    Par amelhog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/05/2005, 16h10
  5. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33

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