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