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 :

Sub événementielle tourne en rond [XL-2000]


Sujet :

Macros et VBA Excel

  1. #21
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par pierruel Voir le message
    En conséquence j'ai fait 3 copies de mon classeur d'origine et, en reprenant le nom et le nombre de mes variables, j'ai récrit le code de ma USF avec une variante Marcel, une variante pijaku et une variante corse.
    Veux tu bien, s'il te plait, faire rigoureusement ce que je te dis dans mon message d'Aujourd'hui, 10h56?
    Tu te mélanges, je crois, dans les modules de feuille, d'userform, standard, etc...
    Cordialement,
    Franck

  2. #22
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Re ...
    Venons à des choses claires.
    Ce ne sauraient être les instructions que l'on voit dans le seul code montré qui tournent en boucle infinie.
    Si donc on entre dans une boucle infinie, la cause est à chercher ailleurs que dans ce code en soi : cette cause est très probablement des évènements (procédures évènementielles) qui s'appellent sans cesse entre eux-mêmes, en une espèce de va-et-vient perpétuel.
    Cette boucle infinie d'évènements peut soit concerner des évènements au sein-même de l'userform, soit concerner des évènements E du classeur (d'une ou plusieurs de ses feuilles) déclenchant des évènements du userform qui déclenchent à leur tour des évènements E (etc ... etc ...)
    Et ce n'est pas le bout de code montré qui peut à lui seul permettre de déceler la totalité du mécanisme responsable.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #23
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 486
    Points : 46
    Points
    46
    Par défaut Sub événementielle tourne en rond
    A tes ordres, pijaku ! ;-)
    J'ai exécuté ton plan selon les 2 approches dans 2 classeurs distincts, radical.xls et radical2.xls et toutes les deux fonctionnent à merveille, sauf que le "exécution en cours" est de nouveau là. Il faut croire que c'est normal jusqu'à ce que je ferme la USF.
    Maintenant, il faudrait que j'obtienne le même résultat avec
    - douze feuilles au lieu de 3 (ça, ça semble facile)
    - un module standard envoyant des e mails automatiquement (seul, il fonctionne)
    - une piste, un conseil concernant la manière dont le choix obtenu par le module de l'USF est repris dans le module standard. (Est-ce que le passage de paramètres dans la parenthèse de la sub fonctionne entre 2 modules différents ?)

    Merci d'avance
    Bonne soirée
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  4. #24
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 486
    Points : 46
    Points
    46
    Par défaut Sub événementielle tourne en rond
    Bonjour pijaku,
    Donc le modèle "radical" que tu m'as fourni tourne très bien.
    Mais il y a quelque chose que je ne comprends pas. J'ai remplacé tes noms de variables par les miens et d'abord ça a marché (le msgbox indiquait correctement quel bouton avait été cliqué) mais ensuite j'ai systématiquement l'erreur "Incompatibilité de type" dans cette ligne:
    Determine_la_Feuille Me.Option_Groupe (qui remplace Me.OptionbuttonN).
    Pourtant je n'ai rien changé d'autre.
    Peux-tu, quelqu'un peut-il éclairer ma lanterne ?
    Merci d'avance
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  5. #25
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Option_Groupe c'est quoi?
    Au choix :
    1. Un OptionButton nommé Option_Groupe,
    2. Une variable, ==> qui représente quoi dans ce cas?
    3. Un Frame regroupant tes OptionButton?
    4. Autre chose?
    Cordialement,
    Franck

  6. #26
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 486
    Points : 46
    Points
    46
    Par défaut Sub événementielle tourne en rond
    Bonjour,
    C'est le 1 qui est juste: Option_Groupe remplace OptionButton1 en tant que nom d'un bouton d'option.
    A ta disposition s'il y a d'autres obscurités.
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  7. #27
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Envoie nous donc tout le code de ton Module d'UserForm, stp.
    Cordialement,
    Franck

  8. #28
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 486
    Points : 46
    Points
    46
    Par défaut Sub événementielle tourne en rond
    Bonsoir Frank P.
    Voici le code de ma USF:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    Option Explicit
    Private Sub Textbox1_Click() 'ligne de début
    Dim Debut As Integer
    Debut = TextBox1.Value
    End Sub
    Private Sub Textbox2_Click() 'ligne de fin
    Dim fin As Integer
    fin = TextBox2.Value
    End Sub
     
    Private Sub Comm_annuler_Click()   'ferme la USF
    Unload Lanceur_de_mailing
    End Sub
     
     
    Private Option_Groupe As MSForms.OptionButton 'cette ligne pour voir si déclarer 
                                              ' "Option_Groupe" change quelque 
                                              ' chose. Réponse: non.
    Private Feuille As Worksheet
     
    Private Sub Option_groupe_Click()
        Determine_la_Feuille Me.Option_Groupe
    End Sub
     
    Private Sub Option_proches_Click()
        Determine_la_Feuille Me.Option_Proches
    End Sub
     
    Private Sub Option_groupe_proches_Click()
        Determine_la_Feuille Me.Option_Groupe_Proches
    End Sub
    Private Sub Option_propagande_Click()
        Determine_la_Feuille Me.Option_Propagande
    End Sub
    Private Sub Option_groupe_proches_propagande_Click()
        Determine_la_Feuille Me.Option_Groupe_Proches_Propagande
    End Sub
    Private Sub Option_adversaires_Click()
        Determine_la_Feuille Me.Option_adversaires
    End Sub
    Private Sub Option_sct_Carouge_Click()
        Determine_la_Feuille Me.Option_sct_Carouge
    End Sub
    Private Sub Option_sct_Vernier_Click()
        Determine_la_Feuille Me.Option_sct_Vernier
    End Sub
    Private Sub Présidents_sections_Click()
        Determine_la_Feuille Me.Présidents_sections
    End Sub
    Private Sub Présidents_commissions_Click()
        Determine_la_Feuille Me.Présidents_commissions
    End Sub
    Private Sub Option_CD_Click()
        Determine_la_Feuille Me.Option_CD
    End Sub
    Private Sub Option_test_Click()
        Determine_la_Feuille Me.Option_test
    End Sub
     
    Private Sub Determine_la_Feuille(Feuille As Worksheet)
     
         Select Case True
            Case Me.Option_Groupe
                Set Feuille = Worksheets("email_groupe")
            Case Me.Option_Proches
                Set Feuille = Worksheets("email_proches")
            Case Me.Option_Groupe_Proches
                Set Feuille = Worksheets("email_groupe_proches")
            Case Me.Option_Propagande
                Set Feuille = Worksheets("email_propag")
            Case Me.Option_Groupe_Proches_Propagande
                Set Feuille = Worksheets("email_grou_pro_propag")
            Case Me.Option_adversaires
                Set Feuille = Worksheets("email_advers")
            Case Me.Option_sct_Carouge
                Set Feuille = Worksheets("sct_Carouge")
            Case Me.Option_sct_Vernier
                Set Feuille = Worksheets("sct_Vernier")
            Case Me.Présidents_sections
                Set Feuille = Worksheets("Prés_sections")
            Case Me.Présidents_commissions
                Set Feuille = Worksheets("Prés_commissions")
            Case Me.Option_CD
                Set Feuille = Worksheets("email_CD")
            Case Me.Option_test
                Set Feuille = Worksheets("email_test")
        End Select
        MsgBox Feuille.Name
    End Sub      
     
    Private Sub Comm_OK_Click()
        Execute EnvoiMail(Feuille)
    End Sub
    Les contrôles dont le nom commence par Comm sont de simples boutons de commande.
    Les 2 textbox servent à délimiter la plage à utiliser dans chaque feuille contenant les adresses e-mail.
    Ce qui peut éventuellement interférer avec ce code, c'est
    - le code d'un bouton placé dans la première feuille et ouvrant l'userform
    - le code dans le module standard dont la fonction est d'envoyer automatiquement des e mails en série à des intervalles de temps irréguliers, avec ou sans pièce(s) jointe(s).
    Dis-moi si tu veux les examiner aussi.
    Merci de ton regard critique.
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  9. #29
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    2-3 choses à revoir...
    1- Tous les événements TextBox_Click, dans ton cas ne sont pas adaptés...
    2- Private Option_Groupe As MSForms.OptionButton ne sert à rien, à supprimer
    3- ne vois tu pas un problème de majuscule dans TON code, ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Option_groupe_Click()
        Determine_la_Feuille Me.Option_Groupe
    End Sub
    Option n°4 : Private Feuille As Worksheet doit être placé juste sous Option Explicit....
    Cordialement,
    Franck

  10. #30
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 486
    Points : 46
    Points
    46
    Par défaut Sub événementielle tourne en rond
    Bonsoir pijaku et merci,
    Majuscules: autant pour moi. Quelle négligence !
    Textbox: sur les événements, mes lacunes sont des gouffres ! Je vais m'y attaquer demain, avec la tête un peu plus claire. Je reviendrai probablement la semaine prochaine, pas avant.
    Bonne fin de semaine.
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  11. #31
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Juste souligner que la programmation ne tolère aucune approximation.
    Cordialement,
    Franck

  12. #32
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 486
    Points : 46
    Points
    46
    Par défaut Sub événementielle tourne en rond
    Bonsoir Frank,
    J'ai repêché mon sujet dans les profondeurs du forum et voici ma question: avant de me remettre à coder j'aimerais vérifier que j'ai compris pourquoi mes textbox ne sont pas adaptés. C'est je crois parce que pour saisir un entier à chaque fois, je dois les remplacer par des inputbox. Le souci c'est (je crois, encore une fois !) que l'inputbox n'est pas un contrôle de userform et qu'il se programme dans un module standard. Je pense que quand l'une des feuilles portant les adresses e mail aura été sélectionnée les inputbox s'afficheront.
    Il y aurait une autre possibilité, c'est que l'événement Click du textbox doive être remplacé par l'événement Change. Donc je suis très hésitant sur la suite à donner!
    J'ai consulté les 2 tutoriels portant sur les USF mais ni l'un ni l'autre ne m'a éclairé sur ce problème.
    Merci d'avance de me donner un coup de pouce.
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

  13. #33
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Cette question n'ayant rien à voir avec le sujet, il convient d'en créer un nouveau.
    Mais bon, tu peux déjà t'intéresser aux événements suivants :

    1. TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    2. TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    3. TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)


    Sache que tu n'as pas besoin d'inputbox, fais une recherche TextBox numérique sur ce forum...
    Cordialement,
    Franck

  14. #34
    Membre du Club Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 486
    Points : 46
    Points
    46
    Par défaut Sub événementielle tourne en rond
    Bonjour,
    Tout d'abord je tiens à remercier MarcelG, unparia, dysorthographie et pijaku, ce dernier plus particulièrement pour sa grande patience.
    Il est dit qu'après 11 ans de consultations généralement fructueuses de ce forum je resterai un débutant ou plutôt un éternel novice. Bref, je renonce à réaliser la solution autour de laquelle je tourne depuis trop longtemps, et dont je regretterai l'élégance, au profit d'une solution plus simple et plus banale, évidemment: placer chacun de mes fichiers d'adresses e mail dans un classeur différent et y adjoindre une copie de la sub d'envoi automatique, qui fonctionne, et qui sera ainsi paramétrée une fois pour toutes. Adieu textbox et inputbox
    Donc merci et sans doute à bientôt pour d'autres soucis de novice.
    Cordialement
    Pierre
    There is always an easy solution to every human problem - neat, plausible. And wrong.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/07/2006, 10h58
  2. Quetion de débutant ... bête mais je tourne en rond
    Par JohnQc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 14/04/2006, 17h39
  3. Requete qui tourne en rond
    Par hugo69 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/11/2005, 20h02
  4. Prog qui tourne en rond :-(
    Par FranckDev dans le forum CORBA
    Réponses: 2
    Dernier message: 07/09/2005, 13h50
  5. Je tourne en rond....
    Par Ol dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/02/2005, 07h54

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