Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Masquer Lignes et Colonnes hors plage courante

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cathodique

XLDnaute Barbatruc
Bonjour,

Comment pourrais-je masquer les lignes et les colonnes qui sont en dehors de la plage courante.

Sur mon fichier (assez volumineux) par userform je fais apparaitre des données sur une feuille, généralement les colonnes sont fixes et les lignes variables.

Je voudrai un code à mettre dans l’évènement "change" de cette feuille ou toutes autres solutions plus adéquate.

En vous remerciant par avance.

Cordialement,
 
Re : Masquer Lignes et Colonnes hors plage courante

Bonsoir,

essaye peut être comme ceci :
Code:
Option Explicit
Sub test()
With Application
    .ScreenUpdating = False
    With ActiveSheet
        With .Cells
            .EntireColumn.Hidden = True
            .EntireRow.Hidden = True
        End With
        With .UsedRange
            .EntireColumn.Hidden = False
            .EntireRow.Hidden = False
        End With
    End With
    .ScreenUpdating = True
End With
End Sub

bonne soirée
@+
 
Re : Masquer Lignes et Colonnes hors plage courante

Salut Pierrot93,

Je te remercie beaucoup, j'ai essayé ton code tel quel. il ne masque que les lignes. en mettant "currentregion" ça bug dessus (arret sur With .Currentregion).

Cordialement,
 
Re : Masquer Lignes et Colonnes hors plage courante

bonsoir tous 🙂🙂 l'ami pierrot🙂
un code basique qui le fait

Code:
Columns(Cells.Find("*", , , , xlByColumns, xlPrevious).Column + 1).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.EntireColumn.Hidden = 1 '0 pour afficher
    Rows(Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.EntireRow.Hidden = 1 '0 pour afficher
 
Re : Masquer Lignes et Colonnes hors plage courante

Bonsoir Laetitia90, 🙂🙂😱

Je te remercie pour ton aide. j'ai mis ton code dans l'evenement change de la feuille et ça fonctionne bien pour masquer les colonnes et les lignes. par contre pour l'affichage, c'est impossible et ce malgré avoir remplacer les "1" par des "0". voici comment j'ai testé ton code:
Code:
Private Sub Worksheet_Activate()
Columns(Cells.Find("*", , , , xlByColumns, xlPrevious).Column + 1).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.EntireColumn.Hidden = 0  '0 pour afficher
    Rows(Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.EntireRow.Hidden = 0  '0 pour afficher
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Columns(Cells.Find("*", , , , xlByColumns, xlPrevious).Column + 1).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.EntireColumn.Hidden = 1 '0 pour afficher
    Rows(Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.EntireRow.Hidden = 1 '0 pour afficher
End Sub
ça m'embête un peu car cette plage est variable,via un userform je récupère des données à partir d'une BD. donc avant chaque choix, je dois réafficher toutes les colonnes et lignes.

je te remercie beaucoup. un grand merci au forum qui me permet d'avancer tout en apprenant beaucoup de choses.

Bonne soirée.

Cordialement,
 
Re : Masquer Lignes et Colonnes hors plage courante

Bonjour,
Salut Laetitia🙂

Je te remercie beaucoup, j'ai essayé ton code tel quel. il ne masque que les lignes. en mettant "currentregion" ça bug dessus (arret sur With .Currentregion).

oui, normal en fait "currentregion" s'applique à un objet "range" et non à un objet "sheet"... "usedrange" fonctionne ttrès bien chez moi... Après, sans voir comment tu l'a appliqué et sur quel structure, difficile d'en dire plus...

bonne journée
@+
 
Re : Masquer Lignes et Colonnes hors plage courante

Re,

sur l'idée du "find" de Laetitia🙂, ici le "codename" de la feuille est utilisé et non son nom :
Code:
Option Explicit
Sub Masquer()
Dim p As Range
With Application
    .ScreenUpdating = False
    With Feuil1
        Set p = .Range(.Cells(.Cells.Find("*", , xlValues, , 1, 1, 0).Row, .Cells.Find("*", , xlValues, , 2, 1, 0).Column), _
                .Cells(.Cells.Find("*", , xlValues, , 1, 2, 0).Row, .Cells.Find("*", , xlValues, , 2, 2, 0).Column))
        With .Cells
            .EntireColumn.Hidden = True
            .EntireRow.Hidden = True
        End With
        With p
            .EntireColumn.Hidden = False
            .EntireRow.Hidden = False
        End With
    End With
    .Goto p(1), True
    .ScreenUpdating = True
End With
End Sub
Sub Afficher()
With Feuil1.Cells
    .EntireColumn.Hidden = False
    .EntireRow.Hidden = False
End With
End Sub
 
Re : Masquer Lignes et Colonnes hors plage courante

bonjour tous 🙂🙂🙂
je viens de tester le code de l'ami pierrot 🙂 marche tres bien avec excel 2007

de plus code plus abouti tiens compte de la 1 colonne utilise & formule renvoyant nothing
 
[Résolu] : Masquer Lignes et Colonnes hors plage courante

Bonjour Laetitia90 , bonjour Pierrot93,🙂🙂

Je vous remercie beaucoup pour votre aide et vos explications. Ce dernier code de Pierrot93 fonctionne très bien.

Encore merci à vous deux.

Cordialement,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
564
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…