Masquer une ligne sous conditions
Résolu/Fermé
Jarra80
Jarra80
- Messages postés
- 5
- Date d'inscription
- lundi 3 août 2015
- Statut
- Membre
- Dernière intervention
- 4 août 2015
Jarra80
- Messages postés
- 5
- Date d'inscription
- lundi 3 août 2015
- Statut
- Membre
- Dernière intervention
- 4 août 2015
A voir également:
- Masquer des lignes excel sous condition
- Masquer ligne excel sous condition - Meilleures réponses
- Google sheet masquer ligne sous condition - Meilleures réponses
- Masquer une ligne sous condition ✓ - Forum - Excel
- Masquer une ligne excel sous condition sans macro ✓ - Forum - Excel
- Masquer une ligne excel sous condition ✓ - Forum - Excel
- Masquer des lignes avec condition (si possible sans macro) - Forum - Excel
- Masquer ligne sous condition - Forum - Excel
6 réponses
Kuartz
3 août 2015 à 17:12
- Messages postés
- 850
- Date d'inscription
- vendredi 13 février 2015
- Statut
- Membre
- Dernière intervention
- 15 février 2019
3 août 2015 à 17:12
Bonjour,
Pour automatiser tout ça :
Cordialement.
Pour automatiser tout ça :
Sub TEST() Dim DL As Long, i As Long DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'A adapter, 1 est la colonne de référence pour savoir quelle est ta dernière ligne (mettre le numéro de colonne qui est remplie le plus bas du tableau) For i = 1 To DL 'A adapter également, 1 est le numéro de la ligne où commence le code If Range("B" & i) = "Non" Then 'Si la cellule B de la ligne i est égale à "Non" alors... Rows(i).Hidden = True 'Masquer la ligne concernée (i) End If Next i End Sub
Cordialement.
Jarra80
3 août 2015 à 17:27
- Messages postés
- 5
- Date d'inscription
- lundi 3 août 2015
- Statut
- Membre
- Dernière intervention
- 4 août 2015
3 août 2015 à 17:27
Merci beaucoup Kuartz !
J'ai encore une question, y-a-t-il une solution pour que cela se fasse automatique, c'est à dire que à chaque que je choisisse le "Non" dans ma cellule B4, la ligne se masque et que je n'ai donc pas besoin d'activer la macro ?
J'ai encore une question, y-a-t-il une solution pour que cela se fasse automatique, c'est à dire que à chaque que je choisisse le "Non" dans ma cellule B4, la ligne se masque et que je n'ai donc pas besoin d'activer la macro ?
Kuartz
Modifié par Kuartz le 3/08/2015 à 17:39
- Messages postés
- 850
- Date d'inscription
- vendredi 13 février 2015
- Statut
- Membre
- Dernière intervention
- 15 février 2019
Modifié par Kuartz le 3/08/2015 à 17:39
Oui bien sûr.
Dans l'éditeur VBA, vous double cliquez sur votre feuille. Vous cliquez ensuite sur (Général) en haut et vous mettez "Worksheet". A droite sera normalement écrit "SelectionChange" sinon, le mettre.
Ensuite, écrire la macro dessous.
Exemple :
Cordialement.
Dans l'éditeur VBA, vous double cliquez sur votre feuille. Vous cliquez ensuite sur (Général) en haut et vous mettez "Worksheet". A droite sera normalement écrit "SelectionChange" sinon, le mettre.
Ensuite, écrire la macro dessous.
Exemple :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim DL As Long, i As Long DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'A adapter, 1 est la colonne de référence pour savoir quelle est ta dernière ligne (mettre le numéro de colonne qui est remplie le plus bas du tableau) For i = 1 To DL 'A adapter également, 1 est le numéro de la ligne où commence le code If Range("B" & i) = "Non" Then 'Si la cellule B de la ligne i est égale à "Non" alors... Rows(i).Hidden = True 'Masquer la ligne concernée (i) End If Next i End Sub
Cordialement.
Jarra80
4 août 2015 à 10:52
- Messages postés
- 5
- Date d'inscription
- lundi 3 août 2015
- Statut
- Membre
- Dernière intervention
- 4 août 2015
4 août 2015 à 10:52
Bonjour,
Merci de votre réponse mais je n'arrive pas à la mettre en application ...
Dans la liste déroulante où il y a (Général) je dois pouvoir choisir (worksheet) ? parce que ça n'apparaît pas, je n'ai d'ailleurs la possibilité que de prendre (Général) ...
Merci de votre réponse mais je n'arrive pas à la mettre en application ...
Dans la liste déroulante où il y a (Général) je dois pouvoir choisir (worksheet) ? parce que ça n'apparaît pas, je n'ai d'ailleurs la possibilité que de prendre (Général) ...
Kuartz
4 août 2015 à 11:06
- Messages postés
- 850
- Date d'inscription
- vendredi 13 février 2015
- Statut
- Membre
- Dernière intervention
- 15 février 2019
4 août 2015 à 11:06
Oui normalement vous pouvez choisir (Worksheet). Mais peu importe, double cliquez sur votre feuille (dans le panneau de gauche (Feuil1 normalement)). Ensuite copiez collez le dernier code que je vous ai indiqué dans le cadre du dessous et le tour est joué.
michel_m
Modifié par michel_m le 4/08/2015 à 11:16
- Messages postés
- 16568
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 14 mai 2022
Modifié par michel_m le 4/08/2015 à 11:16
bonjour,
pour installer
copier ce code
sur la feuille concernée clic droit sur le nom d'onglet
visualiser le code
coller le code
Option Explicit
'-----------------
Private Sub Worksheet_Change(ByVal Target As Range)
'worksheet_change ne réagit que lorsqu'une saisie est effectuée _
contrairement à "slection_change" qui réagit lorsqu'on ckique sur B4
If Target.Address = "$B$4" Then 'limite l'action au changement dans B4
If Range("B4") = "Non" Then Rows(5).Hidden = True 'ligne 5 cachée
If Range("B4") = "Oui" Then Rows(5).Hidden = False
End If
'si B4 vide: aucune action
End If
End Sub
pour installer
copier ce code
sur la feuille concernée clic droit sur le nom d'onglet
visualiser le code
coller le code
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Jarra80
4 août 2015 à 11:50
- Messages postés
- 5
- Date d'inscription
- lundi 3 août 2015
- Statut
- Membre
- Dernière intervention
- 4 août 2015
4 août 2015 à 11:50
Merci de vos réponses mais en recopiant vos codes (et les adaptant à mon fichier bien sûr) ça ne fonctionne pas ... Alors que ça fonctionnait avant, même si je devais l'exécuter manuellement ...
A quoi cela peut-il être du ?
Quand j'ouvre l'ensemble des macros, ma macro a même disparue ...
A quoi cela peut-il être du ?
Quand j'ouvre l'ensemble des macros, ma macro a même disparue ...
Kuartz
4 août 2015 à 12:08
- Messages postés
- 850
- Date d'inscription
- vendredi 13 février 2015
- Statut
- Membre
- Dernière intervention
- 15 février 2019
4 août 2015 à 12:08
La macro n'a pas disparu. Il ne s'agit pas d'une macro, en fait pas d'un module. Il s'agit d'un code exécuté à chaque changement de sélection sur la feuille.
Dans l'onglet "Développeur", cliquer sur "Visual Basic". Double cliquez sur votre feuille dans le panneau de gauche en haut. En dessous de Microsoft Excel Objects (Feuil 1 normalement).
Copier le code suivant :
Le coller dans la partie blanche de droite.
Sortir et essayer. (le code s'exécute à chaque fois que vous sélectionnez n'importe quelle cellule de la feuille).
Cordialement.
Dans l'onglet "Développeur", cliquer sur "Visual Basic". Double cliquez sur votre feuille dans le panneau de gauche en haut. En dessous de Microsoft Excel Objects (Feuil 1 normalement).
Copier le code suivant :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim DL As Long, i As Long DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'A adapter, 1 est la colonne de référence pour savoir quelle est ta dernière ligne (mettre le numéro de colonne qui est remplie le plus bas du tableau) For i = 1 To DL 'A adapter également, 1 est le numéro de la ligne où commence le code If Range("B" & i) = "Non" Then 'Si la cellule B de la ligne i est égale à "Non" alors... Rows(i).Hidden = True 'Masquer la ligne concernée (i) End If Next i End Sub
Le coller dans la partie blanche de droite.
Sortir et essayer. (le code s'exécute à chaque fois que vous sélectionnez n'importe quelle cellule de la feuille).
Cordialement.
Kuartz
4 août 2015 à 12:09
- Messages postés
- 850
- Date d'inscription
- vendredi 13 février 2015
- Statut
- Membre
- Dernière intervention
- 15 février 2019
4 août 2015 à 12:09
Si ca ne marche pas, je vous propose de m'envoyer un fichier anonymé via le site www.cjoint.com.
Cordialement.
Cordialement.
michel_m
Modifié par michel_m le 4/08/2015 à 12:32
- Messages postés
- 16568
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 14 mai 2022
Modifié par michel_m le 4/08/2015 à 12:32
je ne sais pas si c'est à moi que tu répondais (bonjour, michel?)
j'ai rectifié un truc ou deux (end if supprimé) mais je viens de tester avec succès ma proposition suivant ta demande:
dans la cellule B4 j'ai le choix de sélectionner "Oui" ou "Non", Si B4 = "Non" je voudrais que la ligne 5 (en entier) soit masquée.
le code modifié
j'ai rectifié un truc ou deux (end if supprimé) mais je viens de tester avec succès ma proposition suivant ta demande:
dans la cellule B4 j'ai le choix de sélectionner "Oui" ou "Non", Si B4 = "Non" je voudrais que la ligne 5 (en entier) soit masquée.
le code modifié
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$4" Then 'limite l'action au changement dans B4 If Target = "Non" Then Rows(5).Hidden = True 'ligne 5 cachée If Target = "Oui" Then Rows(5).Hidden = False 'si B4 vide: aucune action End If End Sub
Jarra80
4 août 2015 à 14:08
- Messages postés
- 5
- Date d'inscription
- lundi 3 août 2015
- Statut
- Membre
- Dernière intervention
- 4 août 2015
4 août 2015 à 14:08
Bonjour et merci Kuartz et Michel,
mon problème semble résolu ! (pour l'instant!)
J'essaye d'appliquer cela dans mes différentes situations !
Merci encore
mon problème semble résolu ! (pour l'instant!)
J'essaye d'appliquer cela dans mes différentes situations !
Merci encore