Masquer des lignes en fonction de la valeur d'une cellule
Résolu/Fermé
Luke94
Messages postés
61
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
13 novembre 2023
-
5 nov. 2015 à 21:17
Luke94 Messages postés 61 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 13 novembre 2023 - 17 nov. 2015 à 21:57
Luke94 Messages postés 61 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 13 novembre 2023 - 17 nov. 2015 à 21:57
A voir également:
- Masquer une ligne excel sous condition sans macro
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
23 réponses
Mike-31
Messages postés
18352
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 décembre 2024
5 110
16 nov. 2015 à 00:21
16 nov. 2015 à 00:21
Re,
si tu nommes ton tableau tu peux utiliser le nom de ta plage et dans les lignes de code tu remplaces
Range("A22:A49")
par
Range("TAB10")
et même encore plus court par simplement [TAB10]
toute fois cette dernière est plus difficile à interpréter par les novices ou les personnes qui auraient à intervenir
on pourrait également écrire une constante en début de code qui faciliterait l'adaptation du code à d'autres tableaux en ne modifiant qu'une seule ligne de code.
demain il me sera difficile de te faire une proposition, mais je reviendrais
si tu nommes ton tableau tu peux utiliser le nom de ta plage et dans les lignes de code tu remplaces
Range("A22:A49")
par
Range("TAB10")
et même encore plus court par simplement [TAB10]
toute fois cette dernière est plus difficile à interpréter par les novices ou les personnes qui auraient à intervenir
on pourrait également écrire une constante en début de code qui faciliterait l'adaptation du code à d'autres tableaux en ne modifiant qu'une seule ligne de code.
demain il me sera difficile de te faire une proposition, mais je reviendrais
Mike-31
Messages postés
18352
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
21 décembre 2024
5 110
Modifié par Mike-31 le 16/11/2015 à 21:18
Modifié par Mike-31 le 16/11/2015 à 21:18
Re,
pour revenir à la création d'une constante en début de code afin de simplifier les adaptations à d'autres tableaux ou modifier le nombre de lignes
ouvre le visual basic de l'onglet concerné, dans ton exemple de fichier tu n'as qu'un onglet "ERMODELE", donc clic droit sur l'onglet/Visualiser le code
tout en haut avant le premier code colle une de ces deux lignes, la première prend en compte les lignes 22 à 49 ou la deuxième ligne prend en compte une plage nommée, à toi de choisir l'une ou l'autre
ou
ensuite dans tes codes tu vas remplacer l'adresse de ta plage par le nom que j'ai donné à la constante Plage, exemple
If CheckBox1 And CheckBox14 Or CheckBox15 Or CheckBox16 Or CheckBox17 = True Then Range("A22:A49").EntireRow.Hidden = True
remplacé par
If CheckBox1 And CheckBox14 Or CheckBox15 Or CheckBox16 Or CheckBox17 = True Then Range(Plage).EntireRow.Hidden = True
idem pour ces lignes
Range("A22:A49").EntireRow.Hidden = False
remplacé par
Range(Plage).EntireRow.Hidden = False
une fois que tu auras modifié les lignes de tes différents codes il te suffira de modifier uniquement la constante en début du code, soit les bornes de ta plage "A22:A49" ou le nom de ta plage nommée "TAB10" ou encore modifier l'étendue de ta plage nommée dans le gestionnaire de noms
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
pour revenir à la création d'une constante en début de code afin de simplifier les adaptations à d'autres tableaux ou modifier le nombre de lignes
ouvre le visual basic de l'onglet concerné, dans ton exemple de fichier tu n'as qu'un onglet "ERMODELE", donc clic droit sur l'onglet/Visualiser le code
tout en haut avant le premier code colle une de ces deux lignes, la première prend en compte les lignes 22 à 49 ou la deuxième ligne prend en compte une plage nommée, à toi de choisir l'une ou l'autre
Const Plage As String = "A22:A49"
ou
Const Plage As String = "TAB10"
ensuite dans tes codes tu vas remplacer l'adresse de ta plage par le nom que j'ai donné à la constante Plage, exemple
If CheckBox1 And CheckBox14 Or CheckBox15 Or CheckBox16 Or CheckBox17 = True Then Range("A22:A49").EntireRow.Hidden = True
remplacé par
If CheckBox1 And CheckBox14 Or CheckBox15 Or CheckBox16 Or CheckBox17 = True Then Range(Plage).EntireRow.Hidden = True
idem pour ces lignes
Range("A22:A49").EntireRow.Hidden = False
remplacé par
Range(Plage).EntireRow.Hidden = False
une fois que tu auras modifié les lignes de tes différents codes il te suffira de modifier uniquement la constante en début du code, soit les bornes de ta plage "A22:A49" ou le nom de ta plage nommée "TAB10" ou encore modifier l'étendue de ta plage nommée dans le gestionnaire de noms
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Luke94
Messages postés
61
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
13 novembre 2023
17 nov. 2015 à 21:57
17 nov. 2015 à 21:57
Bonsoir,
merci beaucoup pour cette nouvelle proposition. Je vais la tester dans mon code. Mais, je peux d'ores et déjà marquer comme résolu ma question grâce à toi.
Encore un grand merci pour ton aide précieuse !
Bonne soirée !
merci beaucoup pour cette nouvelle proposition. Je vais la tester dans mon code. Mais, je peux d'ores et déjà marquer comme résolu ma question grâce à toi.
Encore un grand merci pour ton aide précieuse !
Bonne soirée !