Excel VBA - cacher des lignes
Résolu/Fermé
bobie
-
17 oct. 2009 à 17:06
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 17 oct. 2009 à 19:49
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 17 oct. 2009 à 19:49
A voir également:
- Excel VBA - cacher des lignes
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Si et excel - Guide
- Application pour cacher des applications - Guide
5 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
17 oct. 2009 à 17:30
17 oct. 2009 à 17:30
Bonjour,
à mettre dans la feuille :
Sélectionner une autre cellule rafraichira
eric
à mettre dans la feuille :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If IsError([F16]) Then Range("plage1").EntireRow.Hidden = True Else Range("plage1").EntireRow.Hidden = False End If End Sub
Sélectionner une autre cellule rafraichira
eric
Bonjour, tu pourrais me faire un screen ( impr écran syst ) pour que je voie un peux ce que tu voudrais faire ? merci
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
17 oct. 2009 à 18:39
17 oct. 2009 à 18:39
et bien tu l'enleves de Worksheet_SelectionChange et tu le mets dans un sub masquer() (par exemple) que tu appelles à la fin de ta macro.
Et si tu veux l'accelérer tu mémorises l'état de tes plages et tu ne fais l'action que si c'est nécessaire. (à l'ouverture toutes les démasquer pour être sûr de leur état)
eric
Et si tu veux l'accelérer tu mémorises l'état de tes plages et tu ne fais l'action que si c'est nécessaire. (à l'ouverture toutes les démasquer pour être sûr de leur état)
eric
Eriiic
losque je veux appeler ma macro masquer() (se trouve dans sheet2) à la fin de ma macro Sub Consolidation_OWILOU() (se trouve dans module1), j'ai l'erreur suivante: Sub or Function not defined
quel est le probleme?
merci
losque je veux appeler ma macro masquer() (se trouve dans sheet2) à la fin de ma macro Sub Consolidation_OWILOU() (se trouve dans module1), j'ai l'erreur suivante: Sub or Function not defined
quel est le probleme?
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
17 oct. 2009 à 19:49
17 oct. 2009 à 19:49
met masquer() dans le module et précise sur quelle feuille tu veux travailler.
dim sh1 as worksheet
sh1=worksheets("Sheet2")
If IsError(sh1.[F16]) Then
sh1.Range("AA").EntireRow.Hidden = True
Else
sh1.Range("AA").EntireRow.Hidden = False
End If
....
(non testé...)
eric
dim sh1 as worksheet
sh1=worksheets("Sheet2")
If IsError(sh1.[F16]) Then
sh1.Range("AA").EntireRow.Hidden = True
Else
sh1.Range("AA").EntireRow.Hidden = False
End If
....
(non testé...)
eric
17 oct. 2009 à 17:42
et si j'ai plusieur plage?
je peux demultiplier ce code cidessous?
If IsError([F16]) Then
Range("plage1").EntireRow.Hidden = True
Else
Range("plage1").EntireRow.Hidden = False
merci
17 oct. 2009 à 18:02
un grand merci Eric.
Bobie
17 oct. 2009 à 18:21
voila j'ai fais mon code sur la base du code d'Eriiiic. Mais dès que je selectionne une cellule dans ma feuille alors la macro se lance (c'est normal).
Par contre cela bloque mon pc pendant une seconde. En fait je n'ai pas besoin d'une actualisation a chaque selection de cellule. Je n'en ai besoin q'une seule fois, à la fin de mon autre macro Sub Consolidation_OWILOU().
Comment puis-je faire?
merci
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
If IsError([F16]) Then
Range("AA").EntireRow.Hidden = True
Else
Range("AA").EntireRow.Hidden = False
End If
If IsError([F33]) Then
Range("AIUS").EntireRow.Hidden = True
Else
Range("AIUS").EntireRow.Hidden = False
End If
If IsError([F50]) Then
Range("ALNIA").EntireRow.Hidden = True
Else
Range("ALNIA").EntireRow.Hidden = False
End If
If IsError([F67]) Then
Range("DS").EntireRow.Hidden = True
Else
Range("DS").EntireRow.Hidden = False
End If
If IsError([F84]) Then
Range("DNA").EntireRow.Hidden = True
Else
Range("DNA").EntireRow.Hidden = False
End If
If IsError([F101]) Then
Range("CTL").EntireRow.Hidden = True
Else
Range("CTL").EntireRow.Hidden = False
End If
If IsError([F118]) Then
Range("NAV").EntireRow.Hidden = True
Else
Range("NAV").EntireRow.Hidden = False
End If
If IsError([F135]) Then
Range("REQUENTIS").EntireRow.Hidden = True
Else
Range("REQUENTIS").EntireRow.Hidden = False
End If
If IsError([F152]) Then
Range("ONEYWELL").EntireRow.Hidden = True
Else
Range("ONEYWELL").EntireRow.Hidden = False
End If
If IsError([F169]) Then
Range("NDRA").EntireRow.Hidden = True
Else
Range("NDRA").EntireRow.Hidden = False
End If
If IsError([F186]) Then
Range("ATMIG").EntireRow.Hidden = True
Else
Range("ATMIG").EntireRow.Hidden = False
End If
If IsError([F203]) Then
Range("ATS").EntireRow.Hidden = True
Else
Range("ATS").EntireRow.Hidden = False
End If
If IsError([F220]) Then
Range("ORACON").EntireRow.Hidden = True
Else
Range("ORACON").EntireRow.Hidden = False
End If
If IsError([F237]) Then
Range("EAC").EntireRow.Hidden = True
Else
Range("EAC").EntireRow.Hidden = False
End If
If IsError([F254]) Then
Range("ELEx").EntireRow.Hidden = True
Else
Range("ELEX").EntireRow.Hidden = False
End If
If IsError([F271]) Then
Range("TLES").EntireRow.Hidden = True
Else
Range("TLES").EntireRow.Hidden = False
End If
Application.ScreenUpdating = True
End Sub