Supprimer deux lignes et une ligne
Fabrice.GAC77
Messages postés
2
Statut
Membre
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis débutant en VBA ce code fonctionne sur une feuille simple
J'ai 50 groupes de trois lignes de saisies. Je souhaiterais masquer par une macro à partir de la ligne 1, la ligne 2 et la ligne 3.La seconde macro à partir de la ligne 1 masquer uniquement la 2.
Merci pour votre dévouement.
Je suis débutant en VBA ce code fonctionne sur une feuille simple
Sub Ligne2()
'
' Ligne Macro
'
'Cache les lignes de 2 à 10 de 2 en 2
'j=1 veut dire à partir de la ligne 1
'Step 3 Toutes les 2 lignes abc donnera ab
Dim j As Integer
For j = 1 To 23 Step 3
Rows(1 + j + 1).Select
Selection.EntireRow.Hidden = True
Next
End Sub
J'ai 50 groupes de trois lignes de saisies. Je souhaiterais masquer par une macro à partir de la ligne 1, la ligne 2 et la ligne 3.La seconde macro à partir de la ligne 1 masquer uniquement la 2.
Merci pour votre dévouement.
1 réponse
-
Bonjour
Option Explicit
Const lideb = 1
' supprime à partir de lideb+1, deux lignes toutes les trois lignes
Public Sub SuppLignes23()
Dim li As Long, lifin As Long
With ActiveSheet
lifin = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
For li = lideb To lifin
If (li - 1) Mod 3 <> 0 Then Rows(li).Hidden = True
Next li
End With
End Sub
' supprime à partir de lideb+1, une lignes toutes les 3 lignes
Public Sub SuppLignes2()
Dim li As Long, lifin As Long
With ActiveSheet
lifin = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
For li = lideb To lifin
If li Mod 3 = 2 Then Rows(li).Hidden = True
Next li
End With
End Sub
Public Sub RAZ()
Dim lifin As Long
With ActiveSheet
lifin = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
Rows(lideb & ":" & lifin).Hidden = False
End With
End Sub
Cdlmnt-
Merci beaucoup pour votre réponse rapide. Je n’ai pas été assez précis vu que c’est la première fois que je demande quelque chose sur un forum. Je vous prie de bien vouloir m’excuser.
Je voudrais utiliser 2 boutons CheckBox1_Click()
A partir de la huitième ligne
Je veux garder la première ligne, masquer les deux lignes du dessous, et ceci jusqu’à la fin de mon tableau qui s’arrête à la ligne 170
Deuxième CheckBox2_Click()
Je veux garder les deux premières lignes, masquer la troisième.
Pardon pour mon manque de clarté.
Merci encore.:-)- Bonjour a vous deux,
Avec le code de ccm81, code a mettre dans VBA de la feuille des CheckBox
Si Check1 cochee et coche 2, decoche 1 et inversement
Deux Check decochees apres une cochee, RAZ-->toutes les lignes apparaissent
Option Explicit Const lideb = 1 ' supprime à partir de lideb+1, une lignes toutes les 3 lignes Private Sub CheckBox1_Click() Dim li As Long, lifin As Long Application.ScreenUpdating = False If Not CheckBox1 And Not CheckBox2 Then Call RAZ: Exit Sub If CheckBox1 Then CheckBox2.Value = 0 With ActiveSheet Call RAZ lifin = .Cells.Find("*", , , , xlByRows, xlPrevious).Row For li = lideb To lifin If li Mod 3 = 2 Then Rows(li).Hidden = True Next li End With Application.ScreenUpdating = True End Sub ' supprime à partir de lideb+1, deux lignes toutes les trois lignes Private Sub CheckBox2_Click() Dim li As Long, lifin As Long Application.ScreenUpdating = False If Not CheckBox2 And Not CheckBox1 Then Call RAZ: Exit Sub If CheckBox2 Then CheckBox1.Value = 0 With ActiveSheet Call RAZ lifin = .Cells.Find("*", , , , xlByRows, xlPrevious).Row For li = lideb To lifin If (li - 1) Mod 3 <> 0 Then Rows(li).Hidden = True Next li End With Application.ScreenUpdating = True End Sub Public Sub RAZ() Dim lifin As Long With ActiveSheet lifin = .Cells.Find("*", , , , xlByRows, xlPrevious).Row Rows(lideb & ":" & lifin).Hidden = False End With End Sub
-