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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    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 averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    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 averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 13
    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
    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 averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    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 Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    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
    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
    Membre Expert
    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
    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
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par walf80
    Merci, je vais essayer mais bon je ne pense pas y arriver car moi le VB c'est pas trop mon truc...
    Alors là, lulux, tu fais fort!

    Que viens-tu faire ici si le VB c'est pas trop ton truc et que tu te lances dans un développement bien trop gros pour toi???

    Je me trompe, ou tu veux qu'on te fasse ton application par petits morceaux, en montrant à chaque fois ce qui t'a été donné dans les réponses précédentes?

    Il va falloir que tu choisisses.
    Soit tu t'y mets sérieusement et tu ne postes que si tu ne trouves pas après avoir étudié, cherché dans l'aide en ligne et sur ce forum, soit tu risques que toute question ayant sa réponse dans l'aide ou sur le forum soit supprimée sans autre avis.

    Et j'ajoute que, pour ce qui est de ton analyse, il faudra que tu la fasses seul.
    Ce n'est pas notre rôle.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Par défaut
    je maîtrise un peu le VB mais ce que je maitrise pas c'est les modules, c'est tout...Et pour ce qui est de mon application il me reste plus que ça à faire, c'est-à-dire de tout regrouper pour un client si il possède 2 ou 3 pièces...

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    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...

  12. #12
    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
    Par défaut
    Bonjour,
    Ou en est ta fonction ?

    Pour les modules zazaraignée t'a dit
    On place dans les modules le code qui servira pour toutes tes feuilles.
    donc rien de spécial, c'est du code vb. Il faut simplement déclarer les procédures et fonctions en public pour être visible partout dans ton projet.
    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.

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Par défaut
    Toujour au même point...
    C'est-à-dire que je n'arrive pas à démarrer, je cherche des exemple sur le Net et tout mais je vois pas comment démarrer ? En faite C une fois que je suis lanC c bn je marrete plus lol

  14. #14
    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
    Par défaut
    Montre le code de ta fonction.
    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.

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Par défaut
    Le module s'appelle Totaliz.abs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Dim minttotal As Double
     
    Public Function totG(Valeur As Double) As Integer
    On Error GoTo 0
    totG = 0
    minttotal = minttotal + Valeur
    Exit Function ' ok nous sortons de la fonction
    GereErreur:
    totG = 1 'une erreur on note
    End Function
    Pour l'instant j'ai ça...ça me cumule le totG de ma form3 dc ensuite pour appeler je met Je peux te passer mon code de la form3 ou les noms de mes txtbox et combobox, tu comprendra mieu, nan ?

  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
    Par défaut
    Il faut mettre On Error GoTo GereErreur (pas 0)

    L'appel de la fonction se fait par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (totG(10)<>0) then 'tu rajoutes 10 il faut remplacer le 10 par ta variable contenant le nombre à ajouter
      ' ici un message d'erreur pour l'utilisateur
    end if
    La fonction n'est pas une procédure, elle renvoie une valeur.
    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.

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