XL 2021 code vba pour autorisez l'enregistrement par le bouton "enregistrer" uniquement si tout les champs sont remplis

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

phoceenjo

XLDnaute Nouveau
Bonjour à tous,

Je débute avec les codes VBA et j'aurais besoin de votre aide.

Je souhaiterais que sur le fichier joint, je ne puisse sauvegarder en cliquant sur le bouton enregistrer uniquement si tous les champs pouvant être remplie soit avec une liste déroulante soit manuellement le soit réellement.

Pouvez vous m'aider s'il vous plait ?

je vous remercie d'avance
 

Pièces jointes

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
 
Re,
Par pitié, utilisez la balise </> pour le code ( à droite de l'icone GIF ) c'est plus lisible.
Dans votre code, nulle part figure "Gare 1" donc ça ne vient pas de ce bout de code, il ne peut pas l'inventer.
Ca vient d'autre part que de cette macro.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
849
Retour