Masquer un nombre très important de lignes vides

Chessnocoma

XLDnaute Junior
Bonjour à vous,
Je suis novice et maîtrise que très peu le VBA, jusqu’à présent j'ai créer un fichier servant de base, collectant des information dans plusieurs fichier sources, par l’intermédiaire de test. Le problème que je rencontre est la création d'une quantité énorme de ligne vide à masquer. J'aimerais avoir de l'aide afin de rendre plus rapide cette macro.
L'idéal serait que les lignes une fois caché réapparaissent si elles ne sont plus vides.

Je vous remercie par avance de l'aide que vous m'apporterez.
 

JCGL

XLDnaute Barbatruc
Re : Masquer un nombre très important de lignes vides

Bonjour à tous,
Bienvenue sur XLD,

Des lignes vides que tu souhaites masquer : OK

Reste à connaitre sur quelle(s) colonne(s) de ces lignes le code doit porter...

A+ à tous
 

Gorfael

XLDnaute Barbatruc
Re : Masquer un nombre très important de lignes vides

Salut Chessnocoma et le forum
Le problème que je rencontre est la création d'une quantité énorme de ligne vide à masquer.
Pas sûr de comprendre..
Juste une idée : Pourquoi les créer ? Pourquoi ne pas insérer des lignes si besoin, et conserver des lignes vides qui te gênent (puisque tu veux les masquer) ?
A+
Edit :
Code:
Sub test()
Dim Cel As Range, X As Long
Set Cel = Range("A1").SpecialCells(xlCellTypeLastCell)
For X = 1 To Cel.Row
    If Cells(X, Columns.Count).End(xlToLeft).Column = 1 And _
       IsEmpty(Cells(X, "A")) Then Rows(X).Hidden = True
Next X
End Sub
 
Dernière édition:

flyonets44

XLDnaute Occasionnel
Re : Masquer un nombre très important de lignes vides

Bonjour
voici un exemple de macro à adapter
Public Sub Clearvalues()
'OBJECTIF IDENTIFIER DES LIGNES à 0 POUR LES VIDER
Dim K&, Kc&, Y&, Tmp As Object, Plage As Range
Dim Tablo() As Variant, Ctd As Collection
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'Feuil2.Activate
Y = Cells(65536, 1).End(xlUp).Row
ReDim Tablo(1 To Y, 1)
For Y = 2 To Y
Tablo(Y, 1) = Cells(Y, 3) + Cells(Y, 4) + Cells(Y, 5)
Next
For Y = 2 To UBound(Tablo)
Range("G" & Y) = Tablo(Y, 1)
Next
'Kc=La colonne à traiter
Kc = 7
Set Ctd = New Collection
Set Plage = Range(Cells(2, Kc), Cells(Y, Kc))
With Plage
For Each Tmp In Plage
If Tmp.Value = 0 Then
'stockage des numeros de lignes à 0
Ctd.Add Tmp.Row, CStr(Tmp.Row)
End If
Next
End With
If Ctd.Count = 0 Then Exit Sub
'definition de la plage des lignes à 0
For K = 1 To Ctd.Count
'Range("E" & Ctd(K)).Value = Ctd(K)
If K = 1 Then Set Plage = Rows(Ctd(K))
Set Plage = Union(Plage, Rows(Ctd(K)))
Next
'Marquage ou Raz des lignes à 0
With Plage
'.Interior.ColorIndex = 33 'AU CHOIX
.Delete 'AU CHOIX
End With
Range("g:g").ClearContents
Application.Calculation = xlCalculationAutomatic
Set Plage = Nothing: Set Ctd = Nothing
Cells(2, 3).Activate
End Sub
 

Chessnocoma

XLDnaute Junior
Re : Masquer un nombre très important de lignes vides

Merci de m'avoir répondu si vite,
Je vais essayer de vous expliquer en détails ma situation:

J'ai deux type de fichier, des fichiers de suivi clients, et un fichier collectant les différentes taches à faire, j'ai utiliser des test de la forme si('X:...\E6<>"";E6;"")

Cela me collecte des informations, mais si il n'y a pas de taches en cours, la cellules est vide, afin d'avoir une meilleur vision de la situation, je comptais utiliser une macro pour masquer ces lignes vides, mais il s'avère que vu la quantité de client à traité, cette option engendre un temps de chargement beaucoup trop long.

Y'aurait t'il possibilité de n'importer directement que les information si elles sont complété ?

Je vous joint les fichier en PJ
 

Pièces jointes

  • Fiche modèle.xls
    148.5 KB · Affichages: 53
  • Suivi.xlsx
    28.2 KB · Affichages: 60
  • Suivi.xlsx
    28.2 KB · Affichages: 60
  • Suivi.xlsx
    28.2 KB · Affichages: 64

Chessnocoma

XLDnaute Junior
Re : Masquer un nombre très important de lignes vides

J'ai finalement créer une macro en utilisant la commande filtre, le délai d'attente est beaucoup moins long, mais est ce que sur un fichier contenant a peu près 25 000 ligne, le temps d'attente sera toujours aussi court.

Cette astuce sera t'elle encore viable par la suite ?

Y'aurai t'il un moyen de ne récupéré des fichier que les information utile, c'est a dire lorsque la colonne E est <> "", a ce moment elle importerait la ligne ?
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 447
Membres
103 213
dernier inscrit
Poupoule