Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

masquer des lignes (bis)

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

Alex

Guest
Rebonjour,

Merci pour votre aide, ça marche bien.
J'ai encore un problème:j'ai créé deux userforms, l'un avec des checkbox et l'autre des boutons d'options.Voici une partie de ma procédure:

Pour le premier:

Private Sub CommandButton1_Click()

If CheckBox1.Value = True Then
Rows(37).Hidden = False
Rows(38).Hidden = False
Rows(39).Hidden = False
Rows(40).Hidden = False
Rows(41).Hidden = False
Rows(42).Hidden = False
Rows(43).Hidden = False
Else
Range("c37").Value = ""
Rows(37).Hidden = True
Rows(38).Hidden = True
Rows(39).Hidden = True
Rows(40).Hidden = True
Rows(41).Hidden = True
Rows(42).Hidden = True
Rows(43).Hidden = True
End If


Pour le second:

Private Sub CommandButton1_Click()

Dim choix As Byte

If OptionButton1 = True Then choix = 1
If OptionButton2 = True Then choix = 2

Select Case choix

Case 1
With Sheets(1)
.Range("e29") = "bpe"
.Range("i42").Formula = "=((f42*g42)/2)*h42"
.Range("i49").Formula = "=((f49+g49)/2)*h49"
.Range("i63").Formula = "=((f63+g63)/2)*h63"
.Range("i82").Formula = "=g82*h82"
.Range("i91").Formula = "=f91*h91"
.Range("i100").Formula = "=((f100+g100)/2)*h100"
.Range("i108").Formula = "=((f108+g108)/2)*h108"
.Range("i43") = 0
.Range("i50") = 0
.Range("i64") = 0
.Range("i83") = 0
.Range("i92") = 0
.Range("i101") = 0
.Range("i109") = 0
.Rows(43).Hidden = True
.Rows(50).Hidden = True
.Rows(64).Hidden = True
.Rows(83).Hidden = True
.Rows(92).Hidden = True
.Rows(101).Hidden = True
.Rows(109).Hidden = True
.Rows(42).Hidden = False
.Rows(49).Hidden = False
.Rows(63).Hidden = False
.Rows(82).Hidden = False
.Rows(91).Hidden = False
.Rows(100).Hidden = False
.Rows(108).Hidden = False
End With


Si je ne sélectionne pas la checkbox1, la ligne 42 est masquée.
Or, elle réapparait lorsque je clique sur l'optionbutton1.
Si vous avez une idée, merci beaucoup.

A+,

Alex
 
@

@+Thierry

Guest
Re Salut Alex,


Huuum ! Quelques recommandations....

Tu aurais dû rester dans le même fil...

Afin d'alléger ton code...Tu peux écrire :
Rows("37:43").Hidden = True

Pour ton problème, je ne sais pas si tes UserForms sont encore chargés ?...
Mais à prime abord tu te compliques la vie ! Pourquoi pouvoir accéder à cette possibilité par deux moyens différents ? (C'est aps du tout catholique !)

Enfin un soluce si tes checkboxs apparaissent dans le premier UserForm... et qu'il soit déchargé avant le second (ça marchera aussi si il ne l'est pas)

Dans un Module Standard (voir fil déclaration de variable d'hier que j'ai eu avec Ti)
Public Masquage As Boolean


Dans le Private Module de ton UserForm1

Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then
Rows("37:38").Hidden = False
Masquage = False
Else
Range("c37").Value = ""
Rows("37:43").Hidden = True
Masquage = True
End If


Et dans le Private Module de ton UserForm2 tu pourras récupérer ce que le User a choisi.... avec cette variable "Masquage"... Mais bon c'est vraiment "Usine à Gaz"... C'est toi qui n'est pas clair dans tes idées, il faut parfois bien "dessiner" son appli avant d'esssayer de l'écrire en VBA...

Bonne Soirée
@+Thierry


PS pour alléger aussi tu peux écrire au lieu de toutes ces lignes...:
Range("I1,I3,I25,I55,I100") = 0
 
A

Alex

Guest
Bonjour tout le monde,


Juste pour remercier (encore une fois) Thierry pour ses supers conseils très très utiles pour des néophytes du VBA.

A+,

Alex
 
A

Alex

Guest
Rebonjour,

j'aimerais avoir des éclaircissements sur la procédure de Thierry.J'aimerais savoir l'intérêt de la variable 'masquage'.
Je te réexplique mon problème:

J'ai un premier userform avec checkboxs.Si je ne sélectionne pas la checkbox1, les lignes 37 à 43 sont masquées.Ensuite, le checkbox se décharge.J'ai alors un userform avec deux boutons d'options. Quand j'en sélectionne un, certaines lignes du tableau disparaissent (par exemple la ligne 64), et d'autres contiennent une formule. Le problème intervient alors: dans les lignes que j'avais masquées au début, il y en a une qui réapparait (par exemple la ligne 42).

C'est un peu compliqué...alors merci pour votre aide.

A+,

Alex
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…