Đổi màu cell khi tính toán

Liên hệ QC

thuynhung1979

Thành viên mới
Tham gia
22/2/08
Bài viết
25
Được thích
8
Em có bài tập thế này : Tạo bảng tính theo hình em upload lên đó. Các yêu cầu như sau
1. Khi người dùng gõ ngày tháng năm vào ô Date of Birth, tại ô Age sẽ hiển thị tuổi. Nhưng nếu tuối <18 thì ô Age sẽ chuyển thành màu khác.
2. Khi chọn quãng đường tại 2 combo FromDestination, nếu quãng đường đó có sẵn trong cột Routes ở bảng Ferry Information phía dưới thì sẽ hiển thị Fery name trong bảng vào ô Ferry, ngược lại thì hiển thị kí hiệu #N/A.
3. Khi kích vào nút Cacel, dữ liệu nhập vào ở trên sẽ bị xoá.
4. Khi kích vào option mà khi click, increases each ferry price in the Ferry Information table by 50 euros and decreases each Ferry price by 50 euros, respectively. (The original prices are as shown). (Xin lỗi em không hiểu chỗ này nên không dịch được)

Làm ơn hãy giúp em với, đây là đề thi học sinh giỏi nghề nhưng khó quá en không làm được. Mà em đang cần gấp. EM xin cảm ơn.
 

File đính kèm

  • a.GIF
    a.GIF
    30.7 KB · Đọc: 59
Lần chỉnh sửa cuối:
* Trước hết bạn phải up file lên mới có hướng dẫn cụ thể
1- Bạn dùng Conditional Fomatting tại ô Age
2-FromDestination bạn dùng Data Validadion\list. Với List là vùng dữ liệu Ferry Information table
3- Viết Macro xóa dữ liệu và gán cho nút Clear

-----------------------------
Bạn gửi file lên sẽ hướng dẫn trực tiếp trên file. Thân !
 
Upvote 0
Bạn tham khảo theo file đính kèm nha!

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
 Dim Tuoi As Byte
  If Not Intersect(Target, Cells(5, 3)) Is Nothing Then
    
    Tuoi = Int((Date - Target) / 365.25)
    If Tuoi < 6 Then Exit Sub
    With Target.Offset(1)
        .Value = Tuoi
        If Tuoi < 18 Then
            .Interior.ColorIndex = 35
        Else
            .Interior.ColorIndex = 2
        End If
    End With
  ElseIf Not Intersect(Target, Cells(16, 3)) Is Nothing Then
    For Tuoi = 26 To 34
        With Target
            If .Offset(-1) & " - " & .Value = Cells(Tuoi, 3) Then
                Cells(25, 1) = Tuoi - 25:               Exit For
            End If
        End With
    Next Tuoi
  End If
End Sub
Mã:
[B]Sub ClaerAll()[/B]
 Union(Range("C2:C16"), Range("C21:C23")).ClearContents
 Cells(25, 1) = 0
[B]End Sub [/B]
 

File đính kèm

Upvote 0
Cho mình hỏi ngôn ngữ lập trình bạn viết ở trên là ngôn ngữ gì thế ?
 
Upvote 0
Đề thi học sinh giỏi Asean

Đây là đề thi asean, em vãn chưa thể làm xong hết được nên mong mọi người giúp đỡ đáp án. Em cảm ơn
 
Upvote 0
Trời! vừa phải giỏi tiếng Anh vừa phải giỏi EXCEL, lại vừa phải nhập trên EXCEL, pótay.potay.
 
Upvote 0
SA_DQ đã viết:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
.....
Cảm ơn nhưng bạn làm phức tạp quá. Maình có thể đổi màu tuổi được rồi, nhưng mà cái phần chọn combo thì bạn làm không đúng yêu cầu rồi. Bạn làm lại hộ mình nhé
 
Upvote 0
phamnhukhang đã viết:
* Trước hết bạn phải up file lên mới có hướng dẫn cụ thể
1- Bạn dùng Conditional Fomatting tại ô Age
2-FromDestination bạn dùng Data Validadion\list. Với List là vùng dữ liệu Ferry Information table
3- Viết Macro xóa dữ liệu và gán cho nút Clear

-----------------------------
Bạn gửi file lên sẽ hướng dẫn trực tiếp trên file. Thân !

Cảm ơn bạn. Mình làm 1 file ví dụ thế này, bạn giúp mình nhé
 

File đính kèm

Upvote 0
thuynhung1979 đã viết:
nhưng mà cái phần chọn combo thì bạn làm không đúng yêu cầu rồi. Bạn làm lại hộ mình nhé
Đúng đó chứ! Nhưng chỉ khi chọn cái thứ 2 thì mới cập nhật lại 2 giá trị ô bên dưới;
Nếu bạn muốn, mình có thể làm NTN (như thế này):
Nếu chọn ô CF (1) thì giá trị 2 ô dưới sẽ bị xóa trắng;
& chỉ khi bạn chọ ô CF thứ 2 thì sẽ hiện nếu 2 ô có trong danh sách;

Nếu bạn trả lời YES thì thêm câu lệnh này vô macro trên:
Mã:
[COLOR="Silver"]ElseIf Not Intersect(Target, Cells(16, 3)) Is Nothing Then 
    For Tuoi = 26 To 34 
        With Target 
            If .Offset(-1) & " - " & .Value = Cells(Tuoi, 3) Then 
                Cells(25, 1) = Tuoi - 25:               Exit For 
            End If 
        End With 
    Next Tuoi [/COLOR]  
 ElseIf Not Intersect(Target, Cells(15, 3)) Is Nothing Then 
        range(cells(17,3),cells(18,3))=""    
 [COLOR="silver"] End If 
End Sub [/COLOR]

Bạn chú í là: Cẩn trọng khi thêm bớt dòng hay cột; Một lẽ ví macro cần lấy những giá trị tại những ô đã định vị!!
Flower2.jpg
 
Upvote 0
Bạn chú í là: Cẩn trọng khi thêm bớt dòng hay cột; Một lẽ ví macro cần lấy những giá trị tại những ô đã định vị!!

Không, í mình là phần chọn nơi đi và nơi đến thì lấy thông tin ở bảng dưới í. Bạn xem lại hộ mình file vidu ma mình up lên nhé.Trong đó mình ghi rõ yêu cầu. Với lại là nếu có thể thì sử dụng những công cụ sẵn có trong excel chứ cái gì cũng viết code thì hơi phức tạp, đúng không bạn.
 
Upvote 0
Với lại là nếu có thể thì sử dụng những công cụ sẵn có trong excel chứ cái gì cũng viết code thì hơi phức tạp, đúng không bạn.

Mình thì ngược lại bạn (cũng như với một bạn khác, như AnhTuan, ThuNghi. . . . - Là những nhà xuất sắc về công thức & name); Bao giờ & trước hết mình xét đến vấn đề đó giải quyết bằng VBA sẽ như thế nào!
Thông cảm nha; Các CT & Names mình tệ lắm!! & mình biết access mới chuyển sang excel mà!
 
Upvote 0
Web KT

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

Back
Top Bottom