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 :

Cacher onglet multipage avec condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Par défaut Cacher onglet multipage avec condition
    Bonjour à tous,

    J'aimerais caché onglet d'une mutipage
    Pour cela j'ai trouvé, j'utilise le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MultiPage1.Pages(1).Visible = False
    Mon soucis et que j'ai 10 onglet avec 20 boutons de commande
    tous mes onglets sont déjà préparer à l'avance donc j'ai à chaque onglet 20 bouton de commande

    Mes boutons ce nommera au fur et à mesure

    J'aimerais que tous les onglets ou aucun bouton soit nommé soit caché

    Exemple:
    si j'ai que 15 bouttons nommé, le résultat soit page1 visible et les 9 autres caché
    si j'ai que 35 bouttons nommé, le résultat soir page1 et page2 visible et les 8 autres caché
    et ainsi de suite

    En vous remerciant de vos réponse et de votre temps

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    si c'est le nombre de bouton nommé qui détermine les pages visibles
    1 page =20 bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public Sub Action(Bouton As Integer)
        BtnPage = 20
        Page = Application.WorksheetFunction.RoundUp((Bouton / BtnPage), 0)
        MsgBox "nombre de page = " & Page
    End Sub
    avec comme appel Call Action(35)

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Membre confirmé
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Par défaut
    Bonjour,

    Merci de vous pencher à mon soucis

    Vais essayer de m'expliquer un peu mieux via un exemple

    J'ai une multipage
    dans celle-ci il y a 5 onglet
    dans chaque onglet ce trouve 10 commandboutton

    je récupère via un code (voir ci-dessous) dans mon userform les données de cellule de Feuil1 pour mettre dans commandboutton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_Initialize()
        Dim i As Long, NbLeg As Long
        Dim ob As Object
        NbLeg = Sheets("feuil1").Range("A" & Rows.Count).End(xlUp).Row
        For i = 1 To NbLeg
            For Each ob In UserForm1.Controls
                If ob.Name = "CommandButton" & i Then
                    ob.Caption = Sheets("feuil1").Cells(i, 1)     
                End If
           Next ob
        Next i
    End Sub
    Exemple:
    Feuil1 A1 = Coca donc grâce au code mon commandbutton1, sa caption s’intitule Coca
    Feuil1 A2 = Fanta donc grâce au code mon commandbutton1, sa caption s’intitula Fanta
    est ainsi de suite

    Tous mes onglet et boutton sont déjà créé
    J'encode au fur et à mesure dans ma feuil1
    Donc mes commandbutton s'encode aussi au fur et à mesure

    Exemple 1:
    J'aimerais que si dans ma Feuil1 j'ai 8 articles donc 8 commandbutton seront encodé
    donc mon premier onglet de 10 boutons ne sera pas tous encodé.
    donc j'aimerais que les 4 autres onglet soit masqué

    Exemple 2:
    J'aimerais que si dans ma Feuil1 j'ai 18 articles donc 18 commandbutton seront encodé
    donc mon premier onglet de 10 boutons sera encodé ainsi que 8 boutons de mon deuxième onglet également.
    donc j'aimerais que les 3 autres onglet soit masqué

    et ainsi de suite

    J'espère mettre expliqué plus correctement

    En vous remerciant

  4. #4
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    c'est très clair

    voyons l'exemple de 18 articles

    en premier , il faut savoir de combien de page/onglet on a besoin , quitte à masquer des contrôles ,
    avec Page = Application.WorksheetFunction.RoundUp((TotalArticle / BoutonParPage), 0) on connait ce nombre !!

    à partir de là , on cache les autres page/onglet...
    en suite , dans les 2 page/onglet qui restent , on cache tous les contrôles

    il ne reste plus qu'a Titrer les 10 contrôles , changer de page/onglet et Titrer les 8 contrôles ... en les rendant visibles au fur et à mesure ...

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  5. #5
    Membre confirmé
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Par défaut
    Bonjour,

    Désolé si c'est très clair pour vous, moi ça chauffe dans mon cerveau 😂
    Suis assez novice en vba, j'apprens au fur et à mesure.
    Mais la ça deviens du chinoix.
    Je vous remercie de tous ce que vous m'informer.
    Je vais devoir faire quelques test et même voir monsieur Google pour comprendre ce qui ai clair pour vous.
    Je vais m'y mettre en espérant trouver tous ça.
    Je vous remercie

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    voila le form en mode création

    Nom : Capture_1.PNG
Affichages : 2066
Taille : 15,5 Ko

    le code pour masquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub UserForm_Initialize()
        Dim i As Long
        Dim NbLeg As Long
        Dim ob As Object
        '----- masque 4 pages
        For n = 1 To 4
        Me.MultiPage1.Pages(n).Visible = False
        Next n
        '----- masque 10 bouton page 0 : 1 à 10
        For n = 1 To 10
        UserForm1.Controls("CommandButton" & n).Visible = False
        Next n
    End Sub
    Résultat

    Nom : Capture_2.PNG
Affichages : 1737
Taille : 7,9 Ko

    la solution
    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
     
    Private Sub UserForm_Initialize()
        Dim i As Long
        Dim NbLeg As Long
        Dim ob As Object
        '----- masque 4 pages
        For n = 1 To 4
            '----- masque 10 bouton page 0 : 1 à 10
            For n2 = 1 To 10
                UserForm1.Controls("CommandButton" & (n2 + (10 * n))).Visible = False
            Next n2
            Me.MultiPage1.Pages(n).Visible = False
        Next n
        '-----
        NbLeg = Sheets("feuil1").Range("A" & Rows.Count).End(xlUp).Row
        BoutonParPage = 10
        TotalArticle = NbLeg
        NombreDePage = Application.WorksheetFunction.RoundUp((TotalArticle / BoutonParPage), 0)
        '-----
        For PageNum = 1 To NombreDePage
            Me.MultiPage1.Pages(PageNum - 1).Visible = True
            For BtnNum = 1 To 10
                LigneNum = LigneNum + 1
                UserForm1.Controls("CommandButton" & (BtnNum + (10 * (PageNum - 1)))).Visible = True
                UserForm1.Controls("CommandButton" & (BtnNum + (10 * (PageNum - 1)))).Caption = Sheets("feuil1").Cells(LigneNum, 1).Value
                If LigneNum = TotalArticle Then Exit Sub
            Next BtnNum
        Next PageNum
    End Sub
    Résultat Page 1

    Nom : Capture_3.PNG
Affichages : 1750
Taille : 22,6 Ko

    Résultat Page 2

    Nom : Capture_4.PNG
Affichages : 1794
Taille : 22,1 Ko


    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. [Google Sheets] Copier / Coller une ligne avec condition sur un autre onglet
    Par bunz13 dans le forum APIs Google
    Réponses: 5
    Dernier message: 18/08/2018, 11h26
  2. [XL-2010] supprimer des onglets avec condition
    Par jkiii dans le forum Excel
    Réponses: 4
    Dernier message: 24/12/2013, 12h02
  3. cacher un FieldSet avec une condition
    Par archer dans le forum JSF
    Réponses: 4
    Dernier message: 06/06/2010, 01h50
  4. Réponses: 7
    Dernier message: 28/05/2008, 10h48
  5. Réponses: 2
    Dernier message: 18/12/2007, 15h47

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