Verrouillage cellule si autre cellule non vide...

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 !

CyberNeo99

XLDnaute Occasionnel
Bonjour à tous,

Comme il y a des As du code VB ici je m'en remets à vous.

Voilà ce que j'aimerais.

Au départ la feuille est déjà protéger mais certaines cellules sont déverouillers. Je voudrais verrouiller certaines cellules à la condition que l'une de 3 autres cellules soient non vides. Il y a un fichier joint qui est probablement plus explicite et il y a des explications.

La macro peut-elle être active aussitôt la condition remplie ou alors il faut que ce soit par exemple lors de la sauvegarde ou à l'ouverture du fichier par exemple ???


Merci à l'avance de votre aide

Neo
 

Pièces jointes

Re : Verrouillage cellule si autre cellule non vide...

Bonsoir,
A vu de nez
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Set c = Application.Union(Range("E2"), Range("G2"), Range("I2"))
If Application.CountA(c) > 0 Then
    ActiveSheet.Unprotect password:="toto"
    c.Cells.Locked = True
    ActiveSheet.Protect password:="toto"
End If
End Sub
A+
kjin
 
Re : Verrouillage cellule si autre cellule non vide...

Bonjour,

Merci

par contre j'ai besoin de cellule très précise car avec le code de hbelania il fait référence à des colonnes entère alors que j'ai besoin de cellule particulière car il y a des valeurs en dessous dans le fichier que je travaille. J'aime bien le code c'est presque ce que je recherche.

Pour ce qui est de l'autre code de kjin il verrouille les cellules E2, G2 et I2 si je ne me trompe car il n'y a aucune référence aux cellules de B2 et C2 dans le code ceux justement que je veux verrouillers.

Merci encore.

Neo
 
Re : Verrouillage cellule si autre cellule non vide...

Bonjour à tous,

J,ai modifié quelque peu le code de hbenalia et j,arrive à ce que je veux mais aussitôt que j'efface le contenu des cellules E2, G2 ou I2 je peux modifié la ou les cellules B2 et C2. J'aimerais qu'elles soient verrouiller en permanence. Est-ce possible....

Je joint mon fichier avec le code modifier qui cible vraiment les cellules.

Merci encore

Neo
 

Pièces jointes

Re : Verrouillage cellule si autre cellule non vide...

Bonsoir,
Lancer une procédure à chaque click sur une cellule...!
Bref, il suffit d'adapter qq peu
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r%, c As Range
If Target.Count > 1 Then Exit Sub
r = Target.Row
Select Case r
Case 2, 3 To 5 'indiques ici les n° de ligne de cette manière
    Set c = Application.Union(Range("E" & r), Range("G" & r), Range("I" & r))
    If Application.CountA(c) > 0 Then
        ActiveSheet.Unprotect password:="toto"
        Range("B" & r, "C" & r).Cells.Locked = True
        ActiveSheet.Protect password:="toto"
    End If
End Select
End Sub
A+
kjin
 
Re : Verrouillage cellule si autre cellule non vide...

Bonjour à tous,

Merci pour votre aide en passant.

J'ai essayé le code de kjin et au départ tout semblait correct l faisait exactement ce que je voulais à prime à bord mais en scrutant d'un plus près il fat quelque chose que je ne comprend pas. Je ne peux plus modifier mon fichier comme effacer des lignes, j'arrive à insérer des lignes en enlevant la protection mais il semblerait qu'à chaque click il remets la protection de la feuille automatiquement.

J'ai refais le fichier en étendant ma demande à une plage en quelque sorte. J'ai remis un peu plus d'explication dans le fichier. J'aimerais que seulement la zone en jaune soit affecté par le code. J'aimerais que lorsque les cellules E2 ou G2 ou I2 sont non vides les cellules B2 et C2 soient verrouillées. Et que si les cellules E3 ou G3 ou I3 sont non vides que les cellules B3 et C3 soient verrouillés et ainsi de suite. Je ne crois pas que le code peu se faire en prenant compte une plage comme E2-E10 ou G2-G10 ou I2-I10 et verrouillées B2-B10 et C2-C10 car si le code est fait en ce sens si par exemple E2 est non vides le code verrouillera la plage de B2-B10 et C2-C10 ce que je ne veux pas il faut vraimeent que ce soit lignes par lignes, si possible.

Au départ j'avait fait le ficheir avec une ligne car je me disait que si le code est fait avec une ligne il ne me resterait qu'éa l'étendre sur les autres, l'idée de départ est que si dans les cellules E2 ou G2 ou I2 il y a quelque chose, les cellules B2 et C2 soient verrouillés. Il faut prendre les lignes de façon individuelle pour ainsi verrouiller B2 et C2 selon la condition et que B3 et C3 soient verrouillées selon la même condition général mais avecles indices de lignes différentes.

Si je suis un peu spaghetti, pas clair en fait, ne vous gêné pas à me demander.

Merci infiniment de votre aide.

Neo
 

Pièces jointes

Re : Verrouillage cellule si autre cellule non vide...

Bonsoir,
Code:
Case 2, 3 To 5 'indiques ici les n° de ligne de cette manière
Ca me semblait pourtant clair...
Donc dans le cas des lignes 2 à 10...
Code:
Case 2 To 10
...tout simplement
Maintenant, sous 2003 tu peux paramétrer le niveau de protection de la feuille en permettant par exemple l'insertion de ligne.Utilises l'enregistrur de macro pour obtenir la syntaxe à utiliser
A+
kjin
 
Re : Verrouillage cellule si autre cellule non vide...

Bonjour kjin,

Effectivement tu as tout à fait raison c'est moi qui est dans les VAP. Ton code fonctionne très bien.À moins qu'il y est une coquille mais j'ai fais des tests et le code fait exactement ce qu'il faut.

GROS MERCI pour ton code et aide précieuse.

Neo
 
Re : Verrouillage cellule si autre cellule non vide...

Bonjour

Encore moi juste pour un petit extra si ce n'est pas trop demandé car j'ai essayé d'incorporé un code pour arriver ce que je veux pour le petit extra et ça ne fonctionne pas. J'aimerais mettre les caractères des cellules qui se verrouillent en bleu pâle. Je ne sais pas où insérer exactement le code pour que cela fonctionne. Je ne suis pas programmeur alors le code VB je ne connais pas.

Merci encore pour tout.

Neo
 
Re : Verrouillage cellule si autre cellule non vide...

bonsoir,
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r%, c As Range
If Target.Count > 1 Then Exit Sub
r = Target.Row
Select Case r
Case 2 To 10
    Set c = Application.Union(Range("E" & r), Range("G" & r), Range("I" & r))
    If Application.CountA(c) > 0 Then
        ActiveSheet.Unprotect password:="toto"
        With Range("B" & r, "C" & r).Cells
            .Locked = True
            .Interior.ColorIndex = 34 'couleur bleue
        End With
        ActiveSheet.Protect password:="toto"
    End If
End Select
End Sub
N'oublies pas de supprimer la mfc
A+
kjin
 
- 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

Réponses
5
Affichages
116
Réponses
12
Affichages
172
Réponses
17
Affichages
465
Réponses
5
Affichages
446
Réponses
72
Affichages
1 K
Réponses
3
Affichages
337
Retour