Bonjour Anasecu, merci de ta réponse !
Les conditions pour supprimer cecs lignes ainsi que celle du dessus sont les suivantes :
Les deux lignes doivent être rigoureusement identiques à l'exception de la colonne I (9), (qui contient des montants, dont je dois vérifier que l'un est l'opposé de l'autre).
Si cette condition n'est pas respectée, alors les lignes concernées ne doivent pas être supprimées et apparaître en rouge.
Voilà ce que j'ai pour le moment :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| Sub supprimer_annulations()
Dim classeur As String
Dim feuille As String
Dim ligne As Integer
Dim nombredannul As Integer
classeur = ActiveWorkbook.Name
feuille = ActiveSheet.Name
ligne = 1
nombredannul = 0
With Application.Workbooks(classeur).Worksheets(feuille)
While .Cells(ligne, 1).Value <> ""
ligne = ligne + 1
If .Cells(ligne, 15) = "Annul" And .Cells(ligne, 9) = -.Cells(ligne - 1, 9) Then 'vérif que le montant passé en annulation est l'exact opposé du montant annulé
.Rows(ligne - 1).Delete 'suppression de la ligne au dessus de celle avec "Annul"
.Rows(ligne - 1).Delete 'suppression de la ligne "Annul", qui porte alors le même numéro que la ligne qui vient d'être supprimée
ligne = ligne - 2 'Pour suivre la variation de numéro de ligne entraîné par les suppressions
nombredannul = nombredannul + 1
'
'Si la deuxième condition (après le AND) n'est pas respectée, alors ne pas supprimer les lignes ne respecant pas cette condition
'et mettre ces lignes en rouge
'
End If
Wend
End With
MsgBox "Le tableau comporte " & nombredannul & " annulation(s)"
End Sub |
Ce qu'il me manque :
-il y a une erreur ligne 18 (je pense que c'est le signe "-" devant le ".Cells", sais-tu comment indiquer que je souhaite vérifier que Cell(X) = -Cell(Y) stp ?
-Ecrire les conditions supplémentaires qui doivent être vérifiées pour supprimer les lignes : comment faire sans écrire
If... AND... AND... AND... AND... Then
qui à mon avis serait très lourd et redondant ?
-Faire ressortir par une couleur quelconque les lignes avec "Annul" mais qui ne respectent pas les conditions de suppression
Voilà ce que j'aimerais faire svp, si quelqu'un peut aider un jeune débutant en VBA en plein désarroi ça serait super
Partager