Pour les colonnes A:C qui s'effacent, le problème vient de la ligne
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Not Application.Intersect(Target, Range("D6:L24")) Is Nothing Then
If Target.Cells.Count > 1 Then Exit Sub
Range(Cells(Target.Row, 4), Cells(Target.Row, 12)).Value = ""
Target.Value = "1"
Else
Target.Value = ""
End If
End Sub
Si la sélection n'est pas entre D6 et L24, le contenue s'éfface. Tu pourrais supprimer le else.
Pour la vérification de certaines lignes, j'ai fait un exemple avec la ligne 6. Je calcul la somme de la ligne, si elle est égale à 0, un message d'erreur apparait. Si tu veux ajouter d'autre ligne, refait le même principe avec chaque ligne en ajoutant le code entre le With.
Private Function Verification() As Boolean
Verification = True
With Sheets("Feuil1")
'Test sur la ligne 6
If Application.WorksheetFunction.Sum(.Range("D6:L6")) = 0 Then
Verification = False
MsgBox "La ligne 6 doit être remplie"
End If
End With
End Function
et pour utiliser la fonction
Sub Macro1()
If Verification Then
Sheets("Feuil2").Select
Range("A1").Select
End If
End Sub