Nhờ các Bạn sửa giúp code khóa dòng (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ndhmoney686

Thành viên thường trực
Tham gia
25/4/12
Bài viết
376
Được thích
104
Mình có gửi file đính kèm ghi chi tiết nội dung bên trong. Mong các Bạn xem và giúp đỡ. Cảm ơn các Bạn nhiều!
 

File đính kèm

có nghĩa là, những cell trên những dòng chưa bị khóa (có chứa công thức hoặc không có công thức- vì những cell trên những dòng đã khóa thì nó bị khóa chung với dòng đó rồi) đều có định dạng Clocked & hidden.
làm sao mà làm được đây bạn? vì bạn muốn định dạng thì file phải ở trạng thái unprotect.
còn khi đã protect rồi thì làm sao mở được format để dịnh dạng???
không biết hiểu có đúng ý bạn ko?
còn bạn muốn tất cả các cell chứa cthức đều bị khóa, thì trước khi nó thực hiện lệnh protect, chép đoạn mã này dzo

Selection.SpecialCells(xlCellTypeFormulas, 23).Select
Selection.Locked = True
Selection.FormulaHidden = True
 
Upvote 0
có nghĩa là, những cell trên những dòng chưa bị khóa (có chứa công thức hoặc không có công thức- vì những cell trên những dòng đã khóa thì nó bị khóa chung với dòng đó rồi) đều có định dạng Clocked & hidden.
làm sao mà làm được đây bạn? vì bạn muốn định dạng thì file phải ở trạng thái unprotect.
còn khi đã protect rồi thì làm sao mở được format để dịnh dạng???
không biết hiểu có đúng ý bạn ko?
còn bạn muốn tất cả các cell chứa cthức đều bị khóa, thì trước khi nó thực hiện lệnh protect, chép đoạn mã này dzo

Selection.SpecialCells(xlCellTypeFormulas, 23).Select
Selection.Locked = True
Selection.FormulaHidden = True


Khi chọn khóa. Thì ngoài dòng đã bị khóa ra, tất cả những cell có chứa công thức trong bảng tính đều bị khóa và ở chế độ định dạng Clocked & hidden.
Bạn cho mình hỏi với đoạn code trong file của mình thì mình đặt thêm đoạn code của Bạn thêm vào chỗ nào được Bạn. Bạn chỉ giúp mình. Cảm ơn Bạn nhiều!


Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cl As Range
If Target.Column = 2 Then
Unprotect "123"
Cells.Locked = False
For Each Cl In Range([B5], [B65536].End(3))
If UCase(Cl.Value) = "R" Then Rows(Cl.Row).EntireRow.Locked = True
Next
Protect "123", AllowFiltering:=True
End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
.......
Next
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
Selection.Locked = True
Selection.FormulaHidden = True
Protect "123", AllowFiltering:=True
................
 
Upvote 0
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim Cl As Range
If Target.Column = 2 Then
Unprotect "1012096868"
Cells.Locked = False
For Each Cl In Range([B6], [B65536].End(3))
If UCase(Cl.Value) = "R" Then Rows(Cl.Row).EntireRow.Locked = True
Next
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
Selection.Locked = True
Selection.FormulaHidden = True
Protect "1012096868", AllowFiltering:=True
End If
End Sub


Với đoạn code trên. Thì các vấn để em nêu ở trên đã được giải quyết và rất Ok. Một lần nữa Em xin cảm ơn các Anh Chị đã giúp Em code trên.


Bây giờ có một vấn để nhờ các Bạn giúp mình thêm như sau:
- Các Bạn bổ sung thêm tính năng cho sửa cột "Format columns"
- Và hiện tại có một bất tiện nhỏ như sau: ví dụ khi mình đang ở dòng thứ 200. Mình chọn khóa dòng 200 đó xong một cái, thì màn hình nó lại quay về các dòng ở trên cùng. Làm cho mỗi lần thao tác khóa dòng lại phải kéo chuột xuống dòng hiện tại ở phía dưới. Các bạn có cách nào để khóa xong một cái thì con trỏ chuột nó vẫn ở dòng hiện tại, ko bị chạy đi chỗ khác.
Mong các Bạn giúp đỡ. Cảm ơn nhiều!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim Cl As Range
If Target.Column = 2 Then
Unprotect "1012096868"
Cells.Locked = False
For Each Cl In Range([B6], [B65536].End(3))
If UCase(Cl.Value) = "R" Then Rows(Cl.Row).EntireRow.Locked = True
Next
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
Selection.Locked = True
Selection.FormulaHidden = True
Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True, AllowFiltering:=True
End If
End Sub


Với đoạn code trên. Thì các vấn để em nêu ở trên đã được giải quyết và rất Ok. Một lần nữa Em xin cảm ơn các Anh Chị đã giúp Em code trên.


Bây giờ có một vấn để nhờ các Bạn giúp mình thêm như sau:
- Các Bạn bổ sung thêm tính năng cho sửa cột "Format columns"
- Và hiện tại có một bất tiện nhỏ như sau: ví dụ khi mình đang ở dòng thứ 200. Mình chọn khóa dòng 200 đó xong một cái, thì màn hình nó lại quay về các dòng ở trên cùng. Làm cho mỗi lần thao tác khóa dòng lại phải kéo chuột xuống dòng hiện tại ở phía dưới. Các bạn có cách nào để khóa xong một cái thì con trỏ chuột nó vẫn ở dòng hiện tại, ko bị chạy đi chỗ khác.
Mong các Bạn giúp đỡ. Cảm ơn nhiều!

thử vậy xem
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
 On Error Resume Next
Dim Cl As Range
If Target.Column = 2 Then
Unprotect "123"
Cells.Locked = False
For Each Cl In Range([B6], [B65536].End(3))
If UCase(Cl.Value) = "R" Then Rows(Cl.Row).EntireRow.Locked = True
Next
'Selection.SpecialCells(xlCellTypeFormulas, 23).Select
'Exit Sub
With Selection.SpecialCells(xlCellTypeFormulas, 23)
    .Locked = True
    .FormulaHidden = True
End With
Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True, AllowFiltering:=True
End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
thử vậy xem
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
 On Error Resume Next
Dim Cl As Range
If Target.Column = 2 Then
Unprotect "123"
Cells.Locked = False
For Each Cl In Range([B6], [B65536].End(3))
If UCase(Cl.Value) = "R" Then Rows(Cl.Row).EntireRow.Locked = True
Next
With Selection.SpecialCells(xlCellTypeFormulas, 23)
    .Locked = True
    .FormulaHidden = True
End With
Protect "123", AllowFormattingColumns:=True, AllowFiltering:=True
End If
End Sub


Ui đúng rồi Bạn ạ. Cảm ơn Bạn Let'GâuGâu rất nhiều nhiều!
Đợt sắp tới Em đang chuẩn bị giành thời gian nghiên cứu món VBA này. Nó hay quá. Nhưng ko biết có học được ko, Có vấn đề gì chưa hiểu Em post bài lên GPE nhờ các Anh chị giúp thêm nhé. Thấy nó là một đẳng cấp cao quá, ko biết có với tới được ko?
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom