XL 2021 Recherche solution vba

  • Initiateur de la discussion Initiateur de la discussion bendv
  • Date de début Date de début

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 !

bendv

XLDnaute Nouveau
Bonjour à tous.

Voici mon cas de figure,

Dans la colonne A2,A3,A4 nous avons le type de travail à réaliser.
A partir de A10 j'ai la répartition qui est faite jusque la ok

Pour la ligne 10 si en cellule A10 j'ai "C" une des 2 cellules AB10 ou AC10 doivent être remplie plus AD10 ou AE10 si pas rempli impossible de fermer excel
Pour la ligne 10 si en cellule A11 j'ai "A" une des 2 cellules X11 ou Y11 doivent être remplie plus AD11 ou AE11 si pas rempli impossible de fermer excel
et ainsi de suite pour les autres lignes

avec un messageBox " veuillez remplir les cellules vides"

Merci d'avance
 

Pièces jointes

Bonjour Bendv,
Un essai en PJ avec :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Cancel = False: Flag = 0
    DL = Cells(Cells.Rows.Count, "A").End(xlUp).Row
    For L = 10 To DL
        If Cells(L, "A") = "c" And (Cells(L, "AB") & Cells(L, "AC") = "" Or Cells(L, "AD") & Cells(L, "AE") = "") Then
                Flag = 1
        ElseIf Cells(L, "A") = "a" And (Cells(L, "X") & Cells(L, "Y") = "" Or Cells(L, "AD") & Cells(L, "AE") = "") Then
                Flag = 1
        End If
    Next L
    If Flag = 1 Then
        Cancel = True
        MsgBox "Veuillez remplir les cellules vides"
    End If
End Sub
J'ai rajouté deux MFC en colonne AF :
Code:
=ET($A10="c";OU($AB10&$AC10="";$AD10&$AE10=""))
=ET($A10="a";OU($X10&$Y10="";$AD10&$AE10=""))
 

Pièces jointes

Re,
Une version plus rapide si le tableau est grand puisqu'il suffit qu'une ligne soit mal remplie pour refuser de sortir :
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Cancel = True: Flag = 1
    For L = 10 To Cells(Cells.Rows.Count, "A").End(xlUp).Row
        If Cells(L, "A") = "c" Then
            If (Cells(L, "AB") & Cells(L, "AC") = "" Or Cells(L, "AD") & Cells(L, "AE") = "") Then
                Flag = 0: Exit For
            End If
        ElseIf Cells(L, "A") = "a" Then
            If (Cells(L, "X") & Cells(L, "Y") = "" Or Cells(L, "AD") & Cells(L, "AE") = "") Then
                Flag = 0: Exit For
            End If
        End If
    Next L
    If Flag = 0 Then
        Cancel = True
        MsgBox "Veuillez remplir les cellules vides"
    Else
        Cancel = False
    End If
End Sub
 

Pièces jointes

- 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

  • Question Question
Réponses
2
Affichages
80
Réponses
12
Affichages
1 K
  • Question Question
Microsoft 365 Recherche v + VBA
Réponses
3
Affichages
2 K
Retour