Bonjour,
Je suis tout à fait novice en VBA donc je recherche à droite et à gauche des moyens de m'en sortir.
J'ai donc réalisé un excel extrêmement lourd et j'aimerais l'optimiser pour pas que cela soit inutilisable.
Je vous met une partie de code ci dessous qui lorsque qu'on choisi un valeur dans une liste déroulante affiche et masque plusieurs ligne selon le cas.
Je pense qu'il y a beaucoup mieux que ce code, voir peut être même pas besoin de passer par une macro. Avez vous des idées pour optimiser ceci ?
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub '<-- si plusieurs cellules sont sélectionnées on quitte la procédure sinon ça bug If Target.Address = "$G$9" Then '<-- vérification que la modification se passe dans la cellule G9 Select Case Target.Value Case "Logements": Rows("24:28").Hidden = True Case "EHPAD": Rows("17:22").Hidden = True Case "Hopital": Rows("17:22").Hidden = True Case "Hotel*": Rows("17:22").Hidden = True Case "Hotel**": Rows("17:22").Hidden = True Case "Hotel***": Rows("17:22").Hidden = True Case "Gymnase": Rows("17:22").Hidden = True Case "Commerce": Rows("17:22").Hidden = True Case "Piscine": Rows("17:22").Hidden = True Case "Etablissement scolaire": Rows("17:22").Hidden = True Case "Restaurant": Rows("17:22").Hidden = True End Select Select Case Target.Value Case "EHPAD": Rows("26:27").Hidden = True Case "Hotel*": Rows("26:27").Hidden = True Case "Hopital": Rows("26:27").Hidden = True Case "Hotel**": Rows("26:27").Hidden = True Case "Hotel***": Rows("26:27").Hidden = True Case "Gymnase": Rows("26:27").Hidden = True Case "Commerce": Rows("26:27").Hidden = True Case "Piscine": Rows("26:27").Hidden = True Case "Restaurant": Rows("26:27").Hidden = True End Select Select Case Target.Value Case "Logements": Rows("17:22").Hidden = False Case "EHPAD": Rows("23:25").Hidden = False Case "Hotel*": Rows("23:25").Hidden = False Case "Hopital": Rows("23:25").Hidden = False Case "Hotel**": Rows("23:25").Hidden = False Case "Hotel***": Rows("23:25").Hidden = False Case "Gymnase": Rows("23:25").Hidden = False Case "Commerce": Rows("23:25").Hidden = False Case "Piscine": Rows("23:25").Hidden = False Case "Etablissement scolaire": Rows("23:27").Hidden = False Case "Restaurant": Rows("23:25").Hidden = False End Select End If End Sub
Merci d'avance pour votre aide !![]()
Partager