verouiller les cellules affichées sous conditions

Ilino

XLDnaute Barbatruc
Bonjour Forum

Les cellules concernées sont D8(fusionnée) jusqu'à la cellule D26 ( fusionnée) les cellules Paires seulement .
Je souhaite arrêter( ou verrouiller) la saisie dans ces cellules si la somme des cellules affichés seulement (non masqué) est supérieur a 100% .

Exemple :

Supposons que toutes les cellules sont affichée, donc je dois remplir toutes les cellules de tel manière avoir un total 100% .
2 eme cas
Supposons que les cellules D22 ,24, 26 sont masquées, donc je dois remplir toutes les cellules affichées a savoir( D8 ,10,12,14,16,18 et 20) de tel façon avoir un total 100% et si je dépasse lors de la saisié dans ces cellules affichées 100% j’arrête la saisie.
GRAZIE
 

Pièces jointes

  • ILINO VEROUILLER LES CELLULES.xlsx
    8.2 KB · Affichages: 22

job75

XLDnaute Barbatruc
Re : verouiller les cellules affichées sous conditions

Bonjour Ilino,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte, p#
For i = 8 To 26 Step 2
  If Rows(i).Hidden = False Then 'ce test est-il nécessaire ?
    p = p + Val(Replace(Cells(i, 4), ",", "."))
    If p > 1 Then Cells(i, 4) = ""
  End If
Next
End Sub
A+
 

Ilino

XLDnaute Barbatruc
Re : verouiller les cellules affichées sous conditions

Re Bonjour job
et si je veux ajouter un MsgBox
Code:
.........
If p > 1 Then Cells(i, 4) = "" And MsgBox("Vous avez dépassé 100 %  EI IL VOUS RESTE DES CELLULES A REMPLIR ")
........
is it right ?
 

job75

XLDnaute Barbatruc
Re : verouiller les cellules affichées sous conditions

est ce ce code est correcte??

La flemme de tester Ilino ???

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte, p#, n As Byte
For i = 8 To 26 Step 2
  If Rows(i).Hidden = False Then
    p = p + Val(Replace(Cells(i, 4), ",", "."))
    If p > 1 Then Cells(i, 4) = "": n = n + 1
  End If
Next
If n Then MsgBox "Vous avez dépassé 100%, il vous reste " & n & " cellules à remplir."
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : verouiller les cellules affichées sous conditions

Bonjour Ilino, le forum,

Il vaut mieux compter les cellules vides depuis le début :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte, p#, n As Byte
For i = 8 To 26 Step 2
  If Rows(i).Hidden = False Then
    p = p + Val(Replace(Cells(i, 4), ",", "."))
    If p > 1 Then Cells(i, 4) = ""
    If Cells(i, 4) = "" Then n = n + 1
  End If
Next
If p > 1 Then MsgBox "Vous avez dépassé 100%, il reste " & n & " cellule(s) à remplir."
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 595
Messages
2 090 103
Membres
104 378
dernier inscrit
neovo