Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[RESOLU] Code à simplifier

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

maninwhite

XLDnaute Occasionnel
Bonjour à toutes et à tous

Comment puis je simplifier le code ci dessous vp?

Merci d'avance😛


Code:
Private Sub CommandButton_afficher_Click()

    Sheets("Stats").Activate

    If ComboBox_top5_mauvais_comportements.Value = "Janvier" Then
        ListBox_top_5_mauvais_comportements.List() = Range("C2:C6").Value
        If ComboBox_top5_mauvais_comportements.Value = "Février" Then
            ListBox_top_5_mauvais_comportements.List() = Range("D2:D6").Value
            If ComboBox_top5_mauvais_comportements.Value = "Mars" Then
                ListBox_top_5_mauvais_comportements.List() = Range("E2:E6").Value
                If ComboBox_top5_mauvais_comportements.Value = "Avril" Then
                    ListBox_top_5_mauvais_comportements.List() = Range("F2:F6").Value
                    If ComboBox_top5_mauvais_comportements.Value = "Mai" Then
                        ListBox_top_5_mauvais_comportements.List() = Range("G2:G6").Value
                        If ComboBox_top5_mauvais_comportements.Value = "Juin" Then
                            ListBox_top_5_mauvais_comportements.List() = Range("H2:H6").Value
                            If ComboBox_top5_mauvais_comportements.Value = "Novembre" Then
                                ListBox_top_5_mauvais_comportements.List() = Range("A2:A6").Value
                                If ComboBox_top5_mauvais_comportements.Value = "Décembre" Then
                                    ListBox_top_5_mauvais_comportements.List() = Range("B2:B6").Value

                                End Sub
 
Dernière édition:
Re : Code à simplifier

Salut TotoTiti 🙂,
Comme cela peut-être 😛
Code:
Private Sub ComboBox_top5_mauvais_comportements_Change()
Dim TestCol As Integer, I As Integer
With Sheets("Stats")
ListBox_top_5_mauvais_comportements.Clear
If Not .Range("1:1").Find(ComboBox_top5_mauvais_comportements.Text, LookAt:=xlPart) Is Nothing Then
TestCol = .Range("1:1").Find(ComboBox_top5_mauvais_comportements.Text, LookAt:=xlPart).Column
For I = 2 To 6
ListBox_top_5_mauvais_comportements.AddItem .Cells(I, TestCol)
Next I
End If
End With
End Sub
et pour charger le combobox
Code:
Private Sub UserForm_Initialize()
Dim I As Integer
For I = 1 To 12
ComboBox_top5_mauvais_comportements.AddItem Application.WorksheetFunction.Proper(Format(CDate("01/" & I & "/10"), "mmmm"))
Next I
End Sub
Bonne soirée 😎
Ajout : Le fichier est ICI...
 
Dernière édition:
Re : Code à simplifier

Ah encore une fois mon sauveur intervient lol

Malheureusement, lors de l'execution de la macro

Code:
Permission denied

Je ne sais as si cela à quelque chose à voir, mais mon classeur est protégé et mes feuilles aussi par l'intermédiaire du code ci dessous.

Code:
Private Sub Workbook_Open()

    Dim oneSheet As Worksheet

    For Each oneSheet In ThisWorkbook.Worksheets
        With oneSheet
            .Protect Password:="cageot", UserInterfaceOnly:=True
            .EnableOutlining = True
        End With
    Next oneSheet

    fenetre_de_connexion.Show

End Sub

Merci
 
Re : Code à simplifier

Re 🙂,
Logiquement non, vu que je lis juste des données dans la feuille, et que je n'en écrit pas. Ta feuille n'est pas masquée ?
Sinon, ton fichier ne serait pas partagé, par hasard (un certain nombre de macro ne tournent pas en mode partagé) ?
Autrement, je ne vois pas 😱...
Bon courage 😎
 
Re : Code à simplifier

Pour le partage du fichier, je n'ai rien changer donc théoriquement non.
La seule feuille qui est masquée dans mon fichier est la feuille "base" feuille avec laquelle j'alimente la plupart de mes comboboxs...
 
Re : Code à simplifier

C'est bon, j'ai résolu le problème comme un grand.😛😎

Vu que ma combobox est alimentée avec la propriété "rowsource" il ne fallait pas que j'ajoute le code

Code:
Private Sub UserForm_Initialize()
Dim I As Integer
For I = 1 To 12
ComboBox_top5_mauvais_comportements.AddItem Application.WorksheetFunction.Proper(Format(CDate("01/" & I & "/10"), "mmmm"))
Next I
End Sub

Merci😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
1 K
O
Réponses
4
Affichages
1 K
Olocsob
O
M
Réponses
7
Affichages
2 K
Melysza
M
S
Réponses
13
Affichages
2 K
Stedemart
S
V
Réponses
17
Affichages
3 K
VBgalère
V
S
Réponses
3
Affichages
848
M
  • Question Question
Réponses
4
Affichages
1 K
Makovitch
M
Réponses
3
Affichages
640
Réponses
11
Affichages
1 K
L
Réponses
1
Affichages
1 K
Lucien31
L
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…