Aide à l'optimisation de son code VBA
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.
Code:
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 |
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 ?
Merci d'avance pour votre aide ! :D