• Initiateur de la discussion Initiateur de la discussion cchperez
  • 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 !

C

cchperez

Guest
Bonjour je suis novice dans la matière et aimerais insérer une condition dans un drop down afin de pouvoir dire dans le drop down si b6=1 alors de la case c6 à G6 = 0 et inversement si c6 =1 alors les case b6, d6,e6,f6 et g6 = 0. encore une petite chose je dois aussi avoir la possibilité d'être sur que les cases étant 0 ne pourront pas être changés donc bloquer celle-ci. mais pas la case du chiffre 1 car si elles font une erreur alors les autres cases ce débloqueront en remettant la case du 1 en 0. je voudrais aussi poser une condition dans la colonne AV qui dit que si une case de la colonne C est 1 sur la même ligne la colonne AV doit être 0 même si les participants remplissent les cases vertes en sachant que la colonne AV est l'addition de ces cases.

et enfin la dernière chose je voudrais avoir comme résultat dans la colonne AV aussi un 1 si les membres de la colonnes F remplissent une ou plusieurs cases vertes (peu importe le nombres de cases remplies de 1, le 1 étant les présents)

vous trouverez mon fichier ci-joint et je vous remercie vraiment de votre aide par avance car cela fais des heures que je cherche sans aucuns résultats.

bien à vous

David
 

Pièces jointes

Dernière modification par un modérateur:
Re : insérer condition

Bonjour cchperez,

Voici un début de solution... Il reste à bloquer les cellules... Je ne suis pas sûr de comprendre ce que tu veux faire pour les colonnes D à G...


Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub
If Target.Column <> 2 And Target.Column <> 3 Then Exit Sub
If Target.Row < 6 Then Exit Sub

If Target.Column = 2 And Target.Value = 1 Then
    Target.Offset(0, 1) = 0
    Target.Offset(0, 2) = 0
    Target.Offset(0, 3) = 0
    Target.Offset(0, 4) = 0
    Target.Offset(0, 5) = 0
ElseIf Target.Column = 3 And Target.Value = 1 Then
    Target.Offset(0, -1) = 0
    Target.Offset(0, 1) = 0
    Target.Offset(0, 2) = 0
    Target.Offset(0, 3) = 0
    Target.Offset(0, 4) = 0
End If

End Sub

A+
 
Re : insérer condition

les colonnes D à G sont a utiliser de la même manière en fait elle ne doivent pouvoir mettre un 1 que dans une case entre B6 et G6

la seule condition changeante et une colonne que l'on doit encore ajouter (comité nationale qui elle pourront remplir cette colonne Que l'on appelera H mais aussi B6 puisse que ces membres sont aussi actifs

pourrais tu me dire si c'est une macro que tu as fait et si oui comment l'introduire dans ma céllule ?

merci
david
 

Pièces jointes

Dernière modification par un modérateur:
Re : insérer condition

Salut cchperez et le forum
Sélectionne toutes les cellules (<Ctrl> +<A>)
clic-droit => menu contextuel cellule>>format de cellule>>onglet protection
décocher "verrouillée"
Tu peux verrouiller ta ligne de titre, si besoin.

Clic-droit sur nom de l'onglet, et tu colles :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Err_Change
Dim Cel As Range, Plage As Range

Set Plage = Intersect(Target, Columns("B:G"))
If Plage Is Nothing Then  GoTo Sort_Change
ActiveSheet.Unprotect
Application.EnableEvents = False

For Each Cel In Plage
    If Cel = 1 Then
        Range(Cells(Cel.Row, "B"), Cells(Cel.Row, "G")).Locked = True
        Cel.Locked = False
        If WorksheetFunction.Sum(Range(Cells(Cel.Row, "B"), Cells(Cel.Row, "G"))) > 1 Then
            Range(Cells(Cel.Row, "B"), Cells(Cel.Row, "G")).Locked = False
            Range(Cells(Cel.Row, "B"), Cells(Cel.Row, "G")).Value = 0
            MsgBox "erreur ligne " & Cel.Row, vbCritical, "Trop de 1"
        End If
    Else
        Range(Cells(Cel.Row, "B"), Cells(Cel.Row, "G")).Locked = False
    End If
Next Cel

Sort_Change:
Application.EnableEvents = True
ActiveSheet.Protect
Exit Sub

Err_Change:
MsgBox Err.Description, vbCritical, "Erreur n°" & Err.Number
Resume Sort_Change
End Sub
Macro à lancement automatique :
- déverrouille la feuille
- si des cellules de B à G ne sont pas concernées, on sort
- On regarde la valeur de la/les cellules modifiées
= 1 => on vérifie que le total des cellules B à G de la ligne est égal à 1. Si ce n'est pas le cas, on remet les cellules à 0 et on avertit
sinon, on verrouille les cellules de la ligne
<>1 => on déverrouille les cellules de la ligne

on protège la feuille.
A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
413
Réponses
23
Affichages
682
Réponses
2
Affichages
285
Réponses
4
Affichages
240
Réponses
6
Affichages
561
Retour