Masquer une ligne sous condition
Résolu/Fermé
A voir également:
- Masquer une ligne sous condition
- Masquer conversation whatsapp - Guide
- Hors ligne instagram - Guide
- Aller à la ligne excel - Guide
- Excel cellule couleur si condition texte - Guide
- Vente en ligne particulier - Guide
19 réponses
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
26 avril 2010 à 16:57
26 avril 2010 à 16:57
Salut,
Essaye plutôt comme cela
Private Sub Worksheet_Change(ByVal Target As Range)
Set MyPlage = Range("A7:A100")
For Each cell In MyPlage
If cell.Value = [C4] Then
cell.EntireRow.Hidden = True
ElseIf cell.Value <> [C4] Then
cell.EntireRow.Hidden = False
End If
Next
End Sub
Essaye plutôt comme cela
Private Sub Worksheet_Change(ByVal Target As Range)
Set MyPlage = Range("A7:A100")
For Each cell In MyPlage
If cell.Value = [C4] Then
cell.EntireRow.Hidden = True
ElseIf cell.Value <> [C4] Then
cell.EntireRow.Hidden = False
End If
Next
End Sub
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 décembre 2023
7 212
Modifié par eriiic le 26/04/2010 à 21:31
Modifié par eriiic le 26/04/2010 à 21:31
Bonsoir,
Et un simple filtre automatique sur la colonne ayant le n° du service ne suffit pas ????
C'est exactement le fonctionnement que tu décris : une liste déroulante où l'on choisi ce qui doit être affiché....
eric
Et un simple filtre automatique sur la colonne ayant le n° du service ne suffit pas ????
C'est exactement le fonctionnement que tu décris : une liste déroulante où l'on choisi ce qui doit être affiché....
eric
Bonjour Eric,
Oui j'ai pensé à mettre un filtre automatique, mais en fait j'essaye de faire deux tableau en lien un synthétique et un autre qui afficherait les détails par service.
Donc je voudrai au final arriver à insérer un bouton sur la feuille du tableau synthétique « afficher détail » qui ouvrirai une autre feuille Excel mais n'afficherai que le détail du service sélectionner dans la 1ère feuille.
La macro de Mike après une `tite modification semble marcher, heuu si tu as une idée sur la suite des macros à insérer, merci de bien vouloir me les indiquer.
Laure
Oui j'ai pensé à mettre un filtre automatique, mais en fait j'essaye de faire deux tableau en lien un synthétique et un autre qui afficherait les détails par service.
Donc je voudrai au final arriver à insérer un bouton sur la feuille du tableau synthétique « afficher détail » qui ouvrirai une autre feuille Excel mais n'afficherai que le détail du service sélectionner dans la 1ère feuille.
La macro de Mike après une `tite modification semble marcher, heuu si tu as une idée sur la suite des macros à insérer, merci de bien vouloir me les indiquer.
Laure
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
27 avril 2010 à 11:28
27 avril 2010 à 11:28
Re,
Tu colles ce code dans un module et tu crées un bouton sur la feuille du tableau synthétique en supposant que le deuxième tableau se trouve sur la feuille3 (à modifier)
pour afficher toutes le valeurs effacer le contenu en C4 et activer le code ou on sépare le code avec une partie dans la Worksheet pour un retour automatique pour un affichage total lorsque C4 est vide
Sub Affiche_Détail()
Sheets("Feuil3").Activate
Set MyPlage = Range("A7:A100")
If [C4] = "" Then
MyPlage.EntireRow.Hidden = False
Exit Sub
End If
For Each cell In MyPlage
If cell.Value = [C4] Then
cell.EntireRow.Hidden = True
ElseIf cell.Value <> [C4] Then
cell.EntireRow.Hidden = False
End If
Next
End Sub
Tu colles ce code dans un module et tu crées un bouton sur la feuille du tableau synthétique en supposant que le deuxième tableau se trouve sur la feuille3 (à modifier)
pour afficher toutes le valeurs effacer le contenu en C4 et activer le code ou on sépare le code avec une partie dans la Worksheet pour un retour automatique pour un affichage total lorsque C4 est vide
Sub Affiche_Détail()
Sheets("Feuil3").Activate
Set MyPlage = Range("A7:A100")
If [C4] = "" Then
MyPlage.EntireRow.Hidden = False
Exit Sub
End If
For Each cell In MyPlage
If cell.Value = [C4] Then
cell.EntireRow.Hidden = True
ElseIf cell.Value <> [C4] Then
cell.EntireRow.Hidden = False
End If
Next
End Sub
Bonjour Mike
Je n'ai pas encore pu tester ta macro car j'ai dû modifier mon fichier.
Pourrais-tu m'indiquer comment créer un bouton sur Excel et comment faire pour que la macro se déclenche automatiquement dès qu'un choix est sélectionné.
J'ai bidouillé à partir d'exemples cette macro, et j'aimerai qu'elle s'exécute automatiquement chaque fois que le fichier est mis à jour par les différents utilisateurs (qui le remplissent manuellement).
Sub Masquer_les_lignes_inutiles()
Range("g2:g50").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub
Merci d'avance.
Laure
Je n'ai pas encore pu tester ta macro car j'ai dû modifier mon fichier.
Pourrais-tu m'indiquer comment créer un bouton sur Excel et comment faire pour que la macro se déclenche automatiquement dès qu'un choix est sélectionné.
J'ai bidouillé à partir d'exemples cette macro, et j'aimerai qu'elle s'exécute automatiquement chaque fois que le fichier est mis à jour par les différents utilisateurs (qui le remplissent manuellement).
Sub Masquer_les_lignes_inutiles()
Range("g2:g50").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub
Merci d'avance.
Laure
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
27 avril 2010 à 22:16
27 avril 2010 à 22:16
Re,
Pour exécuter une macro automatiquement, plusieurs possibilités, mais la pls simple est de mettre le code dans les propriétés de la feuille concernée (clic droit sur l'onglet de feuille/Visualiser le code)
et mettre le code à exécuter dans
Private Sub Worksheet_Change(ByVal Target As Range)
mettre le code à exécuter ici, dès qu'une valeur change, le code s'exécute
End sub
ou
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ici le code s'exécutera chaque fois que la cellule active changera
End sub
Un déclenchement par bouton ne se fera que sur ordre et pour créer un bouton deux possibilités avec la barre d'outils formulaire dans ce cas associer la macro au bouton (clic droit sur le bouton/Affecter une macro)
ou avec la barre d'outils contrôle ce qui génére ce début de code
Private Sub CommandButton1_Click()
et ici on place soit le code à exécuter
soit le nom de la mocro à exécuter
End Sub
Pour le code ci dessous, que veux tu exactement faire, masquer les lignes mais sur quel critère
Sub Masquer_les_lignes_inutiles()
Range("g2:g50").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub
Pour exécuter une macro automatiquement, plusieurs possibilités, mais la pls simple est de mettre le code dans les propriétés de la feuille concernée (clic droit sur l'onglet de feuille/Visualiser le code)
et mettre le code à exécuter dans
Private Sub Worksheet_Change(ByVal Target As Range)
mettre le code à exécuter ici, dès qu'une valeur change, le code s'exécute
End sub
ou
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ici le code s'exécutera chaque fois que la cellule active changera
End sub
Un déclenchement par bouton ne se fera que sur ordre et pour créer un bouton deux possibilités avec la barre d'outils formulaire dans ce cas associer la macro au bouton (clic droit sur le bouton/Affecter une macro)
ou avec la barre d'outils contrôle ce qui génére ce début de code
Private Sub CommandButton1_Click()
et ici on place soit le code à exécuter
soit le nom de la mocro à exécuter
End Sub
Pour le code ci dessous, que veux tu exactement faire, masquer les lignes mais sur quel critère
Sub Masquer_les_lignes_inutiles()
Range("g2:g50").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub
Bonsoir,
Merci pour ton aide. Sans vouloir abuser...
Je voudrai que cette macro me masque les lignes dès que la cellule de la colonne G de la même ligne est vide.
Mais là en fait je viens de constater que du coup elle me masque tout mon tableau même les lignes non remplies, ce que je ne veux pas.
Serait-il possible de modifier cette macro afin qu'elle me masque les lignes en question si la cellule correspondante de la colonne G est vide et la cellule correspondante de la colonne A non vide.
Merci d'avance
Laure
Merci pour ton aide. Sans vouloir abuser...
Je voudrai que cette macro me masque les lignes dès que la cellule de la colonne G de la même ligne est vide.
Mais là en fait je viens de constater que du coup elle me masque tout mon tableau même les lignes non remplies, ce que je ne veux pas.
Serait-il possible de modifier cette macro afin qu'elle me masque les lignes en question si la cellule correspondante de la colonne G est vide et la cellule correspondante de la colonne A non vide.
Merci d'avance
Laure
Bonsoir,
J'ai bien réussi à insérer un bouton sur la Feuil1 à lui affecter une macro afin d'afficher le détail qui se situe en Feuil4.
Mais là je ne sais pas pourquoi ça ne marche pas, ça me signale « Impossible d'exécuter le code en mode arrêt » ou Erreur d'exécution "9"; L'indice n'appartient pas à la sélection »???
Voici la macro :
Sub Afficher_Détail()
Sheets("Feuil4").Activate
Set MyPlage = Range("A2:A1511")
If [C4] = "" Then
MyPlage.EntireRow.Hidden = False
Exit Sub
End If
For Each cell In MyPlage
If cell.Value = [C4] Then
cell.EntireRow.Hidden = True
ElseIf cell.Value <> [C4] Then
cell.EntireRow.Hidden = False
End If
Next
End Sub
Merci d'avance
Laure
J'ai bien réussi à insérer un bouton sur la Feuil1 à lui affecter une macro afin d'afficher le détail qui se situe en Feuil4.
Mais là je ne sais pas pourquoi ça ne marche pas, ça me signale « Impossible d'exécuter le code en mode arrêt » ou Erreur d'exécution "9"; L'indice n'appartient pas à la sélection »???
Voici la macro :
Sub Afficher_Détail()
Sheets("Feuil4").Activate
Set MyPlage = Range("A2:A1511")
If [C4] = "" Then
MyPlage.EntireRow.Hidden = False
Exit Sub
End If
For Each cell In MyPlage
If cell.Value = [C4] Then
cell.EntireRow.Hidden = True
ElseIf cell.Value <> [C4] Then
cell.EntireRow.Hidden = False
End If
Next
End Sub
Merci d'avance
Laure
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
Modifié par Mike-31 le 27/04/2010 à 23:48
Modifié par Mike-31 le 27/04/2010 à 23:48
Re,
une macro pour masquer les lignes vides par rapport aux cellule vide plage G2 à G50
et une pour afficher les lignes masquées
Sub Masquer_Lignes_Vides()
Application.ScreenUpdating = False
Range("G2:G50").Select
For Each Cell In Selection
Cpt = 0
For i = 0 To 7
If Cell.Offset(0, i) <> "" Then
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
Sub Afficher_Lignes_Vides()
Application.ScreenUpdating = False
Range("G2:G50").Select
For Each Cell In Selection
Cpt = 0
For i = 0 To 7
If Cell.Offset(0, i) = "" Then
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
Pour d'exécuter le code en mode arrêt » ou Erreur d'exécution "9"; L'indice n'appartient pas à la sélection »???
Le code s'applique à la feuille4 dans ton classeur existe t elle !
Ensuite l'erreur à bloqué le visual pour le réinitialiser
Clic sur Alt et touche F11 ou clic droit sur l'onglet de feuille/visualiser le code
Execution/Réinitialiser
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
une macro pour masquer les lignes vides par rapport aux cellule vide plage G2 à G50
et une pour afficher les lignes masquées
Sub Masquer_Lignes_Vides()
Application.ScreenUpdating = False
Range("G2:G50").Select
For Each Cell In Selection
Cpt = 0
For i = 0 To 7
If Cell.Offset(0, i) <> "" Then
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
Sub Afficher_Lignes_Vides()
Application.ScreenUpdating = False
Range("G2:G50").Select
For Each Cell In Selection
Cpt = 0
For i = 0 To 7
If Cell.Offset(0, i) = "" Then
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
Pour d'exécuter le code en mode arrêt » ou Erreur d'exécution "9"; L'indice n'appartient pas à la sélection »???
Le code s'applique à la feuille4 dans ton classeur existe t elle !
Ensuite l'erreur à bloqué le visual pour le réinitialiser
Clic sur Alt et touche F11 ou clic droit sur l'onglet de feuille/visualiser le code
Execution/Réinitialiser
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Bonjour
J'ai essayé de modifier ta macro pour l'adapter à mon tableau sans succès ...
En fait je voudrai qu'elle masque certaines lignes sous 2 conditions
Masque ligne 2 si G2= vide et A2= non vide. Je ne sais pas si c'est possible en sachant que la colonne A contient des cellules fusionner (10 cellules pour être exacte).
La Feuil4 existe bien, donc mon bouton devrait marcher ???? ?
Merci d'avance
Laure
J'ai essayé de modifier ta macro pour l'adapter à mon tableau sans succès ...
En fait je voudrai qu'elle masque certaines lignes sous 2 conditions
Masque ligne 2 si G2= vide et A2= non vide. Je ne sais pas si c'est possible en sachant que la colonne A contient des cellules fusionner (10 cellules pour être exacte).
La Feuil4 existe bien, donc mon bouton devrait marcher ???? ?
Merci d'avance
Laure
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
28 avril 2010 à 10:45
28 avril 2010 à 10:45
Re,
les cellules fusionnées font mauvais ménage avec les formules ou code, faut voir.
Ensuite il est possible d'exécuter le code avec en A cellule non vide et en G cellule vide
si ton fichier ne contient pas de données confidentielles peux tu le mettre sur le forum que l'on voit ce qui cloche, soit sur un post soit en message privé en cliquant sur mon pseudo et coller le lien généré avec ce lien (clic/parcourir/créer le lien/autoriser l'accés)
https://www.cjoint.com/
les cellules fusionnées font mauvais ménage avec les formules ou code, faut voir.
Ensuite il est possible d'exécuter le code avec en A cellule non vide et en G cellule vide
si ton fichier ne contient pas de données confidentielles peux tu le mettre sur le forum que l'on voit ce qui cloche, soit sur un post soit en message privé en cliquant sur mon pseudo et coller le lien généré avec ce lien (clic/parcourir/créer le lien/autoriser l'accés)
https://www.cjoint.com/
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
Modifié par Mike-31 le 28/04/2010 à 14:34
Modifié par Mike-31 le 28/04/2010 à 14:34
Re,
Supprime l'ancien code dans le modue et
Colle ces deux codes à la place.
Afficher_Détail pour masquer les cellules vides correspondantes au numéro de service sélectionné sur la feuille Récapitulatif
Affiche_Ligne_Vide affiche les lignes masquées correspondantes au numéro de service sélectionné sur la feuille Récapitulatif
Il est possible d'inclure dans le code le retour à la feuille Récapitulatif si tu le souhaites
Sub Afficher_Détail()
Dim x
Application.ScreenUpdating = False
Sheets("Récapitulatif").Range("C4").Select
x = ActiveCell.Value
Sheets("C").Select
With Worksheets("C").Range("A:A")
Set c = .Find(x, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
End If
End With
Range(firstAddress).Offset(0, 7).Select
Range(ActiveCell.Offset(9, 0), ActiveCell).Select
Set MyPlage = Selection
For Each cell In MyPlage
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
Sub Affiche_Ligne_Vide()
Dim x
Application.ScreenUpdating = False
Sheets("Récapitulatif").Range("C4").Select
x = ActiveCell.Value
Sheets("C").Select
With Worksheets("C").Range("A:A")
Set c = .Find(x, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
End If
End With
Range(firstAddress).Offset(0, 7).Select
Range(ActiveCell.Offset(9, 0), ActiveCell).Select
Set MyPlage = Selection
For Each cell In MyPlage
If cell.Value = "" Then
cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Supprime l'ancien code dans le modue et
Colle ces deux codes à la place.
Afficher_Détail pour masquer les cellules vides correspondantes au numéro de service sélectionné sur la feuille Récapitulatif
Affiche_Ligne_Vide affiche les lignes masquées correspondantes au numéro de service sélectionné sur la feuille Récapitulatif
Il est possible d'inclure dans le code le retour à la feuille Récapitulatif si tu le souhaites
Sub Afficher_Détail()
Dim x
Application.ScreenUpdating = False
Sheets("Récapitulatif").Range("C4").Select
x = ActiveCell.Value
Sheets("C").Select
With Worksheets("C").Range("A:A")
Set c = .Find(x, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
End If
End With
Range(firstAddress).Offset(0, 7).Select
Range(ActiveCell.Offset(9, 0), ActiveCell).Select
Set MyPlage = Selection
For Each cell In MyPlage
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
Sub Affiche_Ligne_Vide()
Dim x
Application.ScreenUpdating = False
Sheets("Récapitulatif").Range("C4").Select
x = ActiveCell.Value
Sheets("C").Select
With Worksheets("C").Range("A:A")
Set c = .Find(x, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
End If
End With
Range(firstAddress).Offset(0, 7).Select
Range(ActiveCell.Offset(9, 0), ActiveCell).Select
Set MyPlage = Selection
For Each cell In MyPlage
If cell.Value = "" Then
cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Re,
Cette macro me permet d'afficher le détail, mais ne me masque rien.
J'avoue que je ne comprends pas du tout ta macro... je me suis contenter d'essayer de l'exécuter.
Mais pourrais tu la modifier afin qu'elle masque les lignes vides de la Feuil4 si la cellule de la colonne H est vide et la cellule correspondante de la colonne A non vide; et masquer aussi si la valeur de la cellule de la colonne A différent du service sélectionné sur le récapitulatif.
Merci
Laure
Cette macro me permet d'afficher le détail, mais ne me masque rien.
J'avoue que je ne comprends pas du tout ta macro... je me suis contenter d'essayer de l'exécuter.
Mais pourrais tu la modifier afin qu'elle masque les lignes vides de la Feuil4 si la cellule de la colonne H est vide et la cellule correspondante de la colonne A non vide; et masquer aussi si la valeur de la cellule de la colonne A différent du service sélectionné sur le récapitulatif.
Merci
Laure
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
28 avril 2010 à 17:07
28 avril 2010 à 17:07
Re,
Je peux écrire un code qui s'appliquerait à l'ensemble des numéros de service ce qui multiplierait la longueur du code par huit
Ou plus simple on masque systématiquement toutes les lignes vides colonne H
Que veux tu dire par
Masquer aussi si la valeur de la cellule de la colonne A différent du service sélectionné sur le récapitulatif
Souhaites-tu masquer toutes les lignes sauf celle correspondantes au numéro du service sélectionné en C4
https://www.cjoint.com/?eCrgZosAUI
Je peux écrire un code qui s'appliquerait à l'ensemble des numéros de service ce qui multiplierait la longueur du code par huit
Ou plus simple on masque systématiquement toutes les lignes vides colonne H
Que veux tu dire par
Masquer aussi si la valeur de la cellule de la colonne A différent du service sélectionné sur le récapitulatif
Souhaites-tu masquer toutes les lignes sauf celle correspondantes au numéro du service sélectionné en C4
https://www.cjoint.com/?eCrgZosAUI
Re,
Merci de m'aider !!
Oui, je voudrai que lorsque l'on clique sur « Afficher détail »
La Feuil4 s'affiche et si :
- A2 = C4 et G2 <> "vide" Afficher ligne 2
- A2 = C4 et G2 = "vide" Afficher ligne 2
- A2 <> C4 et G2 <> "vide" Masquer la ligne 2
- A2 <> C4 et G2 = "vide" Masquer la ligne 2
- A2 = "vide" et G2 <> "vide" Afficher ligne 2
- A2 = "vide" et G2 = "vide" Masquer ligne 2
Manuellement j'arrive à masquer même comme j'ai des cellules fusionnées en colonne A ; donc j'aimerai pouvoir automatiser cela.
J'espère avoir été claire.
Merci d'avance !!
Laure
Merci de m'aider !!
Oui, je voudrai que lorsque l'on clique sur « Afficher détail »
La Feuil4 s'affiche et si :
- A2 = C4 et G2 <> "vide" Afficher ligne 2
- A2 = C4 et G2 = "vide" Afficher ligne 2
- A2 <> C4 et G2 <> "vide" Masquer la ligne 2
- A2 <> C4 et G2 = "vide" Masquer la ligne 2
- A2 = "vide" et G2 <> "vide" Afficher ligne 2
- A2 = "vide" et G2 = "vide" Masquer ligne 2
Manuellement j'arrive à masquer même comme j'ai des cellules fusionnées en colonne A ; donc j'aimerai pouvoir automatiser cela.
J'espère avoir été claire.
Merci d'avance !!
Laure
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
28 avril 2010 à 17:54
28 avril 2010 à 17:54
Re,
On est loin des explications de départ, j'essaye de regarder dans la soirée,
On est loin des explications de départ, j'essaye de regarder dans la soirée,
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
28 avril 2010 à 21:10
28 avril 2010 à 21:10
Re,
Essayons d'être clair, dans tes explications
A2 = C4 et G2 <> "vide" Afficher ligne 2 que veux tu dire afficher 2 ligne en H et masquer les autres ou afficher la deuxième ligne ou encore afficher les lignes non vide + 2
A2 = C4 et G2 = "vide" Afficher ligne 2
prends le fichier que je t'ai retourné exemple feuille récapitulatif C4 = 13
Feuille C en A2 il y a 13 en G2 15/04/10 quelle ligne dois je masquer en H
idem pour A12 Récapitulatif = 11 A12=11 G12=15/04/10 que doit il y avoir en H
en A62 rien en G62 rien que doit il y avoir en H
Essayons d'être clair, dans tes explications
A2 = C4 et G2 <> "vide" Afficher ligne 2 que veux tu dire afficher 2 ligne en H et masquer les autres ou afficher la deuxième ligne ou encore afficher les lignes non vide + 2
A2 = C4 et G2 = "vide" Afficher ligne 2
prends le fichier que je t'ai retourné exemple feuille récapitulatif C4 = 13
Feuille C en A2 il y a 13 en G2 15/04/10 quelle ligne dois je masquer en H
idem pour A12 Récapitulatif = 11 A12=11 G12=15/04/10 que doit il y avoir en H
en A62 rien en G62 rien que doit il y avoir en H
Bonsoir,
Mince là je suis gourée de lettre...
C'est :
- A2 = C4 et H2 <> "vide" Afficher ligne 2
- A2 = C4 et H2 = "vide" Afficher ligne 2
- A2 <> C4 et H2 <> "vide" Masquer la ligne 2
- A2 <> C4 et H2 = "vide" Masquer la ligne 2
- A2 = "vide" et H2 <> "vide" Afficher ligne 2
- A2 = "vide" et H2 = "vide" Masquer ligne 2
En fait tu vois je voudrai que
- les cellules vides de la colonne H n'apparaissent pas
- afficher le détail par service
Je voudrai obtenir le résultat affiché en C, si je sélectionne le service 13
Laure
Mince là je suis gourée de lettre...
C'est :
- A2 = C4 et H2 <> "vide" Afficher ligne 2
- A2 = C4 et H2 = "vide" Afficher ligne 2
- A2 <> C4 et H2 <> "vide" Masquer la ligne 2
- A2 <> C4 et H2 = "vide" Masquer la ligne 2
- A2 = "vide" et H2 <> "vide" Afficher ligne 2
- A2 = "vide" et H2 = "vide" Masquer ligne 2
En fait tu vois je voudrai que
- les cellules vides de la colonne H n'apparaissent pas
- afficher le détail par service
Je voudrai obtenir le résultat affiché en C, si je sélectionne le service 13
Laure
le lien
https://www.cjoint.com/?eCv6oDpZek
là j'ai fais les modifications que j'aimerai manuellement
Encore merci de m'aider Mike
https://www.cjoint.com/?eCv6oDpZek
là j'ai fais les modifications que j'aimerai manuellement
Encore merci de m'aider Mike
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
28 avril 2010 à 23:01
28 avril 2010 à 23:01
Re,
Je commence à comprendre, si page Récapitulatif en C4 tu sélectionnes 13 par exemple tu veux que les cellules en A qui contiennent 13 s'affichent en ne conservant que les lignes non vie en H visible et on masque le reste du tableau
Je commence à comprendre, si page Récapitulatif en C4 tu sélectionnes 13 par exemple tu veux que les cellules en A qui contiennent 13 s'affichent en ne conservant que les lignes non vie en H visible et on masque le reste du tableau
Bonjour,
Pourriez-vous m'aider s'il vous plaît.
Je voudrai à l'aide d'une macro masquer sous deux conditions les lignes d'un tableau sous Excel.
Sur le tableau de la feuille 1 si :
- A2 = C4 et H2 <> "vide" Afficher ligne 2
- A2 = C4 et H2 = "vide" Afficher ligne 2
- A2 <> C4 et H2 <> "vide" Masquer la ligne 2
- A2 <> C4 et H2 = "vide" Masquer la ligne 2
- A2 = "vide" et H2 <> "vide" Afficher ligne 2
- A2 = "vide" et H2 = "vide" Masquer ligne 2
En sachant que C4 est une valeur qui s'affichera sur une feuille Excel 2.
Merci d'avance.
Laure
Pourriez-vous m'aider s'il vous plaît.
Je voudrai à l'aide d'une macro masquer sous deux conditions les lignes d'un tableau sous Excel.
Sur le tableau de la feuille 1 si :
- A2 = C4 et H2 <> "vide" Afficher ligne 2
- A2 = C4 et H2 = "vide" Afficher ligne 2
- A2 <> C4 et H2 <> "vide" Masquer la ligne 2
- A2 <> C4 et H2 = "vide" Masquer la ligne 2
- A2 = "vide" et H2 <> "vide" Afficher ligne 2
- A2 = "vide" et H2 = "vide" Masquer ligne 2
En sachant que C4 est une valeur qui s'affichera sur une feuille Excel 2.
Merci d'avance.
Laure
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
Modifié par Mike-31 le 29/04/2010 à 22:56
Modifié par Mike-31 le 29/04/2010 à 22:56
Re,
Je ne t'oublie pas, mais je donne des cours d'informatique qui me prend pas mal de temps.
regarde ce fichier qui répond a ton dernier post d'hier soir
https://www.cjoint.com/?eDw4kgBlwe
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Je ne t'oublie pas, mais je donne des cours d'informatique qui me prend pas mal de temps.
regarde ce fichier qui répond a ton dernier post d'hier soir
https://www.cjoint.com/?eDw4kgBlwe
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Bonjour Mike,
Merci pour ton aide, c'est exactement ce que je voulais, ça marche !
Encore une dernière chose s'il te plaît.
La macro ci-dessous masque les lignes si les cellules de la colonne H sont vides.
Elle les masque progressivement en commençant par la cellule H5, j'aimerai que l'exécution de la macro soit stoppée par une condition.
En fait dans le tableau de la Feuil C, les cellules de la colonne A sont fusionnées par bloc de 10. On a bloc 1 = A2 : A11; bloc 2 = A12 : A21; bloc 3 = A22 : A31; etc.
J'aimerai que l'exécution de la macro soit stoppée dès que la 1ère cellule d'un bloc soit vide.
Par exemple : bloc 2 = A12 : A21 si A12 = " " stopper l'exécution de la macro.
Sub Masquer ()
Application.ScreenUpdating = False
Range("H5:H100").Select
For Each Cell In Selection
Cpt = 0
For i = 0 To 7
If Cell.Offset(0, i) <> "" Then
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
Laure
Merci pour ton aide, c'est exactement ce que je voulais, ça marche !
Encore une dernière chose s'il te plaît.
La macro ci-dessous masque les lignes si les cellules de la colonne H sont vides.
Elle les masque progressivement en commençant par la cellule H5, j'aimerai que l'exécution de la macro soit stoppée par une condition.
En fait dans le tableau de la Feuil C, les cellules de la colonne A sont fusionnées par bloc de 10. On a bloc 1 = A2 : A11; bloc 2 = A12 : A21; bloc 3 = A22 : A31; etc.
J'aimerai que l'exécution de la macro soit stoppée dès que la 1ère cellule d'un bloc soit vide.
Par exemple : bloc 2 = A12 : A21 si A12 = " " stopper l'exécution de la macro.
Sub Masquer ()
Application.ScreenUpdating = False
Range("H5:H100").Select
For Each Cell In Selection
Cpt = 0
For i = 0 To 7
If Cell.Offset(0, i) <> "" Then
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
Laure
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
30 avril 2010 à 18:17
30 avril 2010 à 18:17
Re,
concrètement, cette macro devrait masquer toutes les lignes excepté les lignes non vide et la première ligne vide de chaque bloc exemple pour le service 13 reste affiché les cellules H2 à H6 non vide plus une ligne vide H7 et masquer de H8 à H11 et la même chose pour les autres blocs
bloc 11 reste affiché H12 non vide et H13 vide et masquer de H14 à H21 etc ...
concrètement, cette macro devrait masquer toutes les lignes excepté les lignes non vide et la première ligne vide de chaque bloc exemple pour le service 13 reste affiché les cellules H2 à H6 non vide plus une ligne vide H7 et masquer de H8 à H11 et la même chose pour les autres blocs
bloc 11 reste affiché H12 non vide et H13 vide et masquer de H14 à H21 etc ...
Bonsoir,
Je ne te comprends pas.
Si tu parles de la dernière macro que j'aimerai, non. Ce n'est pas cela que j'aimerai.
Je voudrai en fait adapter cette macro pour au tableau de la feuil C uniquement; elle me permettrai d'automatiser la mise en forme; en gros les utilisateurs pourront masquer toutes les lignes vides correspondant à un service, mais le reste du tableau non utilisé restera visible et utilisable.
Je comptais lier cette à un bouton sur la Feuil C.
Elsie
Je ne te comprends pas.
Si tu parles de la dernière macro que j'aimerai, non. Ce n'est pas cela que j'aimerai.
Je voudrai en fait adapter cette macro pour au tableau de la feuil C uniquement; elle me permettrai d'automatiser la mise en forme; en gros les utilisateurs pourront masquer toutes les lignes vides correspondant à un service, mais le reste du tableau non utilisé restera visible et utilisable.
Je comptais lier cette à un bouton sur la Feuil C.
Elsie
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
30 avril 2010 à 22:38
30 avril 2010 à 22:38
Re,
Oui j'ai bien compris, la macro de ton avant dernier post, elle doit masquer uniquement les lignes vides d'un service exemple le 13 et laisser le reste du tableau visible (ligne vide et non vide)
c'est cela
Oui j'ai bien compris, la macro de ton avant dernier post, elle doit masquer uniquement les lignes vides d'un service exemple le 13 et laisser le reste du tableau visible (ligne vide et non vide)
c'est cela
dans ce fichier dans le Feuil C, j'ai masqué manuellement les cellules pour te montrer le résultat que j'aimerai obtenir
https://www.cjoint.com/?eEwWzQ13fI
https://www.cjoint.com/?eEwWzQ13fI
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
30 avril 2010 à 23:20
30 avril 2010 à 23:20
Re,
Comme cela
Sub Masquer ()
Application.ScreenUpdating = False
For i = 300 To 2 Step -1
If Range("H" & i) = "" Then
Range("H" & i).EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
Comme cela
Sub Masquer ()
Application.ScreenUpdating = False
For i = 300 To 2 Step -1
If Range("H" & i) = "" Then
Range("H" & i).EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
Re,
cette macro me fait la même chose que celle ci :
Sub Masquer ()
Application.ScreenUpdating = False
Range("H5:H100").Select
For Each Cell In Selection
Cpt = 0
For i = 0 To 7
If Cell.Offset(0, i) <> "" Then
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
c'est bien, mais je voudrai que son exécution se stope dès que A2 ou A12...= " "
Je ne sais pas s'il faut y ajouter un truc du genre
Sub Masquer ()
Application.ScreenUpdating = False
For i = 2 To 100 Step 10
If Range("A" & i) = "" Then
For i = 300 To 2 Step -1
If Range("H" & i) = "" Then
Range("H" & i).EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
Next
End Sub
cette macro me fait la même chose que celle ci :
Sub Masquer ()
Application.ScreenUpdating = False
Range("H5:H100").Select
For Each Cell In Selection
Cpt = 0
For i = 0 To 7
If Cell.Offset(0, i) <> "" Then
Cpt = Cpt + 1
End If
Next
If Cpt = 0 Then
Cell.EntireRow.Hidden = True
Else
Cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
c'est bien, mais je voudrai que son exécution se stope dès que A2 ou A12...= " "
Je ne sais pas s'il faut y ajouter un truc du genre
Sub Masquer ()
Application.ScreenUpdating = False
For i = 2 To 100 Step 10
If Range("A" & i) = "" Then
For i = 300 To 2 Step -1
If Range("H" & i) = "" Then
Range("H" & i).EntireRow.Hidden = True
End If
Next
Application.ScreenUpdating = True
Next
End Sub
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
1 mai 2010 à 00:00
1 mai 2010 à 00:00
Re,
Alors comme cela
Sub Masquer ()
Dim i As Integer
Application.ScreenUpdating = False
[A300].End(xlUp).Offset(0, 7).Select
Range(ActiveCell.Offset(9, 0), [H2]).Select
Set MyPlage = Selection
For Each cell In MyPlage
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next
[H2].Select
Application.ScreenUpdating = True
End Sub
Alors comme cela
Sub Masquer ()
Dim i As Integer
Application.ScreenUpdating = False
[A300].End(xlUp).Offset(0, 7).Select
Range(ActiveCell.Offset(9, 0), [H2]).Select
Set MyPlage = Selection
For Each cell In MyPlage
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next
[H2].Select
Application.ScreenUpdating = True
End Sub
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
1 mai 2010 à 10:46
1 mai 2010 à 10:46
RE,
Hier soir je t'ai posté ce code qui apparemment n'a pas été pris en compte
Sub Masquer ()
Dim i As Integer
Application.ScreenUpdating = False
[A300].End(xlUp).Offset(0, 7).Select
Range(ActiveCell.Offset(9, 0), [H2]).Select
Set MyPlage = Selection
For Each cell In MyPlage
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next
[H2].Select
Application.ScreenUpdating = True
End Sub
Hier soir je t'ai posté ce code qui apparemment n'a pas été pris en compte
Sub Masquer ()
Dim i As Integer
Application.ScreenUpdating = False
[A300].End(xlUp).Offset(0, 7).Select
Range(ActiveCell.Offset(9, 0), [H2]).Select
Set MyPlage = Selection
For Each cell In MyPlage
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next
[H2].Select
Application.ScreenUpdating = True
End Sub
Mike-31
Messages postés
18310
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 mars 2024
5 073
Modifié par Mike-31 le 1/05/2010 à 22:33
Modifié par Mike-31 le 1/05/2010 à 22:33
Re,
C'est le genre de macro pas très souvent utilisée, je vais me replonger sur le problème après le week-end.
Pour revenir à ton problème, j'ai vu que tu avais plusieurs feuille A, B et C
si tu dois les piloter depuis la feuille "Récapitulatif" il te suffit d'ajouter une ligne comme pour les services si tu veux je t'envoie un fichier, également même pour la liste déroulante en C4 comme elle est assez courte, tu peux effacer les données L3 à L10 et saisir directement les valeur dans source (Données/Validation/etc...)
à la place de
=$L$3:$L$10
tu saisis
11;13;15;17;19;21;23;25
Pour terminer, mets le statut de cette discussion en résolu, et ouvre une discussion pour l'envoi de mail automatique à partir d'Excel via Outlook je la suivrais
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
C'est le genre de macro pas très souvent utilisée, je vais me replonger sur le problème après le week-end.
Pour revenir à ton problème, j'ai vu que tu avais plusieurs feuille A, B et C
si tu dois les piloter depuis la feuille "Récapitulatif" il te suffit d'ajouter une ligne comme pour les services si tu veux je t'envoie un fichier, également même pour la liste déroulante en C4 comme elle est assez courte, tu peux effacer les données L3 à L10 et saisir directement les valeur dans source (Données/Validation/etc...)
à la place de
=$L$3:$L$10
tu saisis
11;13;15;17;19;21;23;25
Pour terminer, mets le statut de cette discussion en résolu, et ouvre une discussion pour l'envoi de mail automatique à partir d'Excel via Outlook je la suivrais
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
27 avril 2010 à 09:44
En fait là je ne sais pas pourquoi mais la macro n'apparaissait pas dans la liste des macro à exécuter; alors je l'ai modifiée et là ça va.
Merci pour votre aide
Sub test()
Set MyPlage = Range("A7:A100")
For Each Cell In MyPlage
If Cell.Value = [C4] Then
Cell.EntireRow.Hidden = False
ElseIf Cell.Value <> [C4] Then
Cell.EntireRow.Hidden = True
End If
Next
End Sub
Laure