Bonjour,
Dans un premier temps, il faudrait savoir ce qu'est exactement nf...
En lisant ton code, nf est un TEXTE comportant seulement les lettres n et f, probablement dans une colonne précise, ce pour chaque ligne de facture (ta Plage, je suppose).
Est-ce bien le cas ?
Ensuite, je ne comprends pas pourquoi tu as placé tes End if de cette manière
Dim Plage As Range
Dim Cellule As Range
On Error Resume Next
Set Plage = Sheets("liste_facture").Range(Cells(1, 1), Cells(1, 60000))
For Each Cellule In Plage
If Cellule.Value = "nf" Then
Result = MsgBox("Archivage déjà effectué", vbOKOnly + vbExclamation, "Attention")
If Cellule.Value <> "nf" Then
'PROCEDURE D'ARCHIVAGE (non détaillée car elle fonctionnait précedemment, le problème ne vient pas de là)
Result = MsgBox("Archivage effectué", vbOKOnly + vbInformation, "Terminé")
End If
End If
Next
Application.ScreenUpdating = True
End Sub
Ceci me semble pus approprié :
Dim Plage As Range
Dim Cellule As Range
On Error Resume Next
Set Plage = Sheets("liste_facture").Range(Cells(1, 1), Cells(1, 60000))
For Each Cellule In Plage
If Cellule.Value = "nf" Then
Result = MsgBox("Archivage déjà effectué", vbOKOnly + vbExclamation, "Attention")
'If Cellule.Value <> "nf" Then
Else
'PROCEDURE D'ARCHIVAGE (non détaillée car elle fonctionnait précedemment, le problème ne vient pas de là)
Result = MsgBox("Archivage effectué", vbOKOnly + vbInformation, "Terminé")
'End If
End If
Next
Application.ScreenUpdating = True
End Sub
Cordialement
Rataxes64