XL 2013 Afficher Ligne par ligne à l'aide d'un bouton

simonf

XLDnaute Nouveau
Bonjour à tous,

Je débute sur Excel et suis confronté à un premier problème. Malgré plusieurs heures de recherche, je n'ai toujours pas trouvé de solutions.

J'aimerai, à l'aide d'un bouton, afficher la première ligne masquée d'un tableau (uniquement une), l'action pourra donc être répétée. Dans le sens contraire, un deuxième bouton permettant de masquer la dernière ligne "affichée" serait un vrai plus.

La seconde difficulté est de réaliser cette action sur la deuxième feuille, tout en sachant que les numéros de lignes ne correspondent pas.

Je vous remercie sincèrement pour votre aide précieuse.
 

Pièces jointes

  • Afficher Ligne.xlsx
    15 KB · Affichages: 40

Lone-wolf

XLDnaute Barbatruc
Re : Afficher Ligne par ligne à l'aide d'un bouton

Bonjour simon et bienvenue
Bonjour gilbert

une autre approche, avec choix de ligne à afficher ou masquer.


Code:
Sub afficher()
Dim x As Long
With Sheets("Sheet1")
x = Range("o2")  ' cellule pour inscrire la ligne
.Cells(x, 1).EntireRow.Hidden = False
End With
End Sub

Sub masquer()
Dim x As Long
With Sheets("Sheet1")
x = Range("o2")
.Cells(x, 1).EntireRow.Hidden = True
End With
End Sub



A+ :cool:
 

Lone-wolf

XLDnaute Barbatruc
Re : Afficher Ligne par ligne à l'aide d'un bouton

Bonsoir gilbert, siom

Combinaison de la macro de gilbert avec celle que j'ai proposé.


Code:
Sub afficher()
Dim x As Long
With Sheets("Sheet1")
x = .Range("o2")
If .Cells(x, 1).EntireRow.Hidden = True Then _
.Cells(x, 1).EntireRow.Hidden = False
End With

 With Sheets(2)
 x = Sheets(1).Range("o2")
        For i = 1 To 50
            If i = x + 6 And .Rows(i).EntireRow.Hidden = True Then: _
            .Rows(i).EntireRow.Hidden = False: Exit Sub
        Next
    End With
End Sub

Sub masquer()
Dim x As Long
With Sheets("Sheet1")
x = Range("o2")
.Cells(x, 1).EntireRow.Hidden = True
End With

 With Sheets(2)
 x = Sheets(1).Range("o2")
        For i = 1 To 50
            If i = x + 6 And .Rows(i).EntireRow.Hidden = False Then: _
            .Rows(i).EntireRow.Hidden = True: Exit Sub
        Next
    End With
End Sub


Amicalement Lone-wolf
 

Pièces jointes

  • Afficher-Masquer Ligne.xlsm
    22.4 KB · Affichages: 47
Dernière édition:

simonf

XLDnaute Nouveau
Re : Afficher Ligne par ligne à l'aide d'un bouton

Un grand merci pour votre aide. J'ai maintenant une nouvelle difficulté : si je rajoute plusieurs tableaux sous le premier, et que j'utilise une macro identique à la première appliqué aux lignes en question, la première ne marche plus.

Si j'ai bien compris votre proposition, le réaffichage s'applique à la dernière ligne masquée, hors j'aimerai que chaque macro soit propre à un tableau donc à une zone de la feuille uniquement, et non toute la feuille.

Avez-vous une idée pour remédier à ca ?

Encore merci pour votre aide.
 

Lone-wolf

XLDnaute Barbatruc
Re : Afficher Ligne par ligne à l'aide d'un bouton

Bonjour simon,


Si j'ai bien compris votre proposition, le réaffichage s'applique à la dernière ligne masquée

Si tu prend mon exemple, tu choisi la ligne que tu veux pour l'afficher ou la masquer. Pour cela, dans la colonne R par exemple tu inscrit 3 à 1003(c'est les lignes) et en O2, tu crée une liste déroulante avec comme source la colonne R.

Si tu avais dit dès le départ qu'il y aurait plusieurs tableaux, on aurais fait les codes en conséquences. Alors met un nouveau fichier avec le nombre de tableaux exact que tu veux avoir.



A+ :cool:
 
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : Afficher Ligne par ligne à l'aide d'un bouton

salut

pour moi il suffit de changer les zones de recherches (pas trop difficile s'il on comprend le code)

mais comme il faut adapter suivant le modèle et sans fichier difficile de reproduire exactement la demande
 

simonf

XLDnaute Nouveau
Re : Afficher Ligne par ligne à l'aide d'un bouton

Mon précédent fichier n'était pas assez représentatif, il l'est plus à présent.

Le premier objectif est de compléter les tableaux (cellules sans remplissage) dans la première feuille. Ces données sont immédiatement retranscrite automatiquement dans les tableaux de la feuille 2 (cellules sans remplissage). Nous pouvons afficher et masquer les lignes pour une meilleure lecture du tableaux et éviter d'avoir des lignes vides.

Une fois les tableaux de la feuille 1 complétés, on se dirige vers la feuille 2 ou nous avons autant de ligne affichée (sans remplissage) que dans la feuille 1 (puisque les macros de la feuille 1 agissent aussi sur les tableaux de la feuille 2).

Les lignes sans remplissage peuvent etre assimilés à un état initial. Les lignes remplies en vert dans la feuille 2 permettent d'ajouter des choses, tout en gardant les données de la feuille 1. De nouvelles macros n'agissent donc que sur les lignes remplies en vert.

Difficile à expliquer mais je pense que vous avez compris l'objectif de l'outil.
 

Pièces jointes

  • Afficher Ligne v1.xlsx
    128.9 KB · Affichages: 51

simonf

XLDnaute Nouveau
Re : Afficher Ligne par ligne à l'aide d'un bouton

Bonjour à tous les deux et bonne année à vous !

Je vous joins un fichier peut-être plus parlant.

C'est réglé pour le bouton "+", il me reste néanmoins un souci pour le bouton "-". Je veux que celui-ci me permette de masquer la dernière ligne "non masquée" du tableau correspondant :

Exemples : Bouton "-" Tableau 2-Sheet 1 appliqué aux lignes 16 à 19 de la feuille 1 et aux lignes 20 à 23 de la feuille 2

Bouton "-" Tableau 2-Sheet 2 appliqué aux lignes 24 à 27 de la feuille 2

Ce que vous avez proposé est très bien mais je n'arrive pas à l'appliquer à plusieurs tableaux sur la même feuille. Le Range("J" & Rows.Count) s'applique sur toute la feuille si je comprends bien, hors je veux que la macro s'applique uniquement à une partie de la feuille.


J'espere que c'est à présent plus clair pour vous.

Bonne journée

Simon
 

Pièces jointes

  • Afficher Ligne v2.xlsm
    43.2 KB · Affichages: 47

Discussions similaires

Statistiques des forums

Discussions
312 097
Messages
2 085 261
Membres
102 844
dernier inscrit
atori2