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-E]Pb de communica° entre module/UserForm[débutant]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 50
    Points : 32
    Points
    32
    Par défaut [VBA-E]Pb de communica° entre module/UserForm[débutant]
    bonjour j'ai réalisé une macro qui fait appel à une UserForm GénéalogieChèvre (simple deux textBox et un bouton)
    Txtbox1 : N°Animal (enabled = true )
    Txtbox 2 : N°Mère mes variables dans la macro fonctionnent correcttement jusqu'au passage vers l'Userfom et là je ne comprends plus très bien?!

    module 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If réponse = vbYes Then
        fin = False
        GénéalogieChèvre.N°Animal.ControlSource = Worksheets _
                                                                 ("T_Chèvre2").Cells(a, 3).Value
        GénéalogieChèvre.Show
    End If
    UserForm
    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
    Private Sub Validation_Click()
    If Worksheets("T_Chèvre2").Cells(a, 3).Value = "" Then
        fin = True
    End If
    If N°Mère.Value = "" Then
        Worksheets("T_Chèvre2").Cells(j, 2).Value = "XXX" & k
        k = k + 1
    ElseIf Len(N°Mère.Value) <> 10 Then
        MsgBox ("erreur dans la saisie")
        N°Mère.Value = ""
    Else: Worksheets("T_Chèvre2").Cells(j, 2).Value = GénéalogieChèvre.N°Mère.Value
    End If
    j = j + 1
    a = a + 1
    GénéalogieChèvre.N°Animal.ControlSource = Worksheets _
                                                                ("T_Chèvre2").Cells(a, 2).Value
    GénéalogieChèvre.N°Mère.Value = ""
    End Sub
    a et j sont déclarer en général dans le module1 et fin et k dans les déclarations général de l'userform

    si quelqu'un peux essayer d'y jeter un oeil et de m'expliquer ce qui ne va pas ça m'enléverait une épine du pied

  2. #2
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2006
    Messages : 70
    Points : 71
    Points
    71
    Par défaut
    If N°Mère.Value = "" Then
    Worksheets("T_Chèvre2").Cells(j, 2).Value = "XXX" & k
    k = k + 1
    ElseIf Len(N°Mère.Value) <> 10 Then
    MsgBox ("erreur dans la saisie")
    N°Mère.Value = ""
    Else: Worksheets("T_Chèvre2").Cells(j, 2).Value = GénéalogieChèvre.N°Mère.Value
    End If

    essaye

    Worksheets("T_Chèvre2").Cells(j, 2).Value = "XXX" & str(k)

  3. #3
    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

    Pour accéder à tes variables globales du module, tu dois passer par le nom du module d'abord:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ' Affectation
    NomModule.VarGlobaleModule = NouvelleValeur
    ' Consultation
    VariableLocale = NomModule.VarGlobaleModule
    Tu nous dis si ça marche et / ou s'il reste des problèmes.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 50
    Points : 32
    Points
    32
    Par défaut
    Merci pour votre aide
    Il y a trois problèmes
    1°) la fin de mon module devait permettre d'initialiser la valeur de ma txtbox N°Animal mais quand je fais l'exécution quand ça arrive à GénéalogieChèvre.show le module s'arrète et bascule vers l'Userform

    2°) en suivant tes conseils j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
    a = Module1.a
    j = Module1.j
    GénéalogieChèvre.N°Animal.ControlSource = Worksheets("T_Chèvre2").Cells(a, 3).Value
    End Sub
    cela dit c'est peutêtre du à l'nechainement Généalogie.show dans mon module1 et Private Sub UserForm_Initialize()

    3°) comment on fait pour retourner après sur le module1 quand le dernier enregistrement est réaliser

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Points : 46
    Points
    46
    Par défaut
    Salut,

    3/ Pour retourner sur le module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ' Fermeture de la fenêtre modale
    Unload Userform
    Bonne journée.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 50
    Points : 32
    Points
    32
    Par défaut
    merci skual il me reste plus que deux problèmes à solutionner
    l'initialisation de mon ma UserForm

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 50
    Points : 32
    Points
    32
    Par défaut
    En profitant de ce qu'on m'a dit voilà ce que j'ai fait
    Sur mon module 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Load GénéalogieChèvre
        GénéalogieChèvre.Show
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub UserForm_Initialize()
    a=Module1.T_Chèvre2.a
    GénéalogieChèvre.N°Animal.ControlSource = Sheets("T_Chèvre2").Cells(a, 3).Value
    End Sub
     
    Puis le code cité plus haut
     
    ça marche pas il me signale une erreur de compilation pour a = Module1.T_Chèvre2.a (je m'y attendais mais je ne sais l'écrire)
     
    et quand je vire cette ligne et que je remplace a Par une valeur quelconque j'ai une erreur sur mon ControleSource

Discussions similaires

  1. problème bizarre entre module et feuille sous VBA
    Par benoist.cardinal dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/07/2008, 15h04
  2. [VBA-E] liens entre les userform et reduction des lignes de programme
    Par jamelie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/05/2006, 12h43
  3. [langage] Probleme passage de variables entre modules
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 13/08/2004, 12h25
  4. [Forms] : Gestion de Navigation entre module
    Par patmaba dans le forum Forms
    Réponses: 12
    Dernier message: 09/04/2004, 14h09
  5. [Designer] Problème de transfert de données entre modul
    Par BILLYPATOU dans le forum Designer
    Réponses: 11
    Dernier message: 09/03/2004, 18h15

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