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

IHM Discussion :

Comment remplir des valeurs dans un sous formulaire comme dans une zone de liste ?


Sujet :

IHM

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Comment remplir des valeurs dans un sous formulaire comme dans une zone de liste ?
    Bonjour,

    J'utilise en général la solution des zones de liste à l'intérieur de formulaires, ce qui me donne toute liberté de remplir mes zones de liste avec des valeurs calculées à loisir...

    Oui, mais voilà, lorsque je souhaite "formater" des données mélangées dans la liste (des textes qui cohabitent avec des chiffres), je galère un peu...et ce n'est guère élégant (voir parfois impossible).

    J'ai lu (et cela semble logique), que pour mieux maîtriser le format de chaque "champs" (et donc chaque colonne), j'aurais intérêt à utiliser un formulaire(en mode feuille de données) à la place de ma zone de liste...

    Ma question : comment procéder ? comment "remplir" mon formulaire avec mes données calculées ?...en VBA bien entendu...

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Tu génères ton sous-formulaire avec comme données source, la requête qui t'aurais servi pour ta zone de liste
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Hélas !!! la solution requête n'est pas envisageable...
    Bonjour,

    Bien sûr, si le traitement des données le permet, il est plus logique d'utiliser la solution que tu me proposes (ce que je fais habituellement !)...malheureusement, le traitement que j'applique à mes données est trop lourd pour être traité par une requête...et donc cette solution n'est pas envisageable...
    ...retour à mon problème...
    Merci quand même et bonne journée à toi...et n'hésites pas si tu as une autre solution !

    Patrick

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    bonjour,
    malheureusement, le traitement que j'applique à mes données est trop lourd pour être traité par une requête...et donc cette solution n'est pas envisageable...
    je ne comprend pas trop ton besoin, sachant, qu'à moins d'utiliser pour la propriété Origine source: "Liste de valeurs", pour alimenter le contenu, une zone de liste utilise aussi une requête.
    Peux-tu illustrer ton besoin (notamment le formatage des données mélangées) ceci pour nous aider à la comprendre ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    C'est bien évidemment avec la propriété "origine source" = Liste de valeurs que je remplie ma zone de liste...ce que je ne sais pas faire avec un formulaire.
    Je remplie ma zone de liste comme cela :
    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
    ' Pour les en-tête...
    MaListe.RowSource = " N°; Libellé du matériel immobilisé; Date achat ; Montant HT ; Durée amort. ; Amort. antérieur ; Amort. de l'exercice ; Total Amorti ; Valeur rest. amortir"
    'Pour les valeurs, je croise 2 valeurs de table, plus quelques calculs (prorata des achats en cours d'année pour chaque article,...et je les rentre comme suit :
    While rst.EOF = False
            MaListe.RowSource = MaListe.RowSource & rst("Num_Immo") & ";" & _
                                 rst("Intitulé") & " " & rst("Marque") & " " & rst("Désignation") & ";" & _
                                 rst("Date_Acquisition") & ";" & _
                                 rst("Montant_Achat_HT") & ";" & _
                                 rst("Duree_Amort") & " ans;" & _
                                 Amort_Ant & ";" & _
                                 Amort_Exo & ";" & _
                                 Tot_Amorti & ";" & _
                                 Val_Reste_Amort
           rst.MoveNext
    Wend
    Bien entendu, pour chaque ligne de ma liste (chaque matériel faisant partie de ma liste d'immo) les valeurs Amort_Ant, Amort_Exo, Tot_Amorti et Val_Reste_Amort sont des variables numériques calculées suivant une logique ne pouvant être intégrée à une requête...et je vous fais grâce de ces calculs dans ma boucle "While / Wend" d'exemple...mais ils sont bien présents dans mon programme !

    Alors tout fonctionne très bien, les valeurs sont correctes, mais j'ai des difficultés pour traiter chaque mise en forme pour chaque colonne. En effet, la colonne qui nomme le matériel immobilisé est aligné à gauche (c'est du texte), mais les valeurs numériques (de bons vieux euros) demandent à être alignées à droite, par exemple...

    Voilà...désolé pour la mauvaise mise en forme du texte "langage VBA"...pas très habitué à aller sur un forum

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    Alors tout fonctionne très bien, les valeurs sont correctes, mais j'ai des difficultés pour traiter chaque mise en forme pour chaque colonne.
    c'est le souci avec les zones de liste: comme toutes les colonnes sont de type Variant, une date, un montant ou un texte sont traités de la même façon rendant impossible la mise en forme (couleur, gras, souligné, encadré ...)
    pour chaque ligne de ma liste (chaque matériel faisant partie de ma liste d'immo) les valeurs Amort_Ant, Amort_Exo, Tot_Amorti et Val_Reste_Amort sont des variables numériques calculées suivatune logique ne pouvant ^petre intégrée à une requête...et je vous fais grâce de ces calculs dans ma boucle "While / Wend" d'exemple...mais ils sont bien présents dans mon programme !
    c'est pourtant bien ces calculs qui auraient été intéressant de montrer pour proposer une solution.
    Je suis persuadé que ce qui peut s'insérer dans une zone de liste peut forcément s'insérer dans un formulaire ou plusieurs formulaires (donc en tant que sous-formulaires), quitte à créer des fonctions pour les calculs complexes ...
    comment procéder ? comment "remplir" mon formulaire avec mes données calculées ?...en VBA bien entendu...
    il y a la possibilité de créer une table qui sera alimentée dans la boucle, pouvant ensuite être utilisée comme source d'un formulaire
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour le temps passé à me répondre...j'en conclue que la meilleure solution serait de créer une table comme source d'un formulaire ce que j'avais commencé à faire, mais cela me paraissait très inélégant...peut-être aller vers une table temporaire ???...mais j'ai du mal à me trouver des tutos sur le sujet...
    As-tu des pistes sur ce dernier sujet ?

    Encore Merci

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    j'ai du mal à admettre que tu trouves inélégant à utiliser une table pour présenter des données dans un formulaire alors que tu trouves normal de les présenter au travers d'une zone de liste
    Des outils existent autant les utiliser et rien de plus facile de créer une table: si la structure est toujours la même, tu peux la créer manuellement et la vider à chaque fois que tu en as besoin.

    Je ne connais pas les tutos existants mais si tu as besoin d'aide pour vider et remplir une table via VBA voici quelques mots-clés pour faire des recherches sur internet:
    vider une table en vba
    ajouter enregistrements avec Addnew
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/07/2010, 21h58
  2. COmment modifier des valeurs dans une requête?
    Par thibouille dans le forum Bases de données
    Réponses: 20
    Dernier message: 26/02/2008, 16h43
  3. Récup de valeurs dans une zone de liste
    Par Miss Ti dans le forum Access
    Réponses: 4
    Dernier message: 03/08/2006, 15h46
  4. Cacher des éléments dans une zone de liste
    Par toto10 dans le forum IHM
    Réponses: 11
    Dernier message: 19/07/2006, 15h03
  5. Réponses: 2
    Dernier message: 12/04/2006, 10h00

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