Archivage de ligne selon une condition

Bonjour,

Je suis stagiaire au sein de Casino et j'ai pour mission de créer un outil de suivi des demandes d'échantillons. J'ai réussit grâce aux conseils trouver sur ce site à écrire quelques macros basique (envoi d'e-mail en automatique, verrouillage de cellule selon conditions). Mais je n'arrive pas à créer de macro d'archivage malgrès les post sur ce sujet présent sur le forum.

S'il vous plaît quelqu'un pourrait-il m'aider ?

Je souhaiterais que lorseque qu'une demande est traitée la ligne s'archive dans un autre onglet qui servira d'historique.

L'onglet suivi des demandes d'échantillons servira ainsi à suivre les demandes en cours de traitement.

Puis lorseque une demande est traitée (alors il y aura "Traitée" en colonne BH), je souhaite que la ligne s'archive automatiquement dans l'onglet "Archive" et disparaisse de l'onglet "Demandes d'échantillons".

Je joint mon fichier à ma demande afin que vous puissiez regarder de plus près. J'espère avoir été suffisamment clair.

Merci d'avance pour votre aide. Mes connaissances en VBA étant nulle, j'ai passé des nuits entière à chercher mais n'y arrive toujours pas.

Cordialement.

Bonjour,

Je vous joins mon code en PJ pour votre problème.

La macro démarre automatiquement dés l'ouverture du fichier donc à adapter selon vos besoins.

Je l'ai ralenti pour vous permettre de voir ce qu'elle fait.

Jimmy

Merci beaucoup pour cette réponse très rapide, votre code marche et cela fait exactement ce que je voulais.

Cependant lorseque il y a une vingtaine de lignes à archiver je suis obliger de relancer la macro 4 à 5 fois. Serait-il possible d'écrire une macro qui archiverais toutes les lignes en une seule fois sans avoir à la relancer.

Merci d'avance.

Version plus fiable en PJ.

Parfait celle-ci marche beaucoup mieux.

Merci beaucoup pour votre réactivité.

Bonne journée

Pas de problème.

Bon courage.

Excusez-moi mais lorseque j'ai voulu mettre la macro que vous avez écrite sur le fichier sur lequel je travaille en l'adaptant.

J'ai un message d'erreur qui s'affiche : Erreur d'exécution '1004' ou erreur de la classe range

Alors que sur le classeur précédent cela marchait nikel.

Je ne comprend pas pourquoi, ni d'où cela peut venir

J'espère que vous pourrez m'aider.

Merci d'avance.


Le code que j'ai utilisé est le suivant :

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Workbook_Open()

'Je boucle deux fois car une ne suffit pas pour tout archiver

Call boucle

End Sub

Sub boucle()

Dim i As Integer

Dim j As Integer

i = 2

'On boucle sur toutes les lignes

While Sheets("Demande d'échantillon en cours").Range("B" + CStr(i)).Value <> ""

'On regarde si le dossier a été traité

If Sheets("Demande d'échantillon en cours").Range("BH" + CStr(i)).Value = "Traitée" Then

'On copie la ligne

Sheets("Demande d'échantillon en cours").Range("B" + CStr(i), "BH" + CStr(i)).Copy

'On boucle dans le dossier d'archivage

For j = 2 To 2000

If Sheets("Archives").Range("B" + CStr(j)).Value = "" Then

Sheets("Archives").Select

Sheets("Archives").Activate

'On colle les données

Sheets("Archives").Range("B" + CStr(j), "BH" + CStr(j)).Select

ActiveSheet.Paste

Exit For

End If

Next

Sheets("Demande d'échantillon en cours").Select

Sheets("Demande d'échantillon en cours").Activate

'On supprime la ligne dans demandes d'échantillons si besoin

Sheets("Demande d'échantillon en cours").Range("B" + CStr(i), "BH" + CStr(i)).EntireRow.Delete

i = i - 1

End If

i = i + 1

Wend

End Sub


J'ai réussit en assignat la macro à un bouton. La ligne se copie bien mais ne s'efface plus. Une erreur avec marquer 400 s'affiche

Rechercher des sujets similaires à "archivage ligne condition"