IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Cacher des lignes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Cacher des lignes
    Bonjour à toutes et à tous,

    Le code suivant me permet à partir d'un double clic dans une cellule d'afficher une sélection de lignes.
    Dans mon application lorsque je double-clique dans la cellule A12 de la feuille "L" et NumLig alors la feuille "FL" et NumLig est activée et le curseur se positionne dans la cellule C2. Les autres lignes à partir de la ligne sont cachées.
    Si je double-clique sur la cellule A13 de la feuille "L" où il y "2", alors le curseur se positionne dans la cellule C43 de la feuille "FL" et les lignes 41 à 81 sont visibles, les autres sont cachées, et ainsi de suite.

    Lorsque je double-clique, la feuille "FL" est bien activée, mais je n'arrive pas à cachée les lignes.

    Pouvez-vous m'apporter votre aide s'il vous plait ? Je vous en remercie par avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
     
    If Not Intersect([A12:A39], Target) Is Nothing Then
     
        Dim FNew As Object, Wb As Workbook, NumLig As Variant
        Dim Cible As String
     
        NumLig = ActiveSheet.Range("D5")
        Cible = ("FL" & NumLig)
        Set Wb = ThisWorkbook
     
        'Ici on active la feuille "FL" et NumLig (n° de ligne)
     
        Set Sh = Wb.Sheets("FL" & NumLig)
        Sh.Activate
        Sheets("FL" & NumLig).Activate
     
        'on masque les feuilles qui ne correspondent pas à NumLig
     
        For Each Sh In Wb.Worksheets
            If Sh.name <> Cible And Sh.name <> ("FL" & NumLig) Then Sh.Visible = xlSheetVeryHidden
            Sheets("L" & NumLig).Visible = True
                If Sh.name = Cible Then
                    Set FNew = Wb.Sheets(Cible): FNew.Activate: FNew.Visible = True
     
                Else: Exit Sub
                End If
                Next Sh
     
          'on affiche la fiche de la feuille "FL" correpondant au numéro de la cellule en A de la Feuille "L" et NumLig - Les autres fiches sont cachées
     
    FNew.Cells((Target.Value - 1) * 41 + 2, 2).Select
                End If
                FNew.Rows("1:1185").Hidden = True
                    FNew.Range(FNew.Cells((Target.Value - 1) * 41 + 2, 3), FNew.Cells((Target.Value - 1) * 41 + 1 + 38, 3)).EntireRow.Hidden = False
                    FNew.Cells((Target.Value - 1) * 41 + 2, 3).Select
    fin:
                Set FNew = Nothing: Set Wb = Nothing: Set Sh = Nothing
     
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour, test ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FNew.Rows("1:1185").EntireRow.Hidden = True

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,
    Merci pour ta suggestion, mais cela ne change rien. Je continu à chercher.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    Après un weekend à plancher, je n'ai pas trouver la solution à mon problème.

    J'arrive à afficher la feuille, mais toutes les lignes sont visibles. Je n'arrive à sélectionner uniquement la fiche souhaitée.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Voilà, j'ai mis en place ce code que j'ai collé dans chacune des feuilles de calcul. Je sais ce n'est pas l'idéal mais cela fonctionne.

    J'aurai voulu mettre ce code dans un module ou bien dans ThisWorkBook mais je n'y arrive pas.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
    If Not Intersect([A12:A39], Target) Is Nothing Then
        Dim FNew As Worksheet, Wb As Workbook, Sh As Worksheet
        Dim Cible As String
        Dim NumLig As Variant
     
        NumLig = ActiveSheet.Range("D5")
        Cible = ("FL" & NumLig)
        Set Wb = ThisWorkbook
     
        On Error Resume Next
            Set FNew = Wb.Worksheets(Cible)
        On Error GoTo fin
            If Not FNew Is Nothing Then
            FNew.Activate
            FNew.Visible = True
            Else
                GoTo fin
            End If
     
            'on masque les feuilles inutiles
            For Each Sh In Wb.Worksheets
                If FNew.name <> Cible Then
                If FNew.name <> ("L" & NumLig) Then
                    FNew.Visible = xlSheetVeryHidden
                End If
            End If
            Next Sh
     
            FNew.Cells((Target.Value - 1) * 41 + 2, 3).Select
            End If
     
            FNew.Rows("1:1185").Hidden = True
                FNew.Range(FNew.Cells((Target.Value - 1) * 41 + 2, 3), FNew.Cells((Target.Value - 1) * 41 + 1 + 38, 3)).EntireRow.Hidden = False
                    FNew.Cells((Target.Value - 1) * 41 + 2, 3).Select
    fin:
            Set FNew = Nothing: Set Wb = Nothing: Set Sh = Nothing
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche Dataset qui permet de cacher des lignes
    Par Andry dans le forum Composants VCL
    Réponses: 10
    Dernier message: 28/10/2008, 09h02
  2. [VBA-E optimisation code] ameliorer la méthode pour cacher des lignes
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/07/2008, 09h53
  3. [CR2008]Comment cacher des lignes dans un tableau croisé
    Par bcgetpause dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 21/05/2008, 15h14
  4. Cacher des lignes d'un CheckListBox + Champ tag
    Par Anified dans le forum Windows Forms
    Réponses: 6
    Dernier message: 26/09/2007, 15h01
  5. Cacher des lignes d'un tableau
    Par frechy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 18/07/2005, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo