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

Macros et VBA Excel Discussion :

VBA - utiliser données de user form dans main [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Points : 9
    Points
    9
    Par défaut VBA - utiliser données de user form dans main
    Bonjour à tous,

    je suis en train de coder un programme qui calcule un tableau d'amortissement d'un emprunt. J'ai reussi à faire un code à partir d'une feuille excel en prenant les paramètres que je voulais dans les cellules.

    maintenant je voudrais améliorer ce programme dans une nouvelle version : je voudrais utiliser un userform pour demander à l'utilisateur d'entrer les paramètres de l'emprunt, et utiliser ces paramètres dans mon code pour les calculs.

    Mon problème est que je n'arrive pas à faire le lien entre mon userform et mon main. Je ne sais pas comment faire pour utiliser les parametres saisis !

    L'idéal pour moi serai de pouvoir partir du code de mon ancienne version, en faisant le moins de modifications possible, mais est-ce realisable? ou dois-je tout recommencer en fonction de mon userform?

    je vous transmet mes codes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    userform (parametres) : tres simple, pour commencer, je demande juste le montant à l'utilisateur 
     
    Public Sub Calculer_Click()
     Dim montant As Double
     
    montant = case_montant.Value
     
    End Sub

    puis dans mon main, je prends la valeur du montant du userform au lieu de le prendre dans une cellule excel (je mets juste le début, apres c'est inutilement compliqué )

    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
     
    Sub MAIN()
     
    Dim feuil As Variant
    Dim nomonglet As String
     
    For Each feuil In Worksheets
       If feuil.Name = "TEG" Then
        nomonglet = feuil.Name
     
     
    'parametres pour le userform
    Dim encours, montant As Double
     
    Dim encours as double
     
     
          'afficher mon userform
    parametres.Show
     
    'on prend la valeur du montant pour le code dans une nouvelle variable nommée encours
    encours = parametres.montant.Value
     
    'puis affichage de l'encours saisi dans une cellule excel
     
    Sheets(nomonglet).Cells(6, 4) = encours

    merci d'avance, ca me sauverait...

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 762
    Points : 28 621
    Points
    28 621
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour qu'une variable alimentée par une procédure soit reconnue dans une UserForm ou tout module autre que celui qui contient la procédure, tu dois rendre cette variable publique.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public encours as double, montant As Double
    Sub Main()
     ' code
    End sub
    Un peu de lecture sur le sujet, Utiliser les variables en VBA Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre actif Avatar de L'Albatros
    Homme Profil pro
    Chercheur en économie - statistique
    Inscrit en
    Avril 2012
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en économie - statistique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 150
    Points : 239
    Points
    239
    Par défaut
    Bonjour,

    je me permets de te refiler un bout de code pour exemple:

    à mettre dans ton UserForm:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
     
        valeur_saisie = UserForm1.TextBox1.Value
        MsgBox "La valeur saisie est:" & valeur_saisie
        Call Module1.test_operation
     
    End Sub
    à mettre dans le module 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Public valeur_saisie As Double
     
     
    Sub test_operation()
     
    MsgBox "La valeur saisie est: " & (valeur_saisie * 2)
     
    End Sub
    et voilà !
    Si j'ai pu vous aider, dites le avec 1 pouce

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Points : 9
    Points
    9
    Par défaut re : VBA - utiliser données de user form dans main
    merci beaucoup pour vos réponses si rapides !! j'y suis presque maintenant ! Je ne connaissait pas ces syntaxe ( call et public).

    le code compile mais avec la version de "L'Albatros", j'ai une message box qui s'affiche (comme prévu) mais la valeur saisie vaut 0, et cette messagebox s'affiche avant que j'ai pu saisir la valeur!
    en gros le userform ne s'affiche pas, je pense que c'est parce que je n'ai pas codé son apparition dans mon programme, mais la encore, je ne sais pas la syntaxe, et plus important encore, l'endroit ou je dois mettre l'instruction...

    Si vous pouviez m'aider sur ce point, apres promis j'arrete de vous embeter ( en fin je vais essayer ! )

    en tout cas merci c'est déjà super que j'ai un lien entre les 2 !

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    en fait j'ai trouvé comment faire ! je vous montre donc mon main final pour bien rentrer les parametres et afficher les messagebox :

    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
     
    Option Explicit
    Public montant As Double
     
    Private Sub workbook_open()
     
    'pour masquer la feuille excel tant que les parametres ne sont pas saisis
    ThisWorkbook.Application.Visible = False
     
    'afficher le userform
    parametres.Show
     
    End Sub
     
    'le userfom renvoie au MAIN
    Sub MAIN()
     
    MsgBox "La valeur saisie est: " & (montant * 2)
     
    End Sub
    Merci beaucoup en tout cas c'est grace à vous !

    ps : je me reserve donc une autre question technique à vous poser ^^ héhé

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

Discussions similaires

  1. VBA - utiliser données extraites de excel
    Par theeaggle dans le forum VBA Word
    Réponses: 0
    Dernier message: 17/02/2014, 18h49
  2. [2.x] Utiliser les données du user connecté dans un formulaire
    Par magicbisous-nours dans le forum Symfony
    Réponses: 8
    Dernier message: 16/07/2012, 14h41
  3. Inserer les valeurs d'une user form dans un tableau
    Par ludovicpierre dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/07/2010, 15h08
  4. appeler une user form dans le fichier Excel
    Par Djawida dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2009, 15h09
  5. Réponses: 17
    Dernier message: 26/06/2008, 16h17

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