Plage.Rows.Hidden

  • Initiateur de la discussion evelynetfrancois
  • Date de début
E

evelynetfrancois

Guest
rebonjour a toutes et tous
voici mon soucis !

Set Plage = .Range("e3:e300").Cells.SpecialCells(xlCellTypeBlanks)
If Not Plage Is Nothing Then Plage.Rows.Hidden = True

cache toutes les lignes vides dont les cellules comprisent entre E3 et E300 sont vides.

cependant si elle sont vides mais contiennent une formule !!!
elles ne sont alors plus considerées comme vides !!!

auriez vous une soluce ?

merci et bonne journée
 
E

evelynetfrancois

Guest
voici la macro dans sa totalité .
merci

Private Sub CommandButton1_Click()
Dim Plage As Range
Application.ScreenUpdating = False
Sheets("sorties").Select
Rows("3:300").Select
Selection.EntireRow.Hidden = True
Selection.EntireRow.Hidden = False
ActiveSheet.PageSetup.PrintArea = "$a$2:$h$300"
On Error Resume Next
With ActiveSheet
Set Plage = .Range("e3:f300").Cells.SpecialCells(xlCellTypeBlanks)
If Not Plage Is Nothing Then Plage.Rows.Hidden = True
UserForm6.Hide
.PrintPreview
RETOUR = MsgBox("IMPRIMER ? ", 4 + vbInformation, " Feuilles de Sorties / Synthéses . ")
If RETOUR = vbYes Then
.PrintOut
End If
.Rows.Hidden = False
Range("b2").Select
End With
End Sub
 
Z

Zon

Guest
Salut,

tu ouvres un second fil c'est la même chose ou pas que l'autre, Xlcelltypeblanks ne fonctionne que pour els cellules réellement vides, dans ton cas le plus simple est de passer par une boucle.

Testes ceci dans ton cas cela pourriat te convenir, on prend le texte et les nombres.

Set Plage = .Range("e3:e300").Cells.SpecialCells(xlCellTypeformulas,3)

A+++
 
E

evelynetfrancois

Guest
bonjour zon et merci d'avoir pris en compte ma requete

effectivement j'ai double les post car je me suis rendu compte que le fait de solutionner le premier post n'etait pas suffisant dsl ( et impossible de le supprimer !)
lorsque j'ai remarque que la ligne
Set Plage = .Range("e3:e300").Cells.SpecialCells(xlCellTypeBlanks)
ne cacher que les lignes completement vide !!!
mais pas celle contenent une formule.

En fait ce que je cherche a realiser c'est excatement la meme fonction qu'un filtre auto avec " non vide " mais sur une plage plus importante (environ 2000 lignes sur une seule colonne )

merci beaucoup
evelynetfrancois
 
Z

Zon

Guest
Salut,

Arf j'oublie ces formules à chaque fois...
Je ne connais pas autre chose que de passer par une boucle:
On fait un 1 er nettoygae des cellules vides puis on boucle uniquement sur les cellules contenant des formules.

Private Sub CommandButton1_Click()
Dim Plage As Range, C As Range, Retour
Application.ScreenUpdating = False
With Sheets(1)
.Rows.Hidden = False
Set Plage = .Range("A1:H300")
.PageSetup.PrintArea = Plage.Address
With Plage.Columns(1)
On Error Resume Next
.Cells.SpecialCells(xlCellTypeBlanks).Rows.Hidden = True
For Each C In .SpecialCells(xlCellTypeFormulas).Cells
If C = "" Then C.Rows.Hidden = True
Next C
End With
UserForm6.Hide
Application.ScreenUpdating = True
.PrintPreview
End With


A+++
 
E

evelynetfrancois

Guest
bonsoir zon

malgre plusieurs tentatives je n'arrive que tres difficilement aux résultats escomptés

alors j'ai opté plus simplement par la programmation de tris auto qui me simplifie la vie lol
encore merci pour tout !!
E et F
 

Discussions similaires

Statistiques des forums

Discussions
314 210
Messages
2 107 304
Membres
109 798
dernier inscrit
NAJI2005