Bonjour à tous les experts,
Je rencontre un petit souci avec le code vba ci-dessous. Le principe de la macro est qu'avant toute sauvegarde :
On parcourt toutes les lignes de données dont la colonne A est renseignée et si l'une de la colonne F est vide.
On affiche une inputbox pour chaque cellule G vide correspondante en cas d'annulation, on ne sauvegarde pas .
J'aimerais la modifier, comme suit :
On parcourt toutes les lignes de données dont la colonne B est renseignée et si l'une de la colonne F est vide.
On affiche une inputbox pour chaque cellule G vide correspondante en cas d'annulation, on ne sauvegarde pas.
	
	
	
	
	
		
Je vous joins le fichier excel associé
Merci d'avance,
	
		
			
		
		
	
				
			Je rencontre un petit souci avec le code vba ci-dessous. Le principe de la macro est qu'avant toute sauvegarde :
On parcourt toutes les lignes de données dont la colonne A est renseignée et si l'une de la colonne F est vide.
On affiche une inputbox pour chaque cellule G vide correspondante en cas d'annulation, on ne sauvegarde pas .
J'aimerais la modifier, comme suit :
On parcourt toutes les lignes de données dont la colonne B est renseignée et si l'une de la colonne F est vide.
On affiche une inputbox pour chaque cellule G vide correspondante en cas d'annulation, on ne sauvegarde pas.
		VB:
	
	
	Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Not ThisWorkbook.Saved Then
        Select Case MsgBox("Voulez-vous enregistrer ce Classeur ?", vbQuestion + vbYesNoCancel)
        Case vbYes:     ThisWorkbook.Save
        Case vbCancel:  Cancel = True
        Case vbNo:      ThisWorkbook.Saved = True
        End Select
    End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Ligne   As Range
Dim Sh      As Worksheet
Dim Comment As Variant
    Set Sh = Worksheets("Carte de ctrl")
        Sh.Activate
        For Each Ligne In Sh.Range("A35:O" & Sh.Cells(Rows.Count, "A").End(xlUp).Row).Rows
            If WorksheetFunction.CountIf(Ligne.Columns("F:F"), "<>") < 1 Then
                If Ligne.Columns("G") = vbNullString Then
                    ActiveWindow.ScrollRow = Ligne.Row
                    Ligne.Select
                    Do: Comment = InputBox( _
                            "Un commentaire est obligatoire" & vbLf & _
                            "pour le n° de lot " & Ligne.Columns("D"), "Valeur(s) manquante(s) pour la ligne n° " & Ligne.Columns("A"))
                    Loop While Comment = "" Or Comment = " " Or Comment = " " Or Comment = "." Or Comment = ".." Or Comment = "..." Or Comment = " " Or Comment = "  " Or Comment = "   " Or Comment = False
                    Application.EnableEvents = False
                        Ligne.Columns("G").Value = Comment
                    Application.EnableEvents = True
            End If
            End If
        Next
    Set Sh = Nothing
End Sub
Private Sub Workbook_Open()
    Worksheets("Carte de ctrl").Protect "2230", UserInterfaceOnly:=True
End SubJe vous joins le fichier excel associé
Merci d'avance,
 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		