A voir également:
- Macro VBA me sup lignes non vide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Supprimer page word vide - Guide
- Nb.si.ens non vide ✓ - Forum Excel
- Formate pour taxer client frigo vide - Forum PDF
- Coeur vide - Forum Facebook
1 réponse
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
Modifié par ThauTheme le 22/09/2015 à 12:13
Modifié par ThauTheme le 22/09/2015 à 12:13
Bonjour Momo, bonjour le forum,
Quand tu supprimes les lignes 18 et 19, la ligne 51 se retrouve en ligne 49. Donc, quand après tu supprimes la ligne 51 elle correspond à la ligne 53 d' avant la première suppression... Essaie :
Pour supprimer les 3 lignes en une seule fois...
Sinon, en règle générale, évite autant que tu le peux les Select qui ne font que ralentir l'exécution du code...
À plus,
ThauTheme
Quand tu supprimes les lignes 18 et 19, la ligne 51 se retrouve en ligne 49. Donc, quand après tu supprimes la ligne 51 elle correspond à la ligne 53 d' avant la première suppression... Essaie :
Range("A18:A19, A51").EntireRow.Delete
Pour supprimer les 3 lignes en une seule fois...
Sinon, en règle générale, évite autant que tu le peux les Select qui ne font que ralentir l'exécution du code...
À plus,
ThauTheme
22 sept. 2015 à 12:23
et j'ai une autre macro je voudrais m'assurer qu'elle est correcte c'est pour supprimer les lignes vides :
Sub Suppression_lignes_Proposition_du_Forum()
' Macro servant à supprimer les lignes dont les montants sont à 0 et les lignes erronnées avec des "-"
' Solution trouvée à partir du forum Excel-Pratique via les différentes propositions : http://forum.excel-pratique.com/excel/accelerer-une-boucle-t62158.html
'Suppression des lignes à 0
derligne = Range("A1").End(xlDown).Row
'Déterminer la plage de données sur laquelle le code va s'exécuter
Columns("A:T").Select
ActiveWorkbook.Worksheets("BDD à trier").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("BDD à trier").Sort.SortFields.Add Key:=Range( _
"L2:L" & derligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("BDD à trier").Sort
.SetRange Range("A1:T" & derligne)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Prise en compte du critère de suppression numéro 1
Rows(Sheets("Paramètres de tri").Range("B2") & ":" & Sheets("Paramètres de tri").Range("B3")).Select 'Sélectionner la plage de cellule de la ligne mentionnée dans la cellule B2 à la ligne dans la cellule B3
Selection.Delete Shift:=xlUp 'Supprimer la sélection
derligne = Range("A1").End(xlDown).Row 'Détermine le nombre de lignes maxi sur lequel les tris vont s'effectuer
Columns("A:T").Select
ActiveWorkbook.Worksheets("BDD à trier").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("BDD à trier").Sort.SortFields.Add Key:=Range( _
"A2:A" & derligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("BDD à trier").Sort
.SetRange Range("A1:T" & derligne)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Suppression des lignes avec des tirets pour montant
derligne = Range("A1").End(xlDown).Row
'Déterminer la plage de données sur laquelle le code va s'exécuter
Columns("A:T").Select
ActiveWorkbook.Worksheets("BDD à trier").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("BDD à trier").Sort.SortFields.Add Key:=Range( _
"L2:L" & derligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("BDD à trier").Sort
.SetRange Range("A1:T" & derligne)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Prise en compte du critère de suppression numéro 2
Rows(Sheets("Paramètres de tri").Range("B7") & ":" & Sheets("Paramètres de tri").Range("B8")).Select 'Sélectionner la plage de cellule de la ligne mentionnée dans la cellule B7 à la ligne dans la cellule B8
Selection.Delete Shift:=xlUp 'Supprimer la plage de données
derligne = Range("A1").End(xlDown).Row 'Détermine le nombre de lignes maxi sur lequel les tris vont s'effectuer
Columns("A:T").Select
ActiveWorkbook.Worksheets("BDD à trier").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("BDD à trier").Sort.SortFields.Add Key:=Range( _
"A2:A" & derligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("BDD à trier").Sort
.SetRange Range("A1:T" & derligne)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Cordialement
Momo
22 sept. 2015 à 15:21
Critère de suppression 1 0 <<< paramétrage des suppressions des lignes à 0
Première ligne 2162
Dernière ligne 537946
Critère de suppression 2 - <<< paramétrage des suppressions des lignes dont le montant est un tiret
Première ligne 592930
Dernière ligne 696416