|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Date d'inscription: août 2008
Messages: 18
|
Bonjour, je voudrais créer une macro qui à l'aide d'un bouton " case à cocher " cacherait certaines lignes d'une base de donné.
j'ai déja crée mon bouton " case à cocher " qui me permet dans mon cas (exemple prit pour faire des tests) de masquer et d'afficher les lignes 100 à 110 lorsque j'appuie sur mon bouton Code :
Private Sub CheckBox1_Click() If CheckBox1.Value Then Rows("100:110").EntireRow.Hidden = True Else Rows("100:110").EntireRow.Hidden = False End If End Sub Toutes les lignes 100 à 110 s'affiche puis se masquer instantanement et je vois pas bien en tant que débutant dans les macros d'ou cela peut bien venir. je vous mets mon morceau de code. Je penses que c'est pas grand chose à corriger c'est pour cela que je demande votre aide Code :
Private Sub CheckBox1_Click() Dim plage As Range Dim cel As Range Set plage = Application.Sheets(1).Range("A100:A110") For Each cel In plage If CheckBox1.Value Then End If If cel.Font.ColorIndex = 1 Then Rows("100:110").EntireRow.Hidden = True Else Rows("100:110").EntireRow.Hidden = False End If Next End Sub |
|
|
|
|
|
#2 |
|
Membre émérite
![]() |
Bonjour
La macro masque ou affiche sytématiquement toutes les lignes Code :
Rows("100:110").EntireRow.Hidden = True Else Rows("100:110").EntireRow.Hidden = False Code :
Cel.EntireReow.hidden=... |
|
|
|
|
|
#3 |
|
Membre Confirmé
![]() Date d'inscription: juillet 2006
Messages: 276
|
Bonjour,
Essayez comme ca : Code :
For Each cel In plage If cel.Font.ColorIndex = 1 Then Rows(cel.Row).EntireRow.Hidden = True Else Rows(cel.Row).EntireRow.Hidden = False End If Next |
|
|
|
|
|
#4 |
|
Invité régulier
![]() Date d'inscription: août 2008
Messages: 18
|
Si tu parle de mon premier morceau de code : lorsque je coche la case cela masque les lignes 100 à 110 et lorsque je décoche la case, les lignes 100 à 110 se réaffichent.
C'est exactement ce que je souhaite mais je voudrais incrémenter un morceau de code qui en plus de cela masque uniquement les lignes ou la police est noir et laisse les lignes ou la police et d'une autres couleur et lorsque je décoche la case toutes les lignes se réaffichent EDIT : Accesnewbie : je vais essayer ton code Désolé cela ne fonctionne pas |
|
|
|
|
|
#5 |
|
Membre émérite
![]() |
A ce moment là, je verrai un truc comme ça :
Code :
Private Sub CheckBox1_Click() Dim plage As Range Dim cel As Range Set plage = Application.Sheets(1).Range("A100:A110") For Each cel In plage If CheckBox1.Value Then If cel.Font.ColorIndex = 1 Then cel.EntireRow.Hidden = True End if Else Rows("100:110").EntireRow.Hidden = False End If Next End Sub |
|
|
|
|
|
#6 |
|
Invité régulier
![]() Date d'inscription: août 2008
Messages: 18
|
Ca allair de marcher sur ma partie test, je vais voir sur ma base mais je penses qu'il n'y aura pas de soucie
Merci beaucoup
|
|
|
|
|
|
#7 | |
|
Invité régulier
![]() Date d'inscription: août 2008
Messages: 18
|
Citation:
Cela est surement du aux nombres importants d'information que j'ai dans ma base |
|
|
|
|
|
|
#8 |
|
Membre émérite
![]() |
Je pense que c'est normal, le code est pas optimisé.
En effet si la est décochée, il faut réafficher toutes les lignes de la plage, ce n'est pas la peine de scanner chaque ligne. Il faut inverser le test et la boucle, ce qui donnerait : Code :
Private Sub CheckBox1_Click() Dim plage As Range Dim cel As Range Set plage = Application.Sheets(1).Range("A100:A110") If CheckBox1.Value Then For Each cel In plage If cel.Font.ColorIndex = 1 Then cel.EntireRow.Hidden = True End if Next Else Rows("100:110").EntireRow.Hidden = False End If End Sub Frédéric http://www.access-developpement.com |
|
|
|
|
|
#9 |
|
Inactif(ve)
![]() Date d'inscription: juin 2007
Localisation: Belqique
Messages: 2 074
|
Bonjour,
Une autre façon ? avec un code optimiser ? Code :
Private Sub CheckBox1_Click() Dim Lig As Long If CheckBox1.Value Then For Lig = 100 To 110 If Cells(Lig, 1).Font.ColorIndex = vbBlack Then Rows(Lig).Hidden = True End If Next Lig Else Rows("100:110").Hidden = False End If End Sub |
|
|
|
|
|
![]() |
||
Masquer lignes suivant la couleur de la police d'une cellule avec un UserForm
|
||
| Outils de la discussion | |
|
|