Aide sur Erreur sur une MACRO de suppression de lignes à 0 et -
Résolu
momo1992
-
momo1992 -
momo1992 -
Bonjour, j'ai besoin de votre aide pour trouver l'erreur dans cette Macro qui me supprime beaucoup de données non nul. Merciiiiiii :
' Macro servant à supprimer les lignes dont les montants sont à 0 et les lignes erronnées avec des "-"
'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
Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
' Macro servant à supprimer les lignes dont les montants sont à 0 et les lignes erronnées avec des "-"
'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
Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
A voir également:
- Aide sur Erreur sur une MACRO de suppression de lignes à 0 et -
- Forcer suppression fichier - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Partage de photos en ligne - Guide
- Numéro de téléphone excel 0 - Guide
- Aller à la ligne sur excel - Guide
1 réponse
Cette macro est beaucoup trop complexe pour ce qu'elle est censée faire. Pourquoi faites-vous des tris systématiquement?
Un simple :
Ou expliquez mieux ce que vous voulez.
Cordialement.
Un simple :
Sub TEST() Dim DL As Long, i As Long DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne du tableau en prenant en référence la colonne A For i = DL To 1 Step -1 If Range("A" & i) = "" Or Range("A" & i) = "-" Then Rows(i).Delete End If Next i End Sub
Ou expliquez mieux ce que vous voulez.
Cordialement.
on fait cette Macro existe déjà dans ce fichier d'entreprise et il donne une erreur maintenant et moi je sais enregistrer une macro seulement mais pas en VBA. Voila l'onglet utiliser avec la macro pour qu'elle marche si ca peut vous éclairer. (et est ce que je dois remplacer quelques données sur votre proposition ou je l'essaye directement? )
<<< paramétrage des suppressions des lignes à 0
Critère de suppression 1 0
Première ligne EQUIV(B1;'BDD à trier'!L:L;0)
Dernière ligne EQUIV(B1;'BDD à trier'!L:L;1)
<<< paramétrage des suppressions des lignes dont le montant est un tiret
Critère de suppression 2 -
Première ligne EQUIV(B6;'BDD à trier'!L:L;0)
Dernière ligne EQUIV(B6;'BDD à trier'!L:L;1)
Je vous remercie beaucoup.
1:/ Quand la ligne doit-elle être supprimée? Quand elle est vide? Quand il y a "0" en A?
2:/ le 2ème critère est "-", mais qu'est ce qui est égal à "-"? La colonne A?
Sinon pour me joindre le fichier : https://www.cjoint.com/
Cordialement.
Cordialement.
Allons y :
Si le code ne vous va pas, merci de joindre un fichier afin que je puisse voir exactement quelle est la demande.
Cordialement.