Masque des lignes à partir d'une cellule

Le
Tibert
Bonjour à tous ;
je viens vers chercher un peut d'aide pour faire une macro pour
évoluer un tableau
J'ai un tableau de données de (B5:BX400), j'ai en colonne (F5:F400)
un code qui varie de 30 à 32
Comment faire la macro qui me permettrait, quand je met dans la
cellule (E2) le code 30 cela me masque toutes les lignes du tableau
sur la plage (B5:BX400) lignes dont le code est 31,32, pour que reste
visible toutes les lignes 30

merci à vous et bonne journée
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Garnote
Le #20766631
Bonjour Tibert,

Une piste :
Cette macro masque toutes les lignes de B5:BX400
dont les valeurs en colonne F sont différentes de la
valeur de E2 :
Sub Masquer()
Application.ScreenUpdating = False
For i = 400 To 5 Step -1
If Range("F" & i).Value <> Range("E2").Value Then _
Range("F" & i).EntireRow.Hidden = True
Next i
Application.ScreenUpdating = True
End Sub

Cette macro affiche toutes les lignes de B5:BX400 :
Sub Tout_Afficher()
Application.ScreenUpdating = False
For i = 400 To 5 Step -1
Range("F" & i).EntireRow.Hidden = False
Next i
Application.ScreenUpdating = True
End Sub

Serge



"Tibert"
Bonjour à tous ;
je viens vers chercher un peut d'aide pour faire une macro pour
évoluer un tableau
J'ai un tableau de données de (B5:BX400), j'ai en colonne (F5:F400)
un code qui varie de 30 à 32
Comment faire la macro qui me permettrait, quand je met dans la
cellule (E2) le code 30 cela me masque toutes les lignes du tableau
sur la plage (B5:BX400) lignes dont le code est 31,32, pour que reste
visible toutes les lignes 30

merci à vous et bonne journée
Tibert
Le #20767021
Bonjour Garnot
merci pour ton aide, mais je recherche plutôt la macro qui va me
masquer tout sauf les ligne dont le code est en (E2)
Bonne journée


On 14 déc, 15:45, "Garnote"
Bonjour Tibert,

Une piste :
Cette macro masque toutes les lignes de B5:BX400
dont les valeurs en colonne F sont différentes de la
valeur de E2 :
Sub Masquer()
    Application.ScreenUpdating = False
        For i = 400 To 5 Step -1
            If Range("F" & i).Value <> Range("E2").Value Then _
            Range("F" & i).EntireRow.Hidden = True
        Next i
    Application.ScreenUpdating = True
End Sub

Cette macro affiche toutes les lignes de B5:BX400 :
Sub Tout_Afficher()
    Application.ScreenUpdating = False
        For i = 400 To 5 Step -1
            Range("F" & i).EntireRow.Hidden = False
        Next i
    Application.ScreenUpdating = True
End Sub

Serge

"Tibert"
Bonjour à tous ;
je viens vers chercher un peut d'aide pour faire une macro pour
évoluer un tableau
J'ai un tableau de données de (B5:BX400), j'ai en colonne  (F5:F400)
un code qui varie de 30 à 32
Comment faire la macro qui me permettrait, quand je met dans la
cellule (E2) le code 30 cela me masque toutes les lignes du tableau
sur la plage (B5:BX400)  lignes dont le code est 31,32, pour que reste
visible toutes les lignes 30

merci à vous et bonne journée


Garnote
Le #20767561
N'est-ce pas ce que fait ma macro ?!

Serge

"Tibert"
Bonjour Garnot
merci pour ton aide, mais je recherche plutôt la macro qui va me
masquer tout sauf les ligne dont le code est en (E2)
Bonne journée


On 14 déc, 15:45, "Garnote"
Bonjour Tibert,

Une piste :
Cette macro masque toutes les lignes de B5:BX400
dont les valeurs en colonne F sont différentes de la
valeur de E2 :
Sub Masquer()
Application.ScreenUpdating = False
For i = 400 To 5 Step -1
If Range("F" & i).Value <> Range("E2").Value Then _
Range("F" & i).EntireRow.Hidden = True
Next i
Application.ScreenUpdating = True
End Sub

Cette macro affiche toutes les lignes de B5:BX400 :
Sub Tout_Afficher()
Application.ScreenUpdating = False
For i = 400 To 5 Step -1
Range("F" & i).EntireRow.Hidden = False
Next i
Application.ScreenUpdating = True
End Sub

Serge

"Tibert"
Bonjour à tous ;
je viens vers chercher un peut d'aide pour faire une macro pour
évoluer un tableau
J'ai un tableau de données de (B5:BX400), j'ai en colonne (F5:F400)
un code qui varie de 30 à 32
Comment faire la macro qui me permettrait, quand je met dans la
cellule (E2) le code 30 cela me masque toutes les lignes du tableau
sur la plage (B5:BX400) lignes dont le code est 31,32, pour que reste
visible toutes les lignes 30

merci à vous et bonne journée


michdenis
Le #20767551
Bonjour,

Dans la feuille module où l'action se déroule, colle la macro suivante :

'-----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E2")) Is Nothing Then
Application.ScreenUpdating = False
With Range("B4:BX400")
.EntireRow.Hidden = False
.AutoFilter field:=5, Criteria1:="<>" & Range("E2")
Set Rg = Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count + 1) _
.SpecialCells(xlCellTypeVisible)
.AutoFilter
End With
Rg.EntireRow.Hidden = True
Application.ScreenUpdating = True
End If
End Sub
'-----------------------------------



"Tibert"
Bonjour à tous ;
je viens vers chercher un peut d'aide pour faire une macro pour
évoluer un tableau
J'ai un tableau de données de (B5:BX400), j'ai en colonne (F5:F400)
un code qui varie de 30 à 32
Comment faire la macro qui me permettrait, quand je met dans la
cellule (E2) le code 30 cela me masque toutes les lignes du tableau
sur la plage (B5:BX400) lignes dont le code est 31,32, pour que reste
visible toutes les lignes 30

merci à vous et bonne journée
Tibert
Le #20768301
Bonsoir Garnot ;
mille excuse, c'était ma colonne de code qui poser problème, je m'en
suis aperçu en adaptant le code de michdenis
Merci pour ton aide
bonne soirée



On 14 déc, 17:30, "Garnote"
N'est-ce pas ce que fait ma macro ?!

Serge

"Tibert"
Bonjour Garnot
merci pour ton aide, mais je recherche plutôt la macro qui va me
masquer tout sauf les ligne dont le code est en (E2)
Bonne journée

On 14 déc, 15:45, "Garnote"


> Bonjour Tibert,

> Une piste :
> Cette macro masque toutes les lignes de B5:BX400
> dont les valeurs en colonne F sont différentes de la
> valeur de E2 :
> Sub Masquer()
> Application.ScreenUpdating = False
> For i = 400 To 5 Step -1
> If Range("F" & i).Value <> Range("E2").Value Then _
> Range("F" & i).EntireRow.Hidden = True
> Next i
> Application.ScreenUpdating = True
> End Sub

> Cette macro affiche toutes les lignes de B5:BX400 :
> Sub Tout_Afficher()
> Application.ScreenUpdating = False
> For i = 400 To 5 Step -1
> Range("F" & i).EntireRow.Hidden = False
> Next i
> Application.ScreenUpdating = True
> End Sub

> Serge

> "Tibert" >
> Bonjour à tous ;
> je viens vers chercher un peut d'aide pour faire une macro pour
> évoluer un tableau
> J'ai un tableau de données de (B5:BX400), j'ai en colonne (F5:F400)
> un code qui varie de 30 à 32
> Comment faire la macro qui me permettrait, quand je met dans la
> cellule (E2) le code 30 cela me masque toutes les lignes du tableau
> sur la plage (B5:BX400) lignes dont le code est 31,32, pour que reste
> visible toutes les lignes 30

> merci à vous et bonne journée- Masquer le texte des messages préc édents -

- Afficher le texte des messages précédents -


Tibert
Le #20768291
Bonsoir michdenis
merci ton code est vraiment super
qu'es ce que tu pourrais me conseiller, toujours en utilisant ma liste
déroulante pour ré-affiché toute les lignes, si c'est possible
autrement j'ai fait un bouton macro pour utiliser le code de Garnote
Sub Tout_Afficher()
Application.ScreenUpdating = False
For i = 400 To 5 Step -1
Range("F" & i).EntireRow.Hidden = False
Next i
Application.ScreenUpdating = True
End Sub

merci pour ton aide et bonne soirée

On 14 déc, 17:30, "michdenis"
Bonjour,

Dans la feuille module où l'action se déroule, colle la macro suivant e :

'-----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E2")) Is Nothing Then
    Application.ScreenUpdating = False
    With Range("B4:BX400")
        .EntireRow.Hidden = False
        .AutoFilter field:=5, Criteria1:="<>" & Range("E2")
        Set Rg = Range("_FilterDataBase")
        Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count + 1) _
                .SpecialCells(xlCellTypeVisible)
        .AutoFilter
    End With
    Rg.EntireRow.Hidden = True
    Application.ScreenUpdating = True
End If
End Sub
'-----------------------------------

"Tibert"
Bonjour à tous ;
je viens vers chercher un peut d'aide pour faire une macro pour
évoluer un tableau
J'ai un tableau de données de (B5:BX400), j'ai en colonne  (F5:F400)
un code qui varie de 30 à 32
Comment faire la macro qui me permettrait, quand je met dans la
cellule (E2) le code 30 cela me masque toutes les lignes du tableau
sur la plage (B5:BX400)  lignes dont le code est 31,32, pour que reste
visible toutes les lignes 30

merci à vous et bonne journée


michdenis
Le #20768421
Pour afficher toutes les lignes, ceci serait suffisant :

'---------------------------
Sub Tout_Afficher()
With worksheets("Feuil1") 'Nom à adapter
.Range("B4:BX400").entirerow.hidden = false
End With
End Sub
'---------------------------

Mais si tu le désires, tu peux tout regrouper dans la même procédure
que la précédente en la modifiant un peu

Si en E2, tu inscris "tout", toutes les lignes seront affichées
si en E2, tu incris "Rien", toutes les lignes seront masquées.
si tu inscris 30 ou 31 ou 32, seules les lignes dont le numéro
est inscris en E2, seront affichées.

'------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E2")) Is Nothing Then
Application.ScreenUpdating = False
Select Case LCase(Range("E2"))
Case Is = "tout"
Range("B4:BX400").EntireRow.Hidden = False
Case Is = "rien"
Range("B4:BX400").EntireRow.Hidden = True
Case 30, 31, 32
With Range("B4:BX400")
.EntireRow.Hidden = False
.AutoFilter field:=5, Criteria1:="<>" & Range("E2")
Set Rg = Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count + 1) _
.SpecialCells(xlCellTypeVisible)
.AutoFilter
End With
Rg.EntireRow.Hidden = True
Application.ScreenUpdating = True
End Select
End If
End Sub
'------------------------------------
Publicité
Poster une réponse
Anonyme