Peux tu supprimer le fichier joint de ton message?
Peux tu supprimer le fichier joint de ton message?
Tu as deux soucis dans le code de la feuille Equipes.
D'abord, tout ton code de masquage des lignes s'effectue à chaque changement. Je doute que ce soit efficace. Tu devrais l'exécuter uniquement lorsque tu modifies la cellule G1.
Plus embêtant, tu charges le combobox à chaque changement de la feuille Equipes. C'est cela qui te pose le problème des @. Tu dois virer les dernières lignes de cette procédure, à partir de Dim Value...
Perso, je n'enclencherais la procédure que lorsque c'est la cellule NombreEquipes qui est modifiée avec le code suivant (Il y a plus académique mais j'ai repris ton code en n'en modifiant que ce qui fallait pour que cela fonctionne, et on va faire avec)
Le code de FillCombo doit aussi être modifié car j'avais vu dans ton code que tu travaillais avec Feuille_Papier.Combobox1..., mais c'est avec Worksheets("Feuille_Papier").Combobox1 que tu dois travailler.
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
30
31 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Range("NombreEquipes").Address Then Select Case Cells(1, "G") Case 128 Sheets("Equipes").Select Rows("5:132").Hidden = False Case 64 Sheets("Equipes").Select Rows("5:68").Hidden = False Rows("69:132").Hidden = True Case 32 Sheets("Equipes").Select Rows("5:36").Hidden = False Rows("37:132").Hidden = True Case 16 Sheets("Equipes").Select Rows("5:20").Hidden = False Rows("21:132").Hidden = True Sheets("Feuille_papier").ComboBox1.Clear Case 8 Sheets("Equipes").Select Rows("5:12").Hidden = False Rows("13:132").Hidden = True End Select Sheets("Equipes").Select Cells(5, "C").Select FillCombo End If End Sub
Avec ces modifs, ça fonctionne chez moi
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 FillCombo() Dim Value As Long Dim Counter As Long Value = Range("NombreEquipes").Value If Value Mod 8 = 0 Then Worksheets("Feuille_papier").ComboBox1.Clear For Counter = 1 To Value / 8 Worksheets("Feuille_papier").ComboBox1.AddItem "Poule " & Chr(64 + Counter) Next End If End Function
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Fait. C'est pour cela que je demandais un fichier dépersonnalisé, c'est-à-dire sans données personnelles ou confidentielles![]()
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Partager