Bonjour,
Existe t'il une macro qui permette de supprimer les lignes vides. En effet j'ai des données dans ma ligne 1 et 4 par exemple et j'aimerais qu'une simple macro m'enlève les lignes vides 2 et 3. Ou me les masquer, encore mieux.
Merci!
Bag
Bonjour,
Existe t'il une macro qui permette de supprimer les lignes vides. En effet j'ai des données dans ma ligne 1 et 4 par exemple et j'aimerais qu'une simple macro m'enlève les lignes vides 2 et 3. Ou me les masquer, encore mieux.
Merci!
Bag
bonsoir
essayez avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub masquerLigne() Dim r As Range Application.ScreenUpdating = False For Each r In Worksheets("feuil1").Range("A2:A15") With r .EntireRow.Hidden = ((.Value = "")) End With Next r Application.ScreenUpdating = True End Sub
pour supprimer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub supprLigne() With Sheets("Feuil1") For i = .Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1 If .Cells(i, 1) = "" Then Cells(i, 1).EntireRow.Delete End If Next i End With End Sub
J'ai essayé le masquage des lignes et ça m'a l'air parfait. Mais connais-tu la formule magique qui me permettrait de choisir plusieurs plages.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub masquerLigne() Dim r As Range Application.ScreenUpdating = False For Each r In Worksheets("feuil1").Range("A2:A15") ' (plages A2:15 mais également A20:A30 et A40:A55) With r .EntireRow.Hidden = ((.Value = "")) End With Next r Application.ScreenUpdating = True End Sub
Bonjour
peut être devra tu compiler les adresse a supprimer avant de les supprimer ca évite les méprise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Dim area,emptycells as range Sub test() With Worksheets("feuil1").Range("A2:A15,A20:A30,A40:A55") For Each area In .Areas Set emptycells = area.SpecialCells(xlCellTypeBlanks) If Not emptycells Is Nothing Then emptycells.EntireRow.Delete Next End With End Sub
sinon dans une boucle mais en commençant par en bas(55) en incluant les sauts entre chaque plages 2 boucle imbriquées (area et cells) c'est déjà un peu plus compliqué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub test() Dim area, emptycells As Range, p As Range With Worksheets("feuil1").Range("A2:A15,A20:A30,A40:A55") For Each area In .Areas Set emptycells = area.SpecialCells(xlCellTypeBlanks) If Not emptycells Is Nothing Then If p Is Nothing Then Set p = emptycells Else Set p = Union(p, emptycells) End If Next p.EntireRow.Delete End With End Sub
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Ca fonctionne très bien. Merci pour vos précieux codes et conseils!!
Bag
Désolé, j'ai mis au départ "Résolu" mais il me manque une chose. Quel pourrait être la macro inverse. C'est à dire que j'ai appliqué la macro suivante
Du coup mes lignes se masquent mais comment faire pour qu'elles s'affichent de nouveau? Je dois corriger des formules dans certaines d'entre elles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub masquerLigne() Dim r As Range Application.ScreenUpdating = False For Each r In Worksheets("S14").Range("C30:C120,C133:C223,C236:C326,C391:C481,C494:C584,C597:C687,C700:C790,C803:C893,C906:C996,C1009:C1099,C1112:C1202,C1215:C1305,C1318:C1408,C1421:C1511,C1524:C1614,C1627:C1717,C1730:C1820,C1833:C1923,C1936:C2026,C2039:C2129") With r .EntireRow.Hidden = ((.Value = "")) End With Next r Application.ScreenUpdating = True End Sub
Merci
bonjour
pour afficher tes lignes essayer avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sub affiche() Rows("1:5000").Hidden = False end sub
Merci beaucoup!!!
Cette fois c'est résolu.
Merci encore de votre aide!!![]()
Partager