Quelques modifications mineures :
Sub EnrPannes()
'Macro enregistrée le 31/08/16 par Valérie PARISOT
Dim resultat As Integer, Rech As Range
Application.ScreenUpdating = False
resultat = Range("M2").Value 'Quelle feuille ?
With Sheets("saisie panne")
'Msg car pas tout rempli
If resultat = 0 Then
MsgBox ("Vous n'avez pas tout rempli ou rempli correctement. Veuillez recommencer.")
Exit Sub
End If
If resultat = 1 Then
.Unprotect
Sheets("Fichier Panne").Unprotect
.Range("A26:M26").Copy
Set Rech = Sheets("Fichier Panne").Cells.Find(What:="Vide", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True)
If Not Rech Is Nothing Then
With Rech
.PasteSpecial Paste:=xlValues
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
If Sheets("Fichier Panne").Cells(.Row - 1, 6).Interior.ColorIndex = xlNone Then
.Interior.ColorIndex = 15
Else: .Interior.ColorIndex = xlNone
End If
End If
Sheets("Fichier Panne").Rows("2:12500").AutoFit
Sheets("Fichier Panne").Protect DrawingObjects:=False, Contents:=True, Scenarios:=False
End With
.Range("I15,E8,C8,G21").ClearContents
.Range("B15,D16,E16,G15,H15,H17,I18").Value = 1
If ThisWorkbook.ReadOnly = False Then
ThisWorkbook.Save
Else: MsgBox "le fichier est en lecture seule, aucun enregistrement ne sera effectué:", vbCritical
End If
End If
End With
End Sub
En ce qui me concerne : impossible d'en faire plus sans fichier, ni sans comprendre la finalité exacte de la macro.