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 :

Couleur onglet après sélection dans combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 361
    Par défaut Couleur onglet après sélection dans combobox
    Bonjour,

    Voici mon 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
    Private Sub UserForm_Initialize()
     Call ComboBox1_Initialize
    End Sub
     
    Private Sub ComboBox1_Change()
      ThisWorkbook.Worksheets(ComboBox1.Value).Activate
    End Sub
     
    Private Sub ComboBox1_Initialize()
    Dim wsh As Worksheet
      ComboBox1.Clear
      For Each wsh In ThisWorkbook.Worksheets
        ComboBox1.AddItem wsh.Name
      Next wsh
    End Sub

    Je cherche le moyen de :

    - mettre en rouge l'onglet correspondant à ma sélection dans le combobox

    - revenir à la "couleur d'origine" lorsque cet onglet n'est plus sélectionné.



    Autre petit problème, j'ai dans mon classeur 370 feuilles et, de ce fait, il est lent à l'ouverture.

    Pour info, aucune macro ne s'ouvre automatiquement ..... sauf peut-être, à mon avis le rafraîchissement du combobox.

    Des idées ?

    Merci.

    Bonne journée.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 361
    Par défaut
    est-il possible de mettre ces codes quelque part ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = True

  3. #3
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, testez ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
        Call ComboBox1_Initialize
    End Sub
    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
    Private Sub ComboBox1_Change()
        Static lastSheet As Worksheet ' Conserver l'onglet précédent
     
        ' Réinitialiser la couleur de l'onglet précédent
        If Not lastSheet Is Nothing Then
            lastSheet.Tab.ColorIndex = xlColorIndexNone
        End If
     
        ' Activer et mettre en rouge l'onglet sélectionné
        Dim currentSheet As Worksheet
        Set currentSheet = ThisWorkbook.Worksheets(ComboBox1.Value)
        currentSheet.Activate
        currentSheet.Tab.Color = RGB(255, 0, 0) ' Couleur rouge
     
        ' Mémoriser l'onglet actuel comme dernier onglet
        Set lastSheet = currentSheet
    End Sub
    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
    Private Sub ComboBox1_Initialize()
        Dim wsh As Worksheet
        ComboBox1.Clear
     
        ' Désactiver le rafraîchissement pour accélérer le chargement
        Application.ScreenUpdating = False
     
        ' Ajouter chaque feuille au ComboBox
        For Each wsh In ThisWorkbook.Worksheets
            ComboBox1.AddItem wsh.Name
        Next wsh
     
        ' Réactiver le rafraîchissement
        Application.ScreenUpdating = True
    End Sub
    Si les feuilles ne changent pas fréquemment, vous pouvez envisager d'enregistrer leur liste dans un tableau statique à utiliser pour le ComboBox.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 361
    Par défaut
    merci mais l'onglet reste en rouge même quand je sélectionne un nouvel onglet

  5. #5
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Testez avec cette modification:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub UserForm_Initialize()
        ' Appel à l'initialisation du ComboBox
        Call ComboBox1_Initialize
     
        ' Réinitialisation des couleurs de tous les onglets
        Dim wsh As Worksheet
        For Each wsh In ThisWorkbook.Worksheets
            wsh.Tab.ColorIndex = xlColorIndexNone ' Enlever toute couleur personnalisée
        Next wsh
    End Sub

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 361
    Par défaut
    Un super grand merci, c'est ce que je cherchais.

    Bonne après midi et bon weekend

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/06/2016, 15h06
  2. [XL-2010] Colorier ligne après recherche dans combobox
    Par Ds1tox dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 11/01/2016, 08h38
  3. copier une cellule d'une à une autre après selection dans combobox
    Par fripoti dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/07/2008, 14h23
  4. Mise à jour d'une variable après choix dans une combobox
    Par ~Brouette~ dans le forum Langage
    Réponses: 1
    Dernier message: 21/12/2007, 11h09

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