macro masquer des lignes et démasquer d'autre lignes ??

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 !

Frabennny

XLDnaute Nouveau
commande pour masquer des lignes et démasquer d'autre lignes en automatique ?

Bonjour a tous,
je viens demander de l'aide pour une macro qui incrementerais le masquage d'une ligne et le "dé-masquage d'une autre ligne
En effet j'ai deja le meme type de macro pour les colonnes, mais je n'arrive pas à le transposer au lignes

Help
Ci joint l'exemple pour les colonnes
Je souhaite en fait faire une macro qui fait glisser un calendrier d'un jour par un jour
quelle commande dois-je modifier ???

Merci d'avance
frabennny
 

Pièces jointes

Dernière édition:
Re : macro masquer des lignes et démasquer d'autre lignes ??

Bonjour,

Une piste avec le code suivant

Code:
Sub LesLignes()
Dim demasquer&
Dim masquer&
With ActiveSheet
  masquer& = .Range("A1").End(xlDown).Row
  demasquer& = .Range("A65536").End(xlUp).Row + 1
  If .Rows(masquer&).EntireRow.Hidden = False Then
    .Rows(masquer&).EntireRow.Hidden = True
  End If
  If .Rows(demasquer&).EntireRow.Hidden = True Then
    .Rows(demasquer&).EntireRow.Hidden = False
  End If
  End With
End Sub


Cordialement.

PMO
Patrick Morange
 
Re : macro masquer des lignes et démasquer d'autre lignes ??

Merci pour la piste mais peu tu juste me décrire les commandes rapidement pour que je m'y retrouve car je n'arive pas a parametrer pour que l'affichage se fasse sur dix ligne et la macro decale d'une ligne "demasquer" dessous et une ligne a "masquer" en plus en haut ...
Merci d'avance
frabennny
 
Re : macro masquer des lignes et démasquer d'autre lignes ??

Bonjour,

Je me suis entièrement basé sur l'exemple de votre classeur situé sur la feuille "Nouvelle macro".
Le code recherche la 1ère ligne visible de la colonne A qui contient une donnée ainsi que
la dernière ligne visible de la colonne A qui contient une donnée.
Il masque la 1ère (si elle est visible) et démasque la ligne suivant la dernière ligne (si elle est invisible).
Selon votre exemple, on trrouve donc ligne 29 à masquer et ligne 41 + 1 à démasquer

Si vous voulez travailler sur seulement 10 lignes (par exemple ligne 29 à ligne 38 seules visibles)
il suffit de masquer à la main les lignes 39 à 41.


Cordialement.

PMO
Patrick Morange
 
Re : macro masquer des lignes et démasquer d'autre lignes ??

ok merci pour les infos, j'arrive à bricoler qq chose mais pour incrementer d'une ligne a chaque fois la formule me bloque car j'ai des données dans l'ensemble du tabelau

J'ai fait un auter exemple pour etre plus clair ..
L'application finale est un calendrier ou je viens inserer un planning jour par jour et en fait chaque remise à jour je veux cacher une ligne de date ancienne et montrer une ligne à venir

Merci d'avance de me venir en aide
Frabennny
 

Pièces jointes

Re : macro masquer des lignes et démasquer d'autre lignes ??

Bonjour,

J'ai programmé à partir de votre exemple; l'idée est de borner en colonne A le début et la fin de la plage concernée.
Ainsi ai-je mis des bornes (####) en A15 et en A404. Si les symboles #### ne vous plaisent pas, vous pouvez les changer
en adaptant à votre gré la constante Const BORNE As String = "####"
Il y a également la possibilité de les cacher en mettant la couleur de la police égale à la couleur du fonds.

Code à copier dans un module standard
Code:
'/// A adapter selon votre goût ///
Const BORNE As String = "####"
'//////////////////////////////////

Sub Descendre()
Call VoirLignes(True)
End Sub

Sub Remonter()
Call VoirLignes(False)
End Sub

Sub VoirLignes(VersLeBas As Boolean)
Dim deb&
Dim fin&
Dim numLig&
Dim R As Range
On Error Resume Next
deb& = Cells.Find(What:=BORNE, After:=[a1], SearchOrder:=xlByRows, SearchDirection:=xlNext).Row + 1
fin& = Cells.FindNext(After:=Range("a" & deb&)).Row - 1
If deb& = 0 Or fin& <= deb& Then Exit Sub
On Error GoTo 0
Set R = Range(Cells(deb&, 1), Cells(fin&, 1))
Set R = R.SpecialCells(xlCellTypeVisible)
If VersLeBas Then
  numLig& = R.Row
Else
  numLig& = R.Row - 1
End If
If numLig& = deb& - 1 Then Exit Sub
If numLig& + R.Rows.Count = fin& + 1 Then Exit Sub
With ActiveSheet
  .Rows(numLig&).EntireRow.Hidden = VersLeBas
  .Rows(numLig& + R.Rows.Count).EntireRow.Hidden = Not VersLeBas
End With
End Sub

J'ai ajouté la Sub Remonter qui me semble tout aussi nécessaire.

Cordialement.

PMO
Patrick Morange
 
Re : macro masquer des lignes et démasquer d'autre lignes ??

MERCI C génial
ça correspond completement, vous m'avez vraiment beaucoup depanné.

Si je veut pousser en ajoutant un option qui m'affiche 30 lignes de plus pour visualiser deux mois par exemple?
Apres c promis j'arrete 😉

Frabennny
 
Re : macro masquer des lignes et démasquer d'autre lignes ??

Bonjour,

Voici un code pour démasquer des lignes supplémentaires aussi bien en haut qu'en bas.

FONCTIONNEMENT
Une InputBox s'affiche et demande le nombre de lignes supplémentaires à démasquer.
Si vous tapez un nombre positif, les lignes à démasquer sont vers le bas.
Si vous tapez un nombre négatif, les lignes à démasquer sont vers le haut.

Code:
Sub AjouterLignes()
Dim deb&
Dim fin&
Dim numLig&
Dim R As Range
Dim reponse
Dim Rdeb&
Dim Rfin&
Dim i&
On Error Resume Next
deb& = Cells.Find(What:=BORNE, After:=[a1], SearchOrder:=xlByRows, SearchDirection:=xlNext).Row + 1
fin& = Cells.FindNext(After:=Range("a" & deb&)).Row - 1
If deb& = 0 Or fin& <= deb& Then Exit Sub
On Error GoTo 0
Set R = Range(Cells(deb&, 1), Cells(fin&, 1))
Set R = R.SpecialCells(xlCellTypeVisible)
Rdeb& = R.Row
Rfin& = R.Row + R.Rows.Count - 1
reponse = Application.InputBox(Title:="Démasquer plus de lignes", Type:=1, _
  prompt:="Tapez le nombre de lignes" & vbCrLf & "(négatif=vers le haut / positif=vers le bas)")
If reponse = False Or reponse = 0 Then Exit Sub
If reponse > 0 Then
  For i& = Rfin& + 1 To Rfin& + reponse
    If i& = fin& + 1 Then Exit For
    ActiveSheet.Rows(i&).EntireRow.Hidden = False
  Next i&
Else
  For i& = Rdeb& - 1 To Rdeb& + reponse Step -1
    If i& = deb& - 1 Then Exit For
    ActiveSheet.Rows(i&).EntireRow.Hidden = False
  Next i&
End If
End Sub

Cordialement.

PMO
Patrick Morange
 
Re : macro masquer des lignes et démasquer d'autre lignes ??

M Morange un grand merci
oui vraiment car ça me fait progresser sur les cdes visual basic
et surtout ça me fait gagner un temps considerable sur mon fichier final de suivi de poduction;
Merci Beaucoup
et Merci de "donner" vos compétences ..
Frabennny
 
- 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
452
Retour