Afficher/masquer (avec une case à cocher) des cellules dans une plage variable
Résolu/Fermé
Vunsant
Messages postés
10
Date d'inscription
vendredi 23 novembre 2018
Statut
Membre
Dernière intervention
18 décembre 2018
-
23 nov. 2018 à 17:49
Vunsant Messages postés 10 Date d'inscription vendredi 23 novembre 2018 Statut Membre Dernière intervention 18 décembre 2018 - 18 déc. 2018 à 11:43
Vunsant Messages postés 10 Date d'inscription vendredi 23 novembre 2018 Statut Membre Dernière intervention 18 décembre 2018 - 18 déc. 2018 à 11:43
A voir également:
- Afficher/masquer (avec une case à cocher) des cellules dans une plage variable
- Aller à la ligne dans une cellule excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Masquer une conversation whatsapp - Guide
- Comment faire une liste déroulante dans excel à partir d'une plage nommée ? - Guide
- Verrouiller des cellules excel - Guide
2 réponses
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
Ambassadeur
1 554
23 nov. 2018 à 20:20
23 nov. 2018 à 20:20
bonjour, peux-tu donner quelques exemples de ce à quoi tu penses quand tu écris "les cellules désignées soient relatives au total des cellules"?
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
24 nov. 2018 à 11:23
24 nov. 2018 à 11:23
Bonjour,
Un essai en suivant le code d'origine avec l'aide de ce lien:
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel#recherche-multiple
a adapter car je ne vois pas très bien pouvoir suivre les Item1, Item2 etc. avec ce code
Cela manque de précision!
Un essai en suivant le code d'origine avec l'aide de ce lien:
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel#recherche-multiple
Option Explicit Dim ligne As Integer Dim plage As Range Dim colonne As String Private Sub CheckBox1_Click() If CheckBox1.Value = True Then colonne = "C" Principale ("Compétence 1") Principale ("Compétence 2") Else Rows("1:100").EntireRow.Hidden = False End If End Sub Private Sub CheckBox2_Click() If CheckBox2.Value = True Then colonne = "D" Principale ("Tâche1") Principale ("Tâche2") Else Rows("1:100").EntireRow.Hidden = False End If End Sub Private Sub CheckBox3_Click() If CheckBox3.Value = True Then colonne = "E" Principale ("Item1") Principale ("Item2") Principale ("Item3") Principale ("Item4") Else Rows("1:100").EntireRow.Hidden = False End If End Sub Sub Principale(ByVal nom As String) Dim Lignes(), i As Long Dim Texte As String Dim plage As Range Dim Flag As Boolean Set plage = Sheets("Feuil1").Range(colonne & ":" & colonne) 'plage de recherche Texte = nom 'expression cherchée Flag = Find_Next(plage, Texte, Lignes()) 'appel de la fonction If Flag Then 'si fonction retourne Vrai = expression trouvée dans la plage For i = LBound(Lignes) To UBound(Lignes) 'restitution des lignes correspondantes ligne = Lignes(i) Range(ligne & ":" & ligne).EntireRow.Hidden = True Next i Else MsgBox "L'expression : " & Texte & " n'a pas été trouvée dans la plage : " & plage.Address End If End Sub 'Sources : Michel_m 'http://www.commentcamarche.net/forum/affich-31432413-importation-de-donnees-sans-doublons#9 Function Find_Next(Rng As Range, Texte As String, Tbl()) As Boolean Dim Nbre As Integer, Lig As Long, Cptr As Long On Error Resume Next Nbre = Application.CountIf(Rng, Texte) If Nbre > 0 Then ReDim Tbl(Nbre - 1) Lig = 1 For Cptr = 0 To Nbre - 1 Lig = Rng.Find(Texte, Cells(Lig, Rng.Column), xlValues).Row Tbl(Cptr) = Lig Next Else GoTo Absent End If Find_Next = True Exit Function Absent: Find_Next = False End Function
a adapter car je ne vois pas très bien pouvoir suivre les Item1, Item2 etc. avec ce code
Cela manque de précision!
Vunsant
Messages postés
10
Date d'inscription
vendredi 23 novembre 2018
Statut
Membre
Dernière intervention
18 décembre 2018
24 nov. 2018 à 12:50
24 nov. 2018 à 12:50
Merci beaucoup ! je vais tester ça.
En l’occurrence, l'emplacement des colonnes est identifiée précisément, non ? Je pense que la solution réside peut être aussi dans le contenu des cellules (afin de les identifier individuellement plutôt que leur place même si cela risque de poser des problèmes en cas de doublon. Je vais explorer le lien que tu me donne et tester ce que tu proposes.
Merci encore !
En l’occurrence, l'emplacement des colonnes est identifiée précisément, non ? Je pense que la solution réside peut être aussi dans le contenu des cellules (afin de les identifier individuellement plutôt que leur place même si cela risque de poser des problèmes en cas de doublon. Je vais explorer le lien que tu me donne et tester ce que tu proposes.
Merci encore !
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
24 nov. 2018 à 16:25
24 nov. 2018 à 16:25
un essai, voir si cela convient:
https://www.cjoint.com/c/HKypyfoCaIQ
@+ Le Pivert
https://www.cjoint.com/c/HKypyfoCaIQ
@+ Le Pivert
Vunsant
Messages postés
10
Date d'inscription
vendredi 23 novembre 2018
Statut
Membre
Dernière intervention
18 décembre 2018
24 nov. 2018 à 16:44
24 nov. 2018 à 16:44
J'ai déjà fait un test avec le code précédent que tu as envoyé. ça marche hormis le fait qu'il faudrait l'action des cases (c'est à dire quand la case est cochée, les paramètres liés s'affichent). En revanche le doc que tu as envoyé ne semble pas fonctionner !
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
24 nov. 2018 à 17:00
24 nov. 2018 à 17:00
Qu'est ce qui ne fonctionne pas?
Quand on clique sur une checkbox les lignes vides se masquent, au second clic elles s'affichent de nouveau.
Ce n'est pas le résultat attendu?
Quand on clique sur une checkbox les lignes vides se masquent, au second clic elles s'affichent de nouveau.
Ce n'est pas le résultat attendu?
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
26 nov. 2018 à 09:42
26 nov. 2018 à 09:42
une nouvelle mouture:
https://www.cjoint.com/c/HKAiPHEq4HQ
@+ Le Pivert
https://www.cjoint.com/c/HKAiPHEq4HQ
@+ Le Pivert
23 nov. 2018 à 20:31
En effet, je suis surement pas très clair...
J'ai dis ça car je suppose que la solution de mon problème réside dans le fait que les cellules concernées par l'affichage/masquage doivent être des variables. Mais ma question est : "des variables par rapport à quoi ?". J'ai donc citer le total de cellule mobilisées dans mon tableau comme une variable. Je crois que c'est ce que propose Pijaku (dans l'article linké) à travers le code suivant :
Dans ce code, la variable est la dernière ligne du tableau il me semble. C'est à peu prêt là où je veux en venir. Mais je n'arrive pas à intégrer un tel modèle à ma feuille de calcul et par extension au système que je souhaite mettre en place.
Merci d'avance,
23 nov. 2018 à 21:14
Modifié le 23 nov. 2018 à 23:13
- Actuellement (dans le tableur) il n'y a aucune variable, juste des cellules désignées directement par des toggle pour les afficher ou masquer. Ainsi quand j'en rajoute une après avoir fait ma programmation, ça décale tout.
- je me dis ainsi que si on rend les cellules relatives entre elles, ça pourra débloquer le problème. Comme si on leur donnait des rang.
- Avec un exemple précis : le paramètre compétence est par exemple lié à la quatrième ligne sur n ligne.
Le but final étant que je puisse ajouter des lignes ou des items sans modifier la programmation des items déjà existants.
23 nov. 2018 à 23:09
c'est un peu compliqué de te donner une réponse concrète si tu ne dis pas précisément ce que tu veux obtenir.
24 nov. 2018 à 00:07