Cấu trúc bảng tính: Thiết lập vùng phải có dữ lệu (bất kỳ) nhưng không được để trống. (4 người xem)

Liên hệ QC

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

khamphoa

Thành viên mới
Tham gia
7/3/08
Bài viết
19
Được thích
2
Vấn đề cần xử lý:
Khi một người nhận được file này (đính kèm dưới đây).
Bắt buộc phải nhập dữ liệu cho vùng (ví dụ A3:D14).
Dữ liệu nhập vào kiểu BẤT KỲ, có thể là chuỗi, số, ngày tháng…NHƯNG KHÔNG ĐƯỢC ĐỂ TRỐNG

Rất mong nhận được ý kiến đóng góp của các bạn.
 

File đính kèm

Dùng conditional formating đi bạn!!!
 
Theo mình cách tốt nhất:
Tạo 1 userform kiểm tra số liệu trước khi vào.
:-=
 
Bạn Vu Tuan Manh Linh ơi,
Ban đầu mình cũng có ý tưởng dùng chức năng Conditional Formatting đó là:
+ Định dạng vùng A3:D14: sao cho những ô không có dữ liệu (Blanks) có NỀN MÀU ĐỎ ĐẬM.
+ Mục đích là người nhận phải nhập dữ liệu để mất màu ĐỎ
Cách này vẫn không giải quyết được vấn đề, đó là người nhận vẫn có thể KO NHẬP DỮ LIỆU.

Không biết ý bạn là như thế nào? Rất mong nhận được ý kiến đóng góp của bạn.
 
Lần chỉnh sửa cuối:
Theo mình cách tốt nhất:
Tạo 1 userform kiểm tra số liệu trước khi vào.
:-=

Cách của bạn chắc liên quan đến lập trình VB đúng vậy không?
Bạn hướng dẫn cụ thể hơn dùm mình được không?
Hoặc bạn cho mình địa chỉ để tham khảo.
Chỗ nào chưa hiểu nhờ bạn tư vấn dùm sau.
 
Một cách dùng VBA
Right Click vào sheet có vùng muốn khống chế ( trong file là sheet 1) ==> View Code ==> chép em này vào
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Vung
    Set Vung = [A3:D14]
        If Application.WorksheetFunction.CountBlank(Vung) Then
            If Target.Column > 4 Or Target.Row > 14 Then [A3].Select
        End If
End Sub
Trong vùng A3:D14 nếu chưa nhập đủ dữ liệu sẽ không chọn ra ngoài vùng ấy được
Thân
 
Bạn Vu Tuan Manh Linh ơi,
Ban đầu mình cũng có ý tưởng dùng chức năng Conditional Formatting đó là:
+ Định dạng vùng A3:D14: sao cho những ô không có dữ liệu (Blanks) có NỀN MÀU ĐỎ ĐẬM.
+ Mục đích là người nhận phải nhập dữ liệu để mất màu ĐỎ
Cách này vẫn không giải quyết được vấn đề, đó là người nhận vẫn có thể KO NHẬP DỮ LIỆU.

Không biết ý bạn là như thế nào? Rất mong nhận được ý kiến đóng góp của bạn.
Cảnh báo thì theo cách nào đi nữa vẫn chỉ là cảnh báo thôi!! Mục đích là để người dùng nhận biết, còn người ta cố tình không nhập dữ liệu thì thà đừng làm gì còn hơn bạn ạ!!!
 
Một cách dùng VBA
Right Click vào sheet có vùng muốn khống chế ( trong file là sheet 1) ==> View Code ==> chép em này vào
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Vung
    Set Vung = [A3:D14]
        If Application.WorksheetFunction.CountBlank(Vung) Then
            If Target.Column > 4 Or Target.Row > 14 Then [A3].Select
        End If
End Sub
Trong vùng A3:D14 nếu chưa nhập đủ dữ liệu sẽ không chọn ra ngoài vùng ấy được
Thân
Theo tôi đoạn code cũng chưa thể "áp đặt người dùng" theo ý tưởng của chủ thớt được!!
 
Một cách dùng VBA
Right Click vào sheet có vùng muốn khống chế ( trong file là sheet 1) ==> View Code ==> chép em này vào
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Vung
    Set Vung = [A3:D14]
        If Application.WorksheetFunction.CountBlank(Vung) Then
            If Target.Column > 4 Or Target.Row > 14 Then [A3].Select
        End If
End Sub
Trong vùng A3:D14 nếu chưa nhập đủ dữ liệu sẽ không chọn ra ngoài vùng ấy được
Thân[/QUOTE]

Đã làm được rồi như bạn hướng dẫn. Cám ơn bạn thật nhiều.
Tiện thể cho mình hỏi:
VÌ đoạn mã này mình ADD nó vào mà /-*+/ nên:
Khi gửi FILE này cho người khác thì: có những trường hợp nào thường gặp mà CODE này BỊ MẤT hoặc KO CÓ TÁC DỤNG không?
Chẳng hạn: Do phiên bản Office không hỗ trợ, do xung đột chương trình khác, do đóng chức năng nào đó...
 
Lần chỉnh sửa cuối:
Theo tôi đoạn code cũng chưa thể "áp đặt người dùng" theo ý tưởng của chủ thớt được!!
Ý bạn là họ Delete vùng đó ah. Hii.
Thế thì phải viết thêm đoạn mã cấm xóa, cấm chèn trong vùng đó rồi nhỉ.
Không biết ý bạn thế nào?
Cám ơn ý kiến phản biện của bạn, làm mình phải suy nghĩ thêm những trường hợp khác có thể xảy ra.
úi, đọc mãi giờ mới hiểu ý của bạn, đúng rồi, họ mở file ra, KO NHẬP DỮ LIỆU VÀ ĐÓNG LẠI..Hii. đúng là CỐ TÌNH thì đành chịu thôi.
Những trường hợp này thôi thì bỏ qua, không có chương trình nào giải quyết được.
Con người viết chương trình chứ chương trình ko áp đặt con người được. Hii.
 
Lần chỉnh sửa cuối:
Ý bạn là họ Delete vùng đó ah. Hii.
Thế thì phải viết thêm đoạn mã cấm xóa, cấm chèn trong vùng đó rồi nhỉ.
Không biết ý bạn thế nào?
Cám ơn ý kiến phản biện của bạn, làm mình phải suy nghĩ thêm những trường hợp khác có thể xảy ra.
úi, đọc mãi giờ mới hiểu ý của bạn, đúng rồi, họ mở file ra, KO NHẬP DỮ LIỆU VÀ ĐÓNG LẠI..Hii. đúng là CỐ TÌNH thì đành chịu thôi.
Những trường hợp này thôi thì bỏ qua, không có chương trình nào giải quyết được.
Con người viết chương trình chứ chương trình ko áp đặt con người được. Hii.
Nếu đã áp đặt thì làm thế này luôn đi! Mở file ra mà không nhập dữ liệu thì khỏi đóng file luôn (Trừ phi cố tình đóng bảng task Manager)
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Cll As Range
For Each Cll In Worksheets("sheet1").Range("A3:D14")
    If Cll.Value = "" Then
        Cll.Select
        Cancel = True
        Exit For
    End If
Next
End Sub
 
Lần chỉnh sửa cuối:
Nếu đã áp đặt thì làm thế này luôn đi! Mở file ra mà không nhập dữ liệu thì khỏi đóng file luôn (Trừ phi cố tình đóng bảng task Manager)
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Cll As Range
For Each Cll In Worksheets("sheet1").Range("A3:D14")
    If Cll.Value = "" Then
        Cll.Select
        Cancel = True
        Exit For
    End If
Next
End Sub

Thực ra chẳng mấy ai cố ý vậy đâu, chẳng qua họ quên béng mà thôi.
Hoặc có những trường hợp họ nghĩ rằng không cần nhập cũng được.
Vd: Trường hợp điểm thi để trống với điểm thi là 0 có tính chất khác nhau.
Trường hợp của mình đó là việc tổng hợp số liệu lấy từ nhiều nơi (có thể lên hàng trăm địa điểm), có những lúc cần tổng hợp gấp, ẹc thế mà thông tin nhận được không đầy đủ.
Liên hệ những người đó thì: không liên lạc được hoặc lúc đó họ không có mạng để gửi. Hic.
Mà 1 vài người còn được chứ hàng chục người thì đành chịu rồi...
Mình đưa ra trường hợp này hi vọng những người nào đó gặp trường hợp tương tự đọc hiểu và thông cảm thôi, quan trọng là họ hiểu đúng tính chất công việc là như vậy. Hii. Thực ra nếu viết phần mềm riêng thì khỏe rồi, khi nhập dữ liệu sẽ chuẩn rồi nhưng ở đây lúc này chưa thực hiện được. Cám ơn bạn Manh Linh rất nhiều, đúng là áp đặt thì chẳng ai muốn bạn ah. Mình cũng hi vọng không phải dùng tới biện pháp mạnh của bạn. Nhưng kiến thức của bạn thật hữu ích.
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom