Tout fonctionne parfaitement hormis le dernier fichier (Gare 2) qui au moment ou j’appuie sur le bouton enregistrer m'ouvre un autre fichier intitulé Gare 1.
Je ne comprends pas, voici le code
Sub enregistrer()
Vide = 0 ' Variable vaut 1 si une cellule est vide
Tablo = Array([I1], [I2], [G5], [H5], [E7], [J7], [I10:I11], [D23], [D25], [E23], [E25], [D29], [D31], [D33], [D35], [F29], [F31], [F33], [F35], [H29], [H31], [H33], [H35], [D39], [D44
51], [F44:F51], [H44:H51], [D52], [D72], [D74], [D76], [D78], [F72], [F74], [F76], [F78], [H72], [H74], [H76], [H78], [D82], [D87], [D89], [G87], [G89], [D92], [D97], [D99], [D101], [E109], [D116], [D120], [E123], [D128], [D130], [E128], [E130], [D144], [D146], [D148], [E151], [D155], [D157], [D159], [E162]) ' On définit dans le tableau les cellules qui doivent être non vides
' On vérifie qu'aucune cellule désignée n'est vide
For i = 0 To UBound(Tablo)
For Each cell In Tablo(i)
If cell.Value = "" Then Vide = 1: Exit For
Next cell
' Si Vide =1 donc une cellule vide donc on émet un message et on sort.
If Vide = 1 Then
MsgBox "Veuillez remplir tous les champs." & Chr(10) & "Enregistrement impossible."
Exit Sub
End If
Next i
' Message de test à supprimer
' Mettre en commentaire le chemin non désiré
Chemin = "C:\Users\REDIF\OneDrive - REDIF\REDIF - Documents\Registre d'exploitation\Mensuel\" ' Ne pas oublier le "\ à la fin
'Chemin = "C:\Users\PC_PAPA\Desktop\XLD\Registre d'exploitation\"
NomFichier = "Gare 2 - " & Format(Date, "yyyy-mm") & ".pdf"
ChDir Chemin
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & NomFichier _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
' On vide les cellules, à mon avis inutile car ensuite on quitte le fichier sans enregistrer
For i = 0 To UBound(Tablo)
For Each cell In Tablo(i)
cell.Value = ""
Next cell
Next i
MsgBox "Opération terminée."
' On quitte le fichier sans enregistrer
ActiveWorkbook.Close False
End Sub
Sub TestRemplirCellules() ' Macro test pour tout remplir
Tablo = Array([I1], [I2], [G5], [H5], [E7], [J7], [I10:I11], [D23], [D25], [E23], [E25], [D29], [D31], [D33], [D35], [F29], [F31], [F33], [F35], [H29], [H31], [H33], [H35], [D39], [D44
51], [F44:F51], [H44:H51], [D53], [D72], [D74], [D76], [D78], [F72], [F74], [F76], [F78], [H72], [H74], [H76], [H78], [D82], [D87], [D89], [G87], [G89], [D92], [D97], [D99], [D101], [E109], [D116], [D120], [E123], [D128], [D130], [E128], [E130], [D144], [D146], [D148], [E151], [D155], [D157], [D159], [E162]) ' On définit dans le tableau les cellules qui doivent être non vides
' On remplit toutes les cellule désignées dans Tablo
For i = 0 To UBound(Tablo)
For Each cell In Tablo(i)
With cell
.Value = 1000 + Int(8000 * Rnd):
.Borders.Weight = xlContinuous
.Interior.Color = vbYellow
.Font.Color = vbBlue
End With
Next cell
Next i
End Sub