locker une colonne en vba

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 !

zahr kall

XLDnaute Nouveau
Bonjour,

Je cherche à locker plusieurs colonnes en vba en fonction de la valeur d'une cellule (ligne 89) comprise dans ces colonnes.

Voici mon code :

Private Sub valider_btn_Click()

If matricule.Value = "" Then

MsgBox "vous n'avez pas saisi votre matricule."

ElseIf ActiveCell.Offset(0, 251).Value = Int(matricule.Value) Then

ActiveSheet.Unprotect Password:="1"

Range(Trim(Str(ActiveCell.Row)) & ":" & Trim(Str(ActiveCell.Row))).Select

Selection.Locked = False
Selection.FormulaHidden = False

Application.Goto reference:="r1c2"
ActiveCell.Offset(0, 0).Value = Int(matricule.Value)

Range("C2").Value = Range("c2").Value + 1


Dim ws As Worksheet
Dim col As Integer
Dim lig As Integer

Set ws = Worksheets(1)
lig = 89

For col = 5 To 216
If ws.Cells(lig, col).Value = 0 Then
MsgBox ("valeur col : " & col & " et valeur lig : " & lig & ".")
ws.Columns(col).Locked = True
End If
Next col

Set ws = Nothing





Application.Goto reference:="r6c5"
ActiveSheet.Protect Password:="1", DrawingObjects:=True, Contents:=True, Scenarios:=True

Unload Verif




MsgBox "saisissez vos souhaits maintenant en notant 'CP' ou 'RTT' sur les jours choisis."


Else

MsgBox "vous n'avez pas bien saisi votre matricule."

End If

End Sub



le problème, c'est que j'ai un débogage :

Erreur d'exécution '1004':
Impossible de définir la propriété Locked de la classe Range


sur la ligne :
ws.Columns(col).Locked = True

De plus, si je mets entirecolumns.hidden à la place de locked, ça marche.
J'avoue ne plus savoir quoi faire après plusieurs heures de recherches et tentatives ratées...

Dernier détail, certaines cellules sont déjà verrouillées. Peut-être que leur indiquer un verrouillage supplémentaire les fait planter, non?

Merci d'avance à ceux qui pourront m'aider.

Cordialement,
 
Dernière édition:
Re : locker une colonne en vba

bonjour,

Je viens de tester chez moi avec qq modif pour l'adapter et ça fonctionne.

Peux-tu nous faire parvenir ton fichier? ça aidera.

Au passage, à la place de:

Range(Trim(Str(ActiveCell.Row)) & ":" & Trim(Str(ActiveCell.Row))).Select

tu peux utiliser

Rows(activecell.row)

Je sais ça ne répond pas à la question, donc avec le fichier peut-être que ce qui nous échappe sera plus clair.

Cordialement
 
Re : locker une colonne en vba

punaise, c'est génial!! merci beaucoup!!!
et dire que j'avais vérifié que mon tableau soit défusionné, mais j'avais pas vérifié en dessous!!!!
c'est dingue. tant de prise de tête pour si peu.
En tout cas, ça confirme l'idée de ne jamais fusionner des cellules.

Encore merci pour tout et bon week end!!
 
- 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
0
Affichages
566
  • Question Question
XL pour MAC boucle couleur
Réponses
25
Affichages
1 K
Réponses
8
Affichages
1 K
Réponses
1
Affichages
908
Retour