Masquer des lignes

  • Initiateur de la discussion Alex
  • Date de début
A

Alex

Guest
Salut,

Encore un problème en perspective:


Select Case choix

Case 1
With Sheets(1)
.Range("e30") = "carton"
.Range("i59").Formula = "=((f59+g59)/2)*h59"
.Range("i60") = 0
End With

Case 2
With Sheets(1)
.Range("e30") = "autres"
.Range("i60").Formula = "=((f60+g60)/2)*h60"
.Range("i59") = 0
End With


Chaque choix est relié à un bouton d'option. Lorsque je clique sur 'choix1', j'aimerais que la ligne 60 soit masquée, et qu'elle soit restaurée si je clique sur 'choix2' une autre fois.


Merci d'avance pour votre aide.

A+

Alex
 
D

DJN90

Guest
Bonjour,

Tu peux essayer ces instructions

Pour cacher (bouton option 1)

Rows("60:60").Select
Selection.EntireRow.Hidden = True

Pour montrer (bouton option 2)

Rows("60:60").Select
Selection.EntireRow.Hidden = False

Est-ce cela que tu recherches ?

Dan
 
P

polpoye

Guest
pour masquer la ligne 60:

Rows("60:60").Select
Selection.EntireRow.Hidden = True
Range("A60").Select // pour faire joli

pour afficher la ligne 60:
Rows("9:9").Select
Selection.EntireRow.Hidden = False
Range("A60").Select // pour faire tres joli !!!

a inserer dans ton code en fonction.....
a bientot
 
S

schmail

Guest
Salut Alex

Je ne suis pas un puriste du VBA mais cela doit ressembler à cela

If OptionButton1.value=True then
Range("A60").Select
Range("A60" ).EntireRow.Hidden = True
Else
Range("A60").Select
Selection.EntireRow.Hidden = False
End If

@+
 
@

@+Thierry

Guest
Salut Alex

Si tu parles bien de Controls "OptionButtons", leur valeur boolean respective suffira.

Par exemple si l'OptionButton1 est sensé contrôler le masquage de ligne 60 écrit ceci dans la procédure évènementielle qui te convient le mieux (ici pour l'exemple je prends l'évènement click... (ce pourrait être dans un autre évènement)

Private Sub OptionButton1_Click()
If OptionButton1 = True Then
With Sheets(1)
.Rows(59).Hidden = False
.Rows(60).Hidden = True
End With
End If
End Sub

Private Sub OptionButton2_Click()
If OptionButton2 = True Then
With Sheets(1)
.Rows(60).Hidden = False
.Rows(59).Hidden = True
End With
End If
End Sub

Ceci dit.... En essayant de suivre et d'adapter ton exemple, que tu as malheureusement posté incomplètement... Ce qui oblige à imaginer... Voici une adaptation possible en partant du principe que c'est à la validation des données par un CommndButton1, que le choix est appliqué :

Dim Choix As Byte

Private Sub OptionButton1_Click()
If OptionButton1 = True Then Choix = 1
End Sub

Private Sub OptionButton2_Click()
If OptionButton2 = True Then Choix = 2
End Sub

Private Sub CommandButton1_Click()
Select Case Choix

Case 1
With Sheets(1)
.Range("e30") = "carton"
.Range("i59").Formula = "=((f59+g59)/2)*h59"
.Range("i60") = 0
.Rows(59).Hidden = False
.Rows(60).Hidden = True
End With

Case 2
With Sheets(1)
.Range("e30") = "autres"
.Range("i60").Formula = "=((f60+g60)/2)*h60"
.Range("i59") = 0
.Rows(60).Hidden = False
.Rows(59).Hidden = True
End With
End Select
End Sub

Bon Appétit
@+Thierry
 
@

@+Thierry

Guest
Hello, il y a eu plein de monde pendant que j'écrivais !

Salut Polpoye, schmail et DNJ90 et le forum.

Comme vous avez pu le constater... Il n'y a aucun besoin de l'instruction "Select"... Comme j'ai fait la "guerre" à Mytå... et à bien d'autres... Essayer toujours de supprimer cette instruction qui en plus de faire un joli feu d'artifices, ralentit d'autant la procédure...

Vous verrez, souvent quand on enregistre une macro... Il y a des selects de partout... Le but du jeu c'est de supprimer SELECT puis dans l'instruction suivante...SELECTION......... Dans 90% des cas çà marche et c'est pas difficile...

Exemple :
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 05/05/2003 by Thierry
'
'
Rows("60:60").Select
Selection
.EntireRow.Hidden = True
End Sub


Après :
Sub Macro1()
Rows("60:60").EntireRow.Hidden = True
End Sub



Bon Appétit
@+Thierry
 

Discussions similaires

A
Réponses
3
Affichages
780
Alex
A
A
Réponses
1
Affichages
1 K
Mytå
M

Statistiques des forums

Discussions
312 755
Messages
2 091 726
Membres
105 058
dernier inscrit
axcelle