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 :

Multipage et objets


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut Multipage et objets
    Bonjour,

    Actuellement, je travaille en VBA et j'ai créé une MultiPage, dans celle-ci il y a 8 pages identiques.
    Afin de ne pas avoir des noms aléatoires (TextBox87, ...) j'ai renomé les objets de chaque page avec le même nom que sur la 1ère page (j'ai donc 8 pages avec NomClient, ...).

    Sauf qu'il me faut une CheckBox qui active/désactive d'autres objets.
    Cette checkbox fonctionne sur la première page, pas sur les 7 suivantes. (testé avec une msgbox pour afficher un message, elle ne s'active que sur la 1ère page)
    Comment donc faire pour que mon "sub CheckBox_Change()" fonctionne sur chaque page... ?
    Auriez vous une idée ?

    Merci !

    Ci-joint, une démonstration du problème.
    Nom : Sans titre.png
Affichages : 138
Taille : 8,0 Ko

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    pas le choix un module classe tu a moulte exmple sur le forum
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut re
    Merci beaucoup, je vais voir ça !

  4. #4
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonsoir, tout ça manque d'explications. Qu'est censée faire cette Check box, quel est le code que vous y avez entré? Il faudrait plus de détails
    Pouvez vous nous copier les codes du UF, si UF il y a? sinon qu'y a t-il?
    Cordialement

  5. #5
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut
    Bonjour,

    Cette CheckBox est sensée activée les contrôles se trouvant en dessous, ils sont désactivés de base.

    Ce que j'ai entré comme code :

    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
    Private Sub CheckAccidentsCorporels_Change()
     
        MsgBox "hello"
        If CheckAccidentsCorporels.Value = True Then
            ComboBoxProfessions.Enabled = True
            CapitalMort.Enabled = True
            CapitalInvalidite.Enabled = True
            CapitalIndemnite.Enabled = True
        Else
            ComboBoxProfessions.Enabled = False
            CapitalMort.Enabled = False
            CapitalInvalidite.Enabled = False
            CapitalIndemnite.Enabled = False
        End If
     
    End Sub
    La MsgBox me sert de test pour savoir si finalement cela fonctionne ou non.

    Les contrôles se trouvant sur les autres pages au lancement du programme ont été copiées, à partir de la première page, de cette manière :

    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
    MultiPage1.Pages(0).Controls.Copy
        a = 0
     
        For Each ctl In MultiPage1.Pages(0).Controls
                a = a + 1
                l(a) = ctl.Left
                r(a) = ctl.Top
                ctlname(a) = ctl.Name
        Next
     
        For i = 1 To 7
            MultiPage1.Pages(i).Paste
     
            a = 0
            For Each ctl In MultiPage1.Pages(i).Controls
                a = a + 1
                ctl.Left = l(a)
                ctl.Top = r(a)
                ctl.Name = ctlname(a) & i
            Next
        Next
    Merci

  6. #6
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, je viens de faire un test et chez moi ça marche?
    Cordialement

    MultiPage.xlsm

  7. #7
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut
    Bonjour,

    Effectivement ainsi pas de problème, cependant ma CheckBox est affichée une fois par page et non avant ma MultiPage !

    Finalement j'ai décidé de m'amuser à renommer mes 22 contrôles x 8 pages un à un en ajoutant le n° de page à la fin, ce qui me fait : NomClient1, NomClient2, NomClient3, ..., NomClient8

    Fastidieux à faire, sachant qu'en plus si je veux utiliser NomClient1_Change(), il ne fonctionnera que pour NomClient1. Je dois donc copier coller et l'adapter aux 8 pages.


    Aussi, j'ai gardé une sauvegarde de quand j'utilisais les copies de page, au cas où l'un de vous aurait une solution à mon problème !

    Mon explication au dessus sera probablement plus explicite. Avez-vous une idée de comment régler cela ?

    Merci !

    Ci-joint, ma sauvegarde : Projet 1 - Ancien.xlsm

  8. #8
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonsoir, J'ai modifié, maintenant il y a le bouton de choix dans les pages et ça marche!!!
    Vous n'avez plus qu'a l'adapter.
    Cordialement




    MultiPage.xlsm

  9. #9
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Avril 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Avril 2018
    Messages : 5
    Par défaut
    Au final j'ai fait la même chose...

    Sauf que puisque tous les noms sont différents, lorsque l'on veut modifier une chose... Il faut créer un sub pour chacun.
    Du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub TextBox1_Change()
    TextBox1.Value = 5
    End sub
     
    Sub TextBox4_Change()
    TextBox4.Value = 5
    End sub
    Ce qui n'est pas pratique quand, comme moi, l'on a ceci :
    Nom : Sans titre.png
Affichages : 135
Taille : 8,6 Ko

    M'enfin, je me débrouille ainsi, même si du coup au lieu de pouvoir n'avoir qu'une seule Sub par contrôle, je dois en avoir 8 pareilles avec juste les names qui changent. :p

    Un grand merci à vous !

    Cordialement.

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

Discussions similaires

  1. Objets controls et multipage
    Par joe.levrai dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2012, 15h23
  2. [XL-2010] userform multipage objet
    Par pilounet54 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/08/2012, 09h21
  3. [XL-2003] Objet Multipage programmation
    Par aryory dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/04/2011, 20h23
  4. [XL-2002] Un objet multipage réticent
    Par Touffe54 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/11/2010, 23h50
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 17h20

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