besoin d'aide sur masque de lignes

  • Initiateur de la discussion Initiateur de la discussion nougat0_7
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nougat0_7

Guest
bonjour
Y a t'il une macro plus rapide que celle ci
pour masquer les lignes de la colonne A si certaines des lignes sont vides

Sub Masquage_Ligne()
Application.ScreenUpdating = False
For I = 1 To Range("A65536").End(xlUp).Row
If Cells(I, 1) = "" Then
Rows(I & ":" & I).Select
Selection.EntireRow.Hidden = True
End If
Next I
Application.ScreenUpdating = True
End Sub
merci
 
Re : besoin d'aide sur masque de lignes

Bonjour



Voici un code glanné sur le net et quii en plus traite lea colonne A
(Ca tombe bien 😉 )

Code:
Sub hideblankrowsincol()
'BY: Ivan F Moala
Dim myRg As Range
'Change the [A1], [A65536] to your range
Set myRg = Range([A1].End(xlDown), [A65536].End(xlUp))
On Error Resume Next
Set myRg = myRg.SpecialCells(4)
If Err = 0 Then
myRg.EntireRow.Hidden = True
End If
Set myRg = Nothing
End Sub

Tu peux y rajouter les Application.ScreenUpdating = True/False
 
Dernière édition:
Re : besoin d'aide sur masque de lignes

Re


Et une autre, (qui tiens sur une ligne)


Code:
Sub MasqueCELLULE_VIDES()
Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub
et sa version racccourci

Code:
Sub MasqueCELLULE_VIDES_II()
Columns("A:A").SpecialCells(4).EntireRow.Hidden = True
End Sub
PS: Ces deux macros, ce serait mieux que la colonne A ne soit entièrement pas vide avant de les tester

Sinon tu serais obligé d'utiliser celle-la
Code:
Sub DEMASQUE()
Cells.Rows.Hidden=False
End sub
 
Dernière édition:
Re : besoin d'aide sur masque de lignes

Bonjour Nougat0_7, le forum


Pour supprimer des lignes, j'aurai fait comme ce que tu as présenté. Pour faire plus rapide, je te propose une solution pour masquer les lignes vides (elles ne sont pas supprimées):
en filtrant les lignes non vides tout simplement.

Tu as donc une lecture, sans lignes vides.
Si tu veux utiliser les données, tu peux alors faire un copier/coller vers une autre feuille; les lignes masquées ne seront pas copiées.
Tu peux peut-être essayer de passer directement par les filtres élaborés (mais ça, je n'ai pas tenté).
voici mon code. Le filtre est appliqué à toute la feuille sinon, le filtre s'arrête à la première ligne vide.

Code:
Sub testFiltre()
    
    Cells.Select
    Selection.AutoFilter Field:=3, Criteria1:="<>"
    Range("C2").Select
    
End Sub

voilà une proposition 😉

Bonjour Staple1600 ... j'ai été trop lent et sans rééditer le post!
 
Dernière édition:
Re : besoin d'aide sur masque de lignes

Bonjour Staple1600

merci pour ta précision ... je pense ne plus être un débutant mais à chaque fois que je viens sur ce site, j'apprends de nouvelles choses...

ça devient difficile pour moi : je me contente d'adapter les macros enregistrées ... et les conseils donnés sur ce ExcelDownloads!

pourquoi ce [C2]? à quoi correspondent les crochets en VB 😕 😕
 
Re : besoin d'aide sur masque de lignes

aucune des réponses (sympa) que vous m'avez fournies ne convient ou ne fonctionnent pas (la première pas du tout)
Ce que je recherche c'est mon style de code mais qui fonctionne plus vite
Ne doit apparaitre que mes lignes ou sont marquées mes données en colonne A
(mon temps de tri prend 10 à 15 secondes c'est trop long)
merci
 
Re : besoin d'aide sur masque de lignes

RE


Tu peux aussi essayer cette modification dans ta macro d'origine
Code:
Sub Masquage_Ligne()
Dim I as Long
Application.ScreenUpdating = False
For I = 1 To Range("A65536").End(xlUp).Row
If Cells(I, 1) = "" Then Rows(I & ":" & I).EntireRow.Hidden = True
Next I
Application.ScreenUpdating = True
End Sub
Sur mon PC , idem, c'est trés rapide avec 500 lignes
 
Dernière édition:
Re : besoin d'aide sur masque de lignes

re,

aucune des réponses (sympa) que vous m'avez fournies ne convient ou ne fonctionnent pas (la première pas du tout)
merci

je viens de tester sur xl2003 ça fonctionne nickel mais pas sur xl2007 ... on va le virer pour de bon celui-là!!!
Staple1600 à dit:
Sub Masquage_Ligne()
Dim I as Long
Application.ScreenUpdating = False
For I = 1 To Range("A65536").End(xlUp).Row
If Cells(I, 1) = "" Then Rows(I & ":" & I).EntireRow.Hidden = True
Next I
Application.ScreenUpdating = True
je pense que cela sera quasiment aussi long : ça fonctionne ligne par ligne.

pourquoi pas la solution de Staple1600?

Sub MasqueCELLULE_VIDES()
Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub

elle masque commme ton code: entirerow.hidden 😕
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
910
Réponses
15
Affichages
784
Réponses
10
Affichages
661
Retour