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 !

Re : Mode plan

Hello,
Sauf erreur de ma part, le mode plan n'autorise pas la sélection multiple...
Mais par macros affectées à deux boutons, ce doit être possible ainsi :

Sub MAsquer_Colonne()
Application.ScreenUpdating = False
Range("F:F,H:H,J:J,L:L").Select
Selection.EntireColumn.Hidden = True
Application.ScreenUpdating = True
End Sub
Sub Afficher_Colonne()
Application.ScreenUpdating = False
Range("F:F,H:H,J:J,L:L").Select
Selection.EntireColumn.Hidden = False
Application.ScreenUpdating = True
Range("F1").Select
End Sub
Te permet de masquer les colonnes F / H / J / L en même temps
A adapter à ton cas
A++
Lio
 
Re : Mode plan

Bonsoir à tous

EDITION III: mcj1997 , voici pour masquer/démasquer des lignes
ici les ligne 6,8,10 et 12
Code:
Sub lignes_masquees_demaquees()
Dim r As Range
Set r = Union(Rows(6), Rows(8), Rows(10), Rows(12))
r.EntireRow.Hidden = Not r.EntireRow.Hidden
End Sub
TheLio (pour infos)
Tes macros peuvent se réunir en une seule.
1ère exécution du code VBA: masque
1ère exécution du code VBA :démasque
Code:
Sub MAsquer_DEMasquerColonne()
Application.ScreenUpdating = False
Range("F:F,H:H,J:J,L:L").EntireColumn.Hidden = _
Not Range("F:F,H:H,J:J,L:L").EntireColumn.Hidden
Application.ScreenUpdating = True
End Sub
En version "raccourcie"
Code:
Sub MAsquer_DEMasquerColonne_BIS()
Application.ScreenUpdating = False
[F:F,H:H,J:J,L:L].EntireColumn.Hidden = _
Not [F:F,H:H,J:J,L:L].EntireColumn.Hidden
Application.ScreenUpdating = True
End Sub

EDITION II:
une autre façon de faire
Code:
Sub variante()
Dim r As Range
Set r = Union(Columns(6), Columns(8), Columns(10), Columns(12))
r.EntireColumn.Hidden = Not r.EntireColumn.Hidden
End Sub
 
Dernière édition:
Re : Mode plan

Salut,mcj1997,jeanpierre,thleo,staple

en cas ou tu décide de masque les lignes a l'aide d'un userform et optionbutton en plus de ce qui a été proposer :

Code:
Private Sub OptionButton1_Click()
  Masque Range("6:26"), 1, OptionButton1.Caption, 1
End Sub

Private Sub OptionButton2_Click()
  Masque Range("3:5,9:26"), 1, OptionButton2.Caption, 1
End Sub

Private Sub OptionButton3_Click()
  Masque Range("3:8,12:26"), 1, OptionButton3.Caption, 1
End Sub

Private Sub OptionButton4_Click()
  Masque Range("3:11,15:26"), 1, OptionButton4.Caption, 1
End Sub

Private Sub OptionButton5_Click()
  Masque Range("3:14,18:26"), 1, OptionButton5.Caption, 1
End Sub

Private Sub OptionButton6_Click()
  Masque Range("3:17,21:26"), 1, OptionButton6.Caption, 1
End Sub

Private Sub OptionButton7_Click()
  Masque Range("3:20,24:26"), 1, OptionButton7.Caption, 1
End Sub

Private Sub OptionButton8_Click()
  Masque Range("3:23"), 1, OptionButton8.Caption, 1
End Sub

Private Sub UserForm_Initialize()
  OptionButton1 = False
  Masque Range("2:26"), 0, "", 0
End Sub

Private Sub Masque(Zone As Range, Etat As Boolean, Valeur$, Optional Ferme As Boolean)
  Application.ScreenUpdating = False
  Zone.EntireRow.Hidden = Etat
  [a1] = Valeur
  If Ferme Then Unload Me
  Application.ScreenUpdating = True
End Sub

Cordialement
 
Re : Mode plan

Sub lignes_masquees_demaquees()
Dim r As Range
Set r = Union(Rows(3), Rows(4), Rows(5), Rows(6), Rows(23), Rows(24), Rows(25))
r.EntireRow.Hidden = Not r.EntireRow.Hidden
End Sub

J'ai retenu cette solution, comment intégrer votre formule, pour intégrer des boutons, qui me parait bien ?

Merci d'avance.
 
Re : Mode plan

Bonjour,

Sur cette ligne :

"Set r = Union(Rows(3), Rows(4), Rows(5), Rows(6), Rows(23), Rows(24)........"

j'ai mis trop de références de lignes, y a t-il moyen de ne pas être limité en nombres de lignes à masquer/démasquer ?

Merci d'avance,
 
Re : Mode plan

Bonjour



Voici comment modifier le code de la macro.
Code:
[FONT=Courier New][COLOR=darkblue]Sub[/COLOR] lignes_masquees_demaquees()
[COLOR=darkblue]Dim[/COLOR] r [COLOR=darkblue]As[/COLOR] Range
[COLOR=darkblue]Dim[/COLOR] rr [COLOR=darkblue]As[/COLOR] Range
[COLOR=darkblue]Dim[/COLOR] rrr [COLOR=darkblue]As[/COLOR] Range
[COLOR=darkblue]Dim[/COLOR] R_A [COLOR=darkblue]As[/COLOR] Range

[COLOR=darkblue]Set[/COLOR] r = Union(Rows(3), Rows(4), Rows(5), Rows(6), Rows(23), Rows(24), Rows(25))
[COLOR=darkblue]Set[/COLOR] rr = Union(Rows(6), Rows(8), Rows(10), Rows(12), Rows(46), Rows(48), Rows(50))
[COLOR=darkblue]Set[/COLOR] rrr = Union(Rows(24), Rows(32), Rows(70), Rows(80), Rows(90), Rows(100), Rows(110))
[COLOR=darkblue]Set[/COLOR] R_A = Union(r, rr, rrr)

R_A.EntireRow.Hidden = [COLOR=darkblue]Not[/COLOR] r.EntireRow.Hidden

[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Sub[/COLOR]
[/FONT]
 
- 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
179
Réponses
10
Affichages
380
Réponses
1
Affichages
396
  • Question Question
Réponses
7
Affichages
345
Réponses
4
Affichages
268
Retour