Microsoft 365 MSGBOX pour une cellule non remplie

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 !

Didier03

XLDnaute Junior
Bonjour le forum,
voilà je cherche le moyen d'afficher un msgbox si une cellule n'est pas remplie sous une certaine condition,

dans la colonne A je rentre une date et dès que cette date est marquée il faut impérativement remplir les colonnes F et G sur la même ligne
si on tente de sauvegarder sans remplir des deux cellules,cela bloque et affiche un message qu'il faut remplir ces deux cellules
j'ai fait des recherche sur le forum , mais je n'ai rien trouvé , j'espère ne pas avoir fait une question en doublon

merci de votre aide
en vous souhaitant une bonne journée
 
Bonjour Didier03, sylvanu, le forum,

Voyez le fichier joint et cette macro dans ThisWorkbook :
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim r As Range
With Sheets("Feuil1")
    Set r = Intersect(.Range("A2:A" & .Rows.Count), .UsedRange)
    If r Is Nothing Then Exit Sub
    For Each r In r
        If IsDate(r) Then
            If r(1, 6) = "" Or r(1, 7) = "" Then
                Cancel = True
                r(1, 7 + (r(1, 6) = "")).Select
                MsgBox "La plage " & r(1, 6).Resize(, 2).Address(0, 0) & " doit être remplie..."
                Exit For
            End If
        End If
    Next
End With
End Sub
Elle se déclenche quand on essaie d'enregistrer le fichier.

A+
 

Pièces jointes

Bonjour Didier03, sylvanu, le forum,

Voyez le fichier joint et cette macro dans ThisWorkbook :
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim r As Range
With Sheets("Feuil1")
    Set r = Intersect(.Range("A2:A" & .Rows.Count), .UsedRange)
    If r Is Nothing Then Exit Sub
    For Each r In r
        If IsDate(r) Then
            If r(1, 6) = "" Or r(1, 7) = "" Then
                Cancel = True
                r(1, 7 + (r(1, 6) = "")).Select
                MsgBox "La plage " & r(1, 6).Resize(, 2).Address(0, 0) & " doit être remplie..."
                Exit For
            End If
        End If
    Next
End With
End Sub
Elle se déclenche quand on essaie d'enregistrer le fichier.

A+
merci beaucoup job75 , j'avais pas vu ton message avant que je mette un fichier test , je vais tester ça
 
Vous parliez de colonne A maintenant c'est la colonne B :
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim r As Range
With Sheets("Feuil1")
    Set r = Intersect(.Range("B3:B" & .Rows.Count), .UsedRange)
    If r Is Nothing Then Exit Sub
    For Each r In r
        If IsDate(r) Then
            If r(1, 5) = "" Or r(1, 6) = "" Then
                Cancel = True
                r(1, 6 + (r(1, 5) = "")).Select
                MsgBox "La plage " & r(1, 5).Resize(, 2).Address(0, 0) & " doit être remplie..."
                Exit For
            End If
        End If
    Next
End With
End Sub
 

Pièces jointes

Vous parliez de colonne A maintenant c'est la colonne B :
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim r As Range
With Sheets("Feuil1")
    Set r = Intersect(.Range("B3:B" & .Rows.Count), .UsedRange)
    If r Is Nothing Then Exit Sub
    For Each r In r
        If IsDate(r) Then
            If r(1, 5) = "" Or r(1, 6) = "" Then
                Cancel = True
                r(1, 6 + (r(1, 5) = "")).Select
                MsgBox "La plage " & r(1, 5).Resize(, 2).Address(0, 0) & " doit être remplie..."
                Exit For
            End If
        End If
    Next
End With
End Sub
oui désolé comme j'ai fait un fichier test j'ai pas mis sur les bonnes colonnes , mais ça je peut modifier pas de soucis merci beaucoup de vos retours
 
- 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

Retour