XL 2010 Verrouiller une ligne suivant une résultat dans une colonne

stefyu

XLDnaute Nouveau
Bonjour,

Pour faire simple : j'ai un tableau excel auquel un technicien rentre des valeurs et valide ce qu'il a rentré, en mettant juste ses initiales dans une colonne adéquate. Un supérieur doit venir vérifier ses résultats et valider les résultats en mettant aussi ses initiales dans une autre colonne( vérification) . J'aimerai savoir si c'est possible que quand le supérieur met ses initiales, cela verrouille la ligne complète comme ça, il est impossible de changer quoi que ce soit.
Il faut savoir que j'ai réussi (halleluja), à mettre un mot de passe dans la colonne du supérieur pour qu'il puisse entre ses initiales (comme ça le technicien ne peut pas valider à la place du supérieur)

Voir pièce jointe pour le tableau.

Merci,

Bonne journée
 

Pièces jointes

  • test.xlsx
    12.4 KB · Affichages: 14

Nairolf

XLDnaute Accro
Salut,

Je pense qu'on peut le faire uniquement en VBA, tu t'y connais un peu ?

En mettant ce bout de code dans le code de la feuille concernée, cela verrouillera la ligne quand la case de vérification sera remplie et la déverrouillera si elle est vide :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 21 And Target.Value <> "" Then
    Range("A" & Target.Row & ":T" & Target.Row).Locked = True
ElseIf Target.Column = 21 And Target.Value = "" Then
    Range("A" & Target.Row & ":T" & Target.Row).Locked = False
End If
End Sub
 

stefyu

XLDnaute Nouveau
Bonjour, merci de votre retour et désolé de mon retour un peu tardif.

Malheureusement non, je ne m'y connais pas. Je sais qu'il faut faire ALT F11 pour ouvrir VBA mais après c'est le néant.
Peut être, insertion module et je copie colle ce que vous m'avez envoyé? Dans la case de gauche je laisse en général et dans la case de droite, je mets worksheet_change ? si c'est le cas, comment je valide ?

Mais si je comprends votre "maccro", la ligne se verrouillera quand la colonne T sera remplie non? moi je veux la colonne U, du coup j'ai juste à remplacer T par U .

Sachant que comme j'ai dit, j'ai mis un mot de passe dans la colonne U, je suis passé par format, protection de la feuille, ça marche bien seul quelqu'un qui possède le MDP peut renseigner cette colonne mais une fois cette colonne (U) renseignée, la ligne ne se verrouille pas, juste la cellule de la colonne U est verrouillée.

Merci,

Cordialement
 
Dernière édition:

stefyu

XLDnaute Nouveau
Si jamais du coup, il y aussi moyen de mettre le mot de passe via la maccro à la place de la manipulation format => ôter la protection de la feuille, comme ça, on oubliera pas de verrouiller la page après avoir renseigné la colonne U dans mon cas.
 

Nairolf

XLDnaute Accro
Salut,

Selon ta demande, j'avais considéré que les cellules de la colonne "U" sont déjà verrouillées afin que seules les personnes qui ont le code pour enlevé la protection de la feuille puissent saisir dans cette colonne.
C'est pour cela que je verrouille et déverrouille uniquement les colonnes à "A" à "T".
Le code contrôle la 21ème colonne ce qui correspond à la colonne "U".

Il faut que tu mettes le code dans le code de la feuille, pour ce faire, quand tu es dans l'éditeur VBA, double clic sur la feuille concernée qui se trouve dans la liste des projets à droite (il te faudra peut-être ouvrir l'explorateur de projet avant).

Il est possible de rajouter la protection via la feuille mais ça rendrait l'usage pas très pratique s'il y a plusieurs lignes à traiter par le vérificateur.
 

stefyu

XLDnaute Nouveau
Merci, cela fonctionne bien. Cependant y a t-il un autre moyen de verrouiller ma colonne U par un mot de passe , sans passer par format, la protection de la feuille ect..? car un oubli et vite arriver pour protéger la feuille après utilisation.

Sinon encore merci.
 

Nairolf

XLDnaute Accro
Par exemple on peut le faire à l'ouverture (ou la fermeture) du fichier (code à mettre dans le code "ThisWorkbook" du classeur :
VB:
Private Sub Workbook_Open()
    Worksheets("Feuil1").Protect Password:="test", userinterfaceonly:=True
End Sub
ou
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Worksheets("Feuil1").Protect Password:="test", userinterfaceonly:=True
End Sub
Je préfère le faire à l'ouverture, car quand on le fait à la fermeture il y aura besoin obligatoirement de sauvegarder, après ça dépend de l'usage.
 

stefyu

XLDnaute Nouveau
Merci pour votre retour mais je n'ai pas compris vos formules.
Pour la 1er, à l'ouverture, c'est pour pouvoir ouvrir la feuille ? En faite, j'aimerai savoir si c'est possible avec une maccro, de verrouiller par mot de passe la colonne U, pour éviter de devoir passer par format, protéger la feuille, mettre le mot de passe, remplir la colonne U, verrouiller la colonne, remettre le mot de passe ect...
Après je crois qu'il y a une maccro pour cacher la colonne U mais je trouve ça pas terrible non plus.
Et dans un second temps, pour faire deux maccros, je peux les mettre dans le même module VGA ? à la suite l'un de l'autre?

Merci de votre patience.
 

Nairolf

XLDnaute Accro
Salut,
Le code que je te propose fait ce que tu demandes, mais il ne faut pas le mettre dans un module.
En plus des codes dans un module, il y a une page de code par feuille existante et une page pour le classeur, et c'est dans ce dernier qu'il faut mettre l'un des codes.
 

Discussions similaires

Statistiques des forums

Discussions
311 723
Messages
2 081 932
Membres
101 844
dernier inscrit
pktla