Tri lignes
Résolu
Momosenpai
Messages postés
24
Statut
Membre
-
skk201 Messages postés 942 Date d'inscription Statut Membre Dernière intervention -
skk201 Messages postés 942 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis débutant en VBA excel et j'ai essayé de créer une macro qui me permet de :
A- Si la ligne N est orange alors on prends la 13ème et la 14ème cellule de la ligne N en partant de la gauche et les copie colle sur la 13ème et 14ème cellule de la ligne N+1
B- Si la ligne N est orange alors on prends la 8ème, 9ème , 10ème, 11ème, 12ème cellule de la ligne N en partant de la gauche et on la copie colle sur la 20ème, 21ème, 22ème, 23ème et 24ème cellule en partant de la gauche de la ligne N+1
Voici ma tentative:
le résultat obtenu avec ce code est qu'il copie colle les cellules (13 et 14) sur toutes les lignes en dessous alors que je n'ai besoin que de du N+1 de chaque ligne orangée.
Pourriez vous m'éclairer un petit peu plus ?
merci d'avance
Voici ci joint le fichier (en feuil 1 l'explication):
https://www.cjoint.com/?0GylkjkyQb7
Je suis débutant en VBA excel et j'ai essayé de créer une macro qui me permet de :
A- Si la ligne N est orange alors on prends la 13ème et la 14ème cellule de la ligne N en partant de la gauche et les copie colle sur la 13ème et 14ème cellule de la ligne N+1
B- Si la ligne N est orange alors on prends la 8ème, 9ème , 10ème, 11ème, 12ème cellule de la ligne N en partant de la gauche et on la copie colle sur la 20ème, 21ème, 22ème, 23ème et 24ème cellule en partant de la gauche de la ligne N+1
Voici ma tentative:
Sub test()
Sheets("Feuil2").Activate
Dligne = Range("C" & Rows.Count).End(xlUp).Row
For i = 1 To Dligne
If Rows(i).Interior.Color = vborange Then
Range(Cells(i, 13), Cells(i, 14)).Copy
Range(Cells((i + 1), 13), Cells((i + 1), 14)).PasteSpecial
Range(Cells(i, 8), Cells(i, 12)).Copy
Range(Cells((i + 1), 20), Cells((i + 1), 24)).PasteSpecial
End If
Next i
End Sub
le résultat obtenu avec ce code est qu'il copie colle les cellules (13 et 14) sur toutes les lignes en dessous alors que je n'ai besoin que de du N+1 de chaque ligne orangée.
Pourriez vous m'éclairer un petit peu plus ?
merci d'avance
Voici ci joint le fichier (en feuil 1 l'explication):
https://www.cjoint.com/?0GylkjkyQb7
1 réponse
Pas vraiment la solution à votre problème mais juste un détails qui change beaucoup de choses.
Mais essayer voir si ça change votre problème
Sub test()
Sheets("Feuil2").Activate
Dim Dligne as Integer
Dligne = Range("C" & Rows.Count).End(xlUp).Row
For i = 1 To Dligne
If Rows(i).Interior.Color = vborange Then
Range(Cells((i + 1), 13), Cells((i + 1), 14)) = Range(Cells(i, 13), Cells(i, 14))
Range(Cells((i + 1), 20), Cells((i + 1), 24)) = Range(Cells(i, 8), Cells(i, 12))
End If
Next i
End Sub
Mais essayer voir si ça change votre problème
Si vous avez besoin de conseil pour votre apprentissage en VBA n'hésitez pas à venir nous poser des questions :)