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

VBA Access Discussion :

InputBox ou Formulaire ? [AC-2013]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 43
    Par défaut InputBox ou Formulaire ?
    Bonjour,
    Je pose une question peut-être un peu basique, mais je me remets au VBA après quelques années de pause…

    J’ai une procédure qui récolte quelques données auprès de l’utilisateur par l’affichage successif de 2 InputBox, les affecte ensuite à des variables, ouvre Excel et remplit 2 champs avec les valeurs des variables.

    Or, je dois désormais faire la même chose avec une dizaine de valeurs et il n’est donc pas question de faire ouvrir une dizaine de fois une InputBox.

    Je voudrais utiliser un formulaire libre avec des champs à la place du genre monChamp1, monChamp2, les affecter aux variables maVariable1, maVariable2, etc. (jusque-là c’est facile, je sais faire).
    J’ouvre mon formulaire par DoCmd.Open MonFormulaire et souhaite le fermer par clic sur un bouton.

    Comment je gère l’affectation des valeurs aux variables ? À l’intérieur de la procédure MonFormulaire_Clic() ou par la procédure déjà existante ? Et comment faire en sorte à ce que mes valeurs entrées par l’utilisateur dans le formulaire soient affectées aux variables qui sont ensuite nécessaires pour l’exécution du code qui ouvre Excel ?

    Merci pour votre aide (et l’indulgence),

    Stefan

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour,

    Avec une syntaxe qui a cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!LeFormulaireQuiContientLesDonnées!LeContrôleEnQuestion

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 43
    Par défaut
    Je me suis peut-être mal expliqué. Le formulaire fait office de boîte de dialogue. Il s'ouvre et l'utilisateur doit entrer les données ; puis, il clique sur OK et le formulaire se ferme en principe. Donc, les données ne sont plus accessibles à la procédure d'où est venu l'appel d'ouverture du formulaire.
    Mais c'est peut-être moi qui construis mal le truc au départ...

    Voilà à quoi ça ressemble au départ :

    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
     
    Sub maProcedure
    Dim maVariable1, maVariable2
     
    maVariable1 = InputBox("Entrez votre valeur") ' cette ligne et la suivante sont à remplacer
    maVariable2 = InputBox("Entrez votre valeur") ' par une boîte de dialogue
     
    ' Ouverture d'Excel
     
    ' Remplissage des cellules
        With maFeuille
            .Activate
            .Range("A1").Value = maVariable1
            .Range("A2").Value = maVariable2
        End With
    End Sub

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bien entendu, il faut exploiter les données du formulaire avant que celui-ci ne soit fermé !

    Ou alors, ce formulaire alimente une table qui, elle, sera exploitable après la fermeture du formulaire. Mais à quoi bon ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 43
    Par défaut Résolu
    Ok, j'ai compris.
    Je dois donc exécuter le code dans monFormulaire_Clic et non pas dans maProcedure.

    Merci beaucoup.

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

Discussions similaires

  1. [AC-2003] largeur inputbox dans formulaire
    Par usac49 dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/05/2010, 09h03
  2. Réponses: 3
    Dernier message: 12/05/2008, 09h10
  3. [VB6]Formulaire se comportant comme un popup (InputBox)
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 17/05/2006, 18h33
  4. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52
  5. [CR] Tranfert de formulaire a travers une page HTMl
    Par LIEU dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 12/09/2002, 08h37

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