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 :

Activation d'onglets par list box


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    BTS FED
    Inscrit en
    Avril 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : BTS FED
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 8
    Par défaut Activation d'onglets par list box
    Bonjour,

    Je voudrais un peut d'aide sur un fichier, je suis débutant la macros. J'ai donc ma liste d'onglet je veut y appliquer uniquement sur mes étage donc de "R-3" à "R+10" qui maintenant sont visible mais je voudrais qui sois cacher a l'ouverture.

    J'ai donc ajouté un module ou j'ai insérer (pour commencer)
    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 Afficher_click()
    With Sheets(R + 3)
    .Visible = True
    .Activate
    End With
    End Sub
    Private Sub Afficher_click()
    With Sheets(R + 2)
    .Visible = True
    .Activate
    End With
    End Sub
    Private Sub Afficher_click()
    With Sheets(R + 4)
    .Visible = True
    .Activate
    End With
    End Sub
    J'arrive pas insérer ma listbox sur ma feuille d’accueil

    Et mon autre problème c'est que chaque étage calcul une somme par rapport aux données rentrée dans la base "étage" ou "sous-sol" -> "Total déperdition du niveaux ".Et cette somme total des étages est calculé dans "flux thermique".
    Ce que je voudrais c'est que tant qu'un onglet n'est pas sélectionné dans ma list box le calcul "Total déperditions niveau" soit pas calculer ou même la feuille complète soit pas actif.

    J’espère que vous pourrez comprendre ma demande et m'aidez.

    Cordialement,
    Images attachées Images attachées   
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,

    Petit exemple qui masque les feuilles sélectionnées dans une liste (Contrôle ActiveX ListBox)

    Dans l'illustration ci-dessous, nous pouvons voir à gauche une liste des feuilles que l'on souhaite masquer ou afficher et au milieu (hauteur des colonnes C:E le contrôle ActiveX ListBox

    La liste des feuilles (A1:A5) est un tableau structuré
    Il y a lieu de créer une plage nommée lstSheet qui fait référence aux données (sans le titre) du tableau structuré soit A2:A5 dans l'exemple ci-dessous
    Le contrôle ActiveX se nomme ListBox1
    Propriétés du ListBox à modifier
    ListFillRange = lstSheet
    MultiSelect = 1 (constante fmMultiSelectMulti)
    Non obligatoire LifeStyle = 1 (constante fmListStyleOption)

    Nom : Formulaire de contrôle ActiveX ListBox.png
Affichages : 169
Taille : 18,1 Ko

    Procédures


    Module de la feuille
    Dans le module de la feuille nommée Accueil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ListBox1_Change()
       ' Invoque la procédure qui va afficher ou masquer les feuilles sélectionnées
       ListSheetSelectedToVisible Me.ListBox1
    End Sub
    Module standard
    Les deux procédures ci-dessous à placer dans un module standard du classeur où se trouve la feuille Accueil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function ListSheetSelectedToVisible(oList As MSForms.ListBox, Optional oWkb As Workbook) As Variant
      ' Procédure qui affiche ou masque les feuilles sélectionnées ou pas dans un ListBox
      ' Arguments
      '   oList  Object Control UserForm ou ActiveX
      '   [oWkb] Classeur où se trouve les feuilles dont les noms ont été sélectionnés dans la liste
      Dim Elem As Integer
      If oWkb Is Nothing Then Set oWkb = ActiveWorkbook
      '
      With oList
        For Elem = 0 To .ListCount - 1
            oWkb.Worksheets(.List(Elem)).Visible = Not .Selected(Elem)
        Next
      End With
    End Function
    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
    Function GetListBoxSelected(oList As MSForms.ListBox, Optional oWkb As Workbook) As Variant
      ' Procédure qui renvoie la liste des éléments sélectionnés dans le contrôle ListBox
      ' Arguments
      '   oList   ' ListBox
      '   [oWkb]  ' Workbook (ActiveWorkbook si absent)
      ' Déclaration
      Dim lst()
      Dim Elem As Integer
      Dim Count As Integer
      '
      With oList
        For Elem = 0 To .ListCount - 1
          If .Selected(Elem) Then
             ReDim Preserve lst(Count)
             lst(Count) = .List(Elem)
             Count = Count + 1
          End If
        Next
      End With
      GetListBoxSelected = lst
    End Function
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre régulier
    Homme Profil pro
    BTS FED
    Inscrit en
    Avril 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : BTS FED
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 8
    Par défaut Desactiver les onglets non actif
    Salut, merci pour la réponse je viens d'essayez ceci marche très bien.

    J'ai simplement une question mon problème c'est que chaque étage calcul une somme par rapport aux données rentrée dans la feuille "base-étage" et "base sous-sol" -> "Total déperdition du niveaux ".Et cette somme total des étages est calculé dans "flux thermique".
    Ce que je veut c'est que si l'onglet est masquée alors il est inactif, cela est-il possible ? Nom : exemp.png
Affichages : 152
Taille : 35,2 Ko

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'avais d'inquiétude à ce sujet mais par acquit de conscience, j'ai créé 1 tableau structuré par feuille et j'ai écrit =SOMME(Tableau1) pour les 4 + un calcul su plage classique =SOMME(Bruxelles!F2:F9) et je n'ai aucun souci que la feuille soit masquée ou pas

    Je ne sais pas comment tu as fait tes calculs
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre régulier
    Homme Profil pro
    BTS FED
    Inscrit en
    Avril 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : BTS FED
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 8
    Par défaut Calcul présent sur mes feuilles
    Merci pour la réponse rapide.

    J'ai remplis uniquement ma feuille base sous sol je trouve donc 30. Mais même en ayant mes page "R-3" "R-2""R-1" de cachées les calculs ce font quand même.
    Je te transfère je pense tout les calculs qui peuvent t'être utile pour m'aider.
    Je suis encore à la recherche de mes erreurs.

    En tout cas Merci beaucoup.
    Images attachées Images attachées      

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mais même en ayant mes page "R-3" "R-2""R-1" de cacées les calculs ce font quand même
    Mais oui, c'est normal.
    J'ai mal compris ta question. Pour excel que la feuille soit cachée ou pas, c'est transparent évidemment

    Une solution serait de prévoir une liste des feuilles que l'on cache ou que l'on affiche et à l'aide d'EQUIV on peut multiplier par le résultat du calcul mais cela me semble être une usine à gaz

    Ne faudrait-il pas penser à revoir l'organisation de tes données en mettant tout sur un seul onglet et alors une simple filtre dans un tableau structuré suffit pour avoir le résultat attendu ou faire la synthèse à l'aide d'un tableau croisé dynamique.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/08/2017, 03h14
  2. [XL-2003] Activation des macros par liste déroulante
    Par wverco dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/10/2012, 09h39
  3. Activation d'un champ par "check box"
    Par stan057 dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/06/2009, 14h49
  4. Suppression ligne List-Box par clavier
    Par mxh77 dans le forum 4D
    Réponses: 0
    Dernier message: 29/04/2008, 16h44
  5. sélectionner une valeur d'un liste box par le l'ascenceur
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/05/2006, 13h13

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