Verrouillage de colonne sans protéger la feuille

Pablo1991

XLDnaute Nouveau
Chères toutes, chers tous, bonjour,

Je reviens vers vous pour un problème de verrouillage de colonnes. Voici un fichier en pièce jointe qui permet de suivre les collaborateur et les différents projets d'un institut de recherche. (merci à tous ceux sur le forum qui m'on aidé à la concevoir d'ailleurs :) !)

Comme ce document va être utilisé par une personne d'un certain âge et pas vraiment calé Excel, je souhaiterais verrouiller des plages dans le document pour éviter toute fausse manipulation.



  • Dans la feuille 2. Saisie mensuelle :

J'ai déverrouillé la protection pour les colonnes suivantes C,F,G,H (voir print-screen en pièce-jointe). Ensuite, je protège la feuille et donc ça fonctionne, un message d'erreur apparaît si l'utilisateur essaye de toucher à ces colonnes protégées.

Le souci, c'est qu'il s'agit d'un document de saisie et donc qu'à chaque fois qu'il faut ajouter une nouvelle saisie (tab sur la dernière ligne de la dernière colonne), la protection de la feuille m'empêche de le faire. Du coup, il faut "Ôter la protection" pour ajouter une nouvelle ligne et donc, la protection des cellules faite avant ne fonctionne plus car la protection est ôté.



  • Dans les feuilles 3. et 4. des suivi

Ce sont des Tableau croisés dynamique et j'aimerais empêcher toute saisie au sein de ces deux feuilles tout en sachant qu'à chaque nouvelle saisie dans 2. Saisie manuelle, il faut faire "Actualiser" dans un des Tableau croisé dynamique. La protection de la feuille là aussi m'en empêche.

Je ne sais pas si c'est compréhensible mais sauriez vous me dire s'il y a une solution simple à appliquer (sachant que je suis pas un pro d'Excel non plus, tout ce qui est macro peut être vite très compliqué)

Bonne journée à vous et merci :)
 

Pièces jointes

  • Plages déverrouillées.jpg
    Plages déverrouillées.jpg
    74.2 KB · Affichages: 46
  • Pablo1991_V10.xlsx
    86.4 KB · Affichages: 36
  • Pablo1991_V10.xlsx
    86.4 KB · Affichages: 40
  • Pablo1991_V10.xlsx
    86.4 KB · Affichages: 39

PMO2

XLDnaute Accro
Re : Verrouillage de colonne sans protéger la feuille

Bonjour,

Pour ce qui concerne
Dans la feuille 2. Saisie mensuelle :

J'ai déverrouillé la protection pour les colonnes suivantes C,F,G,H (voir print-screen en pièce-jointe). Ensuite, je protège la feuille et donc ça fonctionne, un message d'erreur apparaît si l'utilisateur essaye de toucher à ces colonnes protégées.

Le souci, c'est qu'il s'agit d'un document de saisie et donc qu'à chaque fois qu'il faut ajouter une nouvelle saisie (tab sur la dernière ligne de la dernière colonne), la protection de la feuille m'empêche de le faire. Du coup, il faut "Ôter la protection" pour ajouter une nouvelle ligne et donc, la protection des cellules faite avant ne fonctionne plus car la protection est ôté.

copiez le code suivant dans la fenêtre de code de la feuille 2. Saisie Mensuelle
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim R As Range
Set R = Target.Cells(1, 1)
If R.HasFormula Then
  Set R = R.Offset(0, 1)
  R.Select
End If
End Sub

Si la sélection contient une formule, on sélectionne la cellule suivante à sa droite.
 

Pablo1991

XLDnaute Nouveau
Re : Verrouillage de colonne sans protéger la feuille

Bonjour,

Merci pour la solution, ça permet d'éviter de clicker dessus mais ça empêche aussi de créer une nouvelle ligne en clickant sur la dernière ligne de la dernière colonne (cellule H32) :/
 

PMO2

XLDnaute Accro
Re : Verrouillage de colonne sans protéger la feuille

mais ça empêche aussi de créer une nouvelle ligne en clickant sur la dernière ligne de la dernière colonne (cellule H32)
Bonjour,

Pour y remédier, on peut faire un Ctrl+Tab. Il faut d'abord faire la démarche suivante :

1) Copiez le code suivant dans la fenêtre de code de ThisWorkbook
Code:
Private Sub Workbook_Activate()
If ActiveSheet.Name = FEUILLE_SAISIE Then
  Application.OnKey "^{TAB}", "InterceptCtrlTab"
End If
End Sub

Private Sub Workbook_Deactivate()
Application.OnKey "^{TAB}", ""
End Sub

2) Copiez le code suivant dans la fenêtre de code de la feuille de saisie
Code:
[Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim R As Range
'---
Set R = Target.Cells(1, 1)
If R.HasFormula Then
  Set R = R.Offset(0, 1)
  R.Select
End If
End Sub

Private Sub Worksheet_Activate()
Application.OnKey "^{TAB}", "InterceptCtrlTab"
End Sub

Private Sub Worksheet_Deactivate()
Application.OnKey "^{TAB}", ""
End Sub

3) Copiez le code suivant dans un module Standard
Code:
Public Const FEUILLE_SAISIE As String = "2. Saisie Mensuelle"

Private Sub InterceptCtrlTab()
ActiveSheet.ListObjects(1).ListRows.Add AlwaysInsert:=False
End Sub
 

Pièces jointes

  • Pablo1991_V10_pmo.xlsm
    95.8 KB · Affichages: 33

Pablo1991

XLDnaute Nouveau
Re : Verrouillage de colonne sans protéger la feuille

Bonjour,

Merci pour votre message! Ça marche bien sur votre fichier mais dès que je le transpose à ma dernière version, le Ctrl + TAB ne fonctionne plus, est-ce parce que j'ai modifié la position du tableau dans la feuille de saisie ?

Je met le dernier fichier ci-joint (macro incluent mais avec le problème du Ctrl + TAB)

Très bonne journée,
Pablo
 

Pièces jointes

  • macro_VTEST_Suivi_Collaborateur&Projet&Coût - Copie.xlsm
    96.5 KB · Affichages: 37

PMO2

XLDnaute Accro
Re : Verrouillage de colonne sans protéger la feuille

Je met le dernier fichier ci-joint (macro incluse mais avec le problème du Ctrl + TAB)
Bonjour,

J'ai téléchargé votre classeur et je ne constate aucun dysfonctionnement. Tout fonctionne comme prévu.

Ctrl + TAB veut dire Ctrl (maintenu) ET Tab
Faites-vous bien la bonne manipulation ?

Si vous la faites bien, je ne sais pas d'où proviendrait le dysfonctionnement.
 
Dernière édition:

Pablo1991

XLDnaute Nouveau
Re : Verrouillage de colonne sans protéger la feuille

Merci pour vos précisions, cela fonctionne maintenant mais je ne comprend pas d'où vient le dysfonctionnement étant donné que je faisais la manipulation juste.

Par contre, lorsque je rentre un nouveau collaborateur, par exemple Stéphane, la liste déroulante de la deuxième colonne (Mois) n'apparaît plus, est-ce normal ?
 

PMO2

XLDnaute Accro
Re : Verrouillage de colonne sans protéger la feuille

Je vois apparaître la formule suivante
=RECHERCHEV(Tableau1[[#Cette ligne];[Collaborateur]];tab_col_sal;4;FAUX)
et je ne sais pas à quoi elle se rapporte.
C'est vous qui avez entré ces formules et qui êtes à même de répondre à votre question.
****

Ce que vous pouvez faire, lorsque vous effectuez des changements sur le classeur, est de désactiver la gestion des événements et de la rétablir à la fin. Vous verrez mieux ce qui se passe.
Pour ce faire, copiez le code suivant dans un module Standard qui aura pour effet d'inverser la booléenne (True devient False et réciproquement).
Code:
Sub SwitchGestionEvents()
Application.EnableEvents = Not Application.EnableEvents
End Sub
 

Pablo1991

XLDnaute Nouveau
Re : Verrouillage de colonne sans protéger la feuille

Merci! je ne connaissais pas l'astuce.

Pour en revenir à la colonne Mois, il s'agit de ma liste déroulante qui vraisemblablement n'est pas paramétré pour les nouvelles lignes créées (contrairement à la colonne Projet), j'ignore la raison..
 

PMO2

XLDnaute Accro
Re : Verrouillage de colonne sans protéger la feuille

Pour en revenir à la colonne Mois, il s'agit de ma liste déroulante qui vraisemblablement n'est pas paramétré pour les nouvelles lignes créées (contrairement à la colonne Projet), j'ignore la raison..
Je ne sais pas non plus pour quelle raison une formule apparaît dans la colonne Mois.
On peut pallier avec une grosse bidouille.
Changez le code de la Private Sub InterceptCtrlTab avec le code ci-dessous
Code:
Private Sub InterceptCtrlTab()
Dim R As Range
'---
Set R = ActiveSheet.ListObjects(1).ListRows.Add(AlwaysInsert:=False).Range
R.Cells(1, 2) = ""
End Sub
 

Pablo1991

XLDnaute Nouveau
Re : Verrouillage de colonne sans protéger la feuille

En fait, le fichier avait tellement été modifié et remanié que des mises en formes, liste déroulantes et formules se sont superposées selon chris du forum. J'ai supprimé avec la flèche noire toute la ligne et ré-entré les informations sans souci cette fois-ci.


Autrement tu saurais comment bloquer cette fois-ci une ligne de toute modification ? En l’occurrence, ce serait la ligne avec les entêtes (uniquement ligne 3). En effet si une en-tête est modifié, ça modifie également tout mes Tableau croisés dynamiques dans les autres feuilles et vu que ce fichier est destiné à quelqu'un pas très à l'aise avec excel, il vaut mieux éviter tout désagrément ^^

Merci encore et bonne journée!
Pablo
 

Discussions similaires

Réponses
2
Affichages
148

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260