WUTED
XLDnaute Occasionnel
Bonjour le forum,
J'ai fait une macro pour répondre à ce post https://www.excel-downloads.com/thr...n-transfert-ligne-feuille-a-une-autre.184479/, et je ne comprends pas son étrange comportement. Je m'explique : le code de ma macro est censé parcourir la première feuille, récupérer le statut de chaque ligne et les copier selon leur statut dans la feuille 2 ou la feuille 3. De plus, je me contente de colorer la ligne en rouge dans un cas, et en vert dans l'autre. Tout se passe bien pendant la première exécution, seulement quand je veux, ensuite, rajouter un ligne dans ma feuille 1, elle se colore au fur et à mesure sans raison apparente, et j'arrive vraiment pas à comprendre pourquoi, j'ai commenté ma macro en espérant que cela me permettrait de trouver le problème, en vain.
Voici ma macro :
Et je joins également le fichier.
Merci d'avance pour votre aide,
Bonne journée,
WUTED
J'ai fait une macro pour répondre à ce post https://www.excel-downloads.com/thr...n-transfert-ligne-feuille-a-une-autre.184479/, et je ne comprends pas son étrange comportement. Je m'explique : le code de ma macro est censé parcourir la première feuille, récupérer le statut de chaque ligne et les copier selon leur statut dans la feuille 2 ou la feuille 3. De plus, je me contente de colorer la ligne en rouge dans un cas, et en vert dans l'autre. Tout se passe bien pendant la première exécution, seulement quand je veux, ensuite, rajouter un ligne dans ma feuille 1, elle se colore au fur et à mesure sans raison apparente, et j'arrive vraiment pas à comprendre pourquoi, j'ai commenté ma macro en espérant que cela me permettrait de trouver le problème, en vain.
Voici ma macro :
VB:
Sub Tri()
Dim dernLigneAcc As Integer
Dim dernLigneRefus As Integer
'Parcours la feuille jusqu'à la dernière ligne
For j = 1 To Sheets("analyse").Range("A65536").End(xlUp).Row
'Si le statut est "Accepté" et que la ligne n'est pas verte alors
If Sheets("analyse").Range("G" & j).Value = "Accepté" And Sheets("analyse").Range("A" & j).Interior.ColorIndex <> 4 Then
'On récupère le numéro de la dernière ligne de la feuille "accepter"
dernLigneAcc = Sheets("accepter").Range("A65536").End(xlUp).Row
For i = 0 To 6
'On ajoute à la feuille "accepter" la ligne
Sheets("accepter").Range("A" & dernLigneAcc + 1).Offset(0, i).Value = Sheets("analyse").Range("A" & j).Offset(0, i).Value
'On colore la ligne en vert sur la feuille "analyse"
Sheets("analyse").Range("A" & j).Offset(0, i).Interior.ColorIndex = 4
Next
'On ajoute la date de l'opération dans la feuille "accepter"
Sheets("accepter").Range("A" & dernLigneAcc + 1).Offset(0, 6).Value = Now()
'Sinon si le statut est "Refusé" et que la ligne n'est pas rouge alors
ElseIf Sheets("analyse").Range("G" & j).Value = "Refusé" And Sheets("analyse").Range("A" & j).Interior.ColorIndex <> 3 Then
'On récupère le numéro de la dernière ligne de la feuille "refuser"
dernLigneRefus = Sheets("refuser").Range("A65536").End(xlUp).Row
For i = 0 To 6
'On ajoute la ligne à la feuille "refuser"
Sheets("refuser").Range("A" & dernLigneRefus + 1).Offset(0, i).Value = Sheets("analyse").Range("A" & j).Offset(0, i).Value
'On colore la ligne en rouge sur la feuille "analyse"
Sheets("analyse").Range("A" & j).Offset(0, i).Interior.ColorIndex = 3
Next
'On ajoute la date de l'opération dans la feuille "refuser"
Sheets("refuser").Range("A" & dernLigneRefus + 1).Offset(0, 6).Value = Now()
End If
Next
End Sub
Et je joins également le fichier.
Merci d'avance pour votre aide,
Bonne journée,
WUTED