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 :

Automatisation d'un multipage [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Mars 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 23
    Par défaut Automatisation d'un multipage
    Bonjour à tous et à toutes,
    Je cherche désespérement à automatiser un multipage afin qu'un utilisateur puisse le modifier à sa convenance.
    Je m'explique

    EX : Je souhaite créer un multipage pour rentrer plusieurs personnes dans un formulaire.
    Par exemple pour un groupe de 3 personnes, je souhaiterais que l'utilisateur puisse avoir ainsi 3 onglet dans son multipage, nommés Personne1, Personne2, Personne3.
    Le premier problème intervient ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'bouton +1 personne
    Private Sub CommandButton3_Click()
    Dim k As Integer
    UserForm1.MultiPage1.Pages.Add
    k = UserForm1.MultiPage1.Pages.Count
    MultiPage1.Pages.Item(k).Caption = "Personne" & k
    End Sub
    Avec ce code-ci, je souhaite que lorsque l'utilisateur clique sur le bouton "ajouter une personne", l'onglet se créer avec comme nom "Personne2" si c'est la deuxième personne et "Personne3" si c'est la 3ème etc,
    Sauf qu'ici Item(k) n'est pas accepté et si jamais il l'était, la valeur changerais a chaque fois qu'on ajoute une autre personne...

    Pour résumer, j'aimerais que chaque création de page prenne un titre automatique avec "Personne k" avec k le numero de la page.


    De plus, après recherche je ne trouve pas le moyen d'automatiser le contenu de cette page.
    Imaginons, que dans le formulaire de base, dans l'onglet 1 pour la personne 1, il y a 2 TextBox pour son nom et son prénom.
    Est-il possible lorsque l'utilisateur ajoute une page au multipage, celle-ci soit une copie-modele de la premiere page ?
    C'est à dire, en ajoutant "Personne2", dans cette nouvelle page Personne2, il y ait le champ pour Nom et prénom ?

    Merci d'avance pour la lecture de ce message et pour d'éventuelles réponses !

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
     
    With Me.MultiPage1
        .Pages.Add
        .Pages(0).Controls.Copy
        .Pages(.Pages.Count - 1).Paste
        .Pages(.Pages.Count - 1).Caption = "Personne" & .Pages.Count
    End With
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Mars 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 23
    Par défaut
    Whouah !!!
    Merci infiniment mercatog, c'est exactement ce qu'il me fallait... MERCIIII !

    Pour finir aurais-tu une idée de comment récupérer les données de ces textbox créées par l'utilisateur ? Elle ne sont pas définies de base dans le code, du coup même en essayant textbox(n+1) avec n le dernier numero de mon document, cela ne fonctionne pas...

    Merci d'avance

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Une usine à gaz est entrain de se concoter

    Une proposition: utilise les tags de tes contrôles de la 1ère page. Ensuite on va boucler sur les contrôles de la page créés, si les noms changent, les tag restent figés

    Exemple
    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
    Private Sub CommandButton1_Click()
    With Me.MultiPage1
        .Pages.Add
        .Pages(0).Controls.Copy
        .Pages(.Pages.Count - 1).Paste
        .Pages(.Pages.Count - 1).Caption = "Personne" & .Pages.Count
        .Value = .Pages.Count - 1
    End With
    End Sub
     
    Private Sub CommandButton2_Click()
    Dim Ctr As Control
     
    With Me.MultiPage1
        For Each Ctr In .Pages(.Value).Controls
            MsgBox Ctr.Name & "-> Tag: " & Ctr.Tag
        Next Ctr
    End With
    End Sub
    Multipage1.page(multipage1.value) est la page active

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Mars 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 23
    Par défaut
    Re-bonjour mercatog !
    Après de nombreux essais j'ai enfin réussi a obtenir ce que je souhaitais !
    Je te remercie encore de ton aide, précise rapide et concise !

    Bonne journée à toi !

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Après de nombreux essais j'ai enfin réussi a obtenir ce que je souhaitais !
    Pour les futurs forumistes, il est souhaitable de proposer ton code final qui pourrait aider un jour quelqu'un ou quelqu'un un jour

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

Discussions similaires

  1. automatiser un package
    Par farnoune dans le forum Oracle
    Réponses: 4
    Dernier message: 09/08/2004, 15h45
  2. Réponses: 2
    Dernier message: 01/06/2004, 16h12
  3. Automatisation et/ou installer pour une bd sql
    Par ZePitou dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 22/02/2004, 12h54
  4. [MAPI][info] automatisation des taches de messagerie
    Par peppena dans le forum Windows
    Réponses: 6
    Dernier message: 22/01/2004, 16h06
  5. Automatiser la mise à jour de la bD SQL SERVER from Access
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/11/2003, 15h23

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