Em hỏi cách tự động lấy màu nền của ô khác! (1 người xem)

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

tuoichuot84

Thành viên mới
Tham gia
23/1/09
Bài viết
4
Được thích
0
Nghề nghiệp
KS CTM
E muốn ô A2 có màu nền giống A1 khi A1 thay đổi màu nền thì phải làm sao ạ???
 

File đính kèm

Ok, thanks bạn Chuot0106 nhé!
Cho mình hỏi thêm là nếu mình cần làm cho 100 ô thì phải làm thủ công như thế ko?
 
E có biết j về VBA hay macro đâu? Ấn Alt+F11 thì cứ thế sửa thôi à!+-+-+-+
Các bác giúp thì e nhận chứ e cũng chẳng tự vọc đc đâu!
 
Xem File đính kèm.......................!
Ở đây tôi lấy màu ô A3 theo ô A1 bạn hoàn toàn có thể thay đổi bằng ô khác.
LỖI
Tạm thời thấy Nếu cell A1 có màu Dark Red hoặc màu Purple thì ô A3 không nhảy ra màu giống A1.
.....
 
E có biết j về VBA hay macro đâu? Ấn Alt+F11 thì cứ thế sửa thôi à!+-+-+-+
Các bác giúp thì e nhận chứ e cũng chẳng tự vọc đc đâu!
1) Nhấn "Trả Lời Với Trích Dẫn" Có vẻ bạn thấy nút này thừa
2) Bạn sửa code trên như thế nào?
 
1) Nhấn "Trả Lời Với Trích Dẫn" Có vẻ bạn thấy nút này thừa
2) Bạn sửa code trên như thế nào?
Muốn ô khác thì thay A3 bằng ô khác thôi. Cho nên mình đang muốn hỏi để làm cho cả 1 bảng thì làm thế nào?
Ông ở Xuân Khanh thì hôm nào về tôi mời cốc Cofe, nhà tôi ở HV Ngân Hàng ý!
 
1) Muốn ô khác thì thay A3 bằng ô khác thôi.
2) Cho nên mình đang muốn hỏi để làm cho cả 1 bảng thì làm thế nào?
1) Ý bạn muốn nói đến bài #6 của tôi ah? Đúng thì bạn đọc kỹ lại bài #6 đi.
2) "Cho cả bảng tính" thì sửa vùng ở Sheet1.Range("A6").Interior.ColorIndex = i
Tôi đoán là vậy. Nhưng chắc sẽ nặng file + chậm máy.
 
Có ai giỏi món này thì sửa và post nên giúp. tôi cũng đang gặp vấn đề tương tự ( cần tự động sao chép mầu tương ứng từ sheet1 sang sheet2 )
 
Có ai giỏi món này thì sửa và post nên giúp. tôi cũng đang gặp vấn đề tương tự ( cần tự động sao chép mầu tương ứng từ sheet1 sang sheet2 )
Đưa File nên tôi xem thử. Nhớ là nêu rõ yêu cầu trong File nhé! Càng rõ ràng càng tôt cho bạn!
 
Muốn ô khác thì thay A3 bằng ô khác thôi. Cho nên mình đang muốn hỏi để làm cho cả 1 bảng thì làm thế nào?
Tôi chưa hiểu ý của bạn lắm!
Có phải ý bạn là toàn bộ bảng tính sẽ đổi màu theo màu của 1 ô nào đó, ví dụ A1????
Nói rõ ra ta sẽ tiếp tục!
 
Tôi chưa hiểu ý của bạn lắm!
Có phải ý bạn là toàn bộ bảng tính sẽ đổi màu theo màu của 1 ô nào đó, ví dụ A1????
Nói rõ ra ta sẽ tiếp tục!
Bạn đọc #6 và #9 của tôi chưa?
Ở #9 thì muốn đổi màu cả bảng tính thì thay A6 bằng A1:IV65536 chẳng hạn.
Nhưng tôi không biết VBA có dòng lệnh khác thay thế A1:IV65536 đó!
 
LỖI
Tạm thời thấy Nếu cell A1 có màu Dark Red hoặc màu Purple thì ô A3 không nhảy ra màu giống A1.
.....

Lỗi thì nhiều rồi. Vấn đề là code chưa hoàn hảo đâu!
Ai rảnh nghiên cứu theo hướng này nè: Đặt chuột chọn vào cell A1 rồi chọn màu trên thanh công cụ thì lập tức cell A2 sẽ thay đổi màu theo mà không cần phải Select sang cell khác
(code cũng rất đơn giản, chừng 20 dòng)
 
Lỗi thì nhiều rồi. Vấn đề là code chưa hoàn hảo đâu!
Ai rảnh nghiên cứu theo hướng này nè: Đặt chuột chọn vào cell A1 rồi chọn màu trên thanh công cụ thì lập tức cell A2 sẽ thay đổi màu theo mà không cần phải Select sang cell khác
(code cũng rất đơn giản, chừng 20 dòng)
Như vậy thì phải dùng Dialog Color rồi
Code trong Module
[GPECODE=vb]
Private pCustomColor(0 To 15) As Long
Private Type ChooseColor
lStructSize As Long
hwndOwner As Long
hInstance As Long
rgbResult As Long
lpCustColors As Long
flags As Long
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Private Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As ChooseColor) As Long
Public Function ShowColor(MyRange As Range) As Boolean
Dim CC As ChooseColor
With CC
.lpCustColors = VarPtr(pCustomColor(0))
.lStructSize = Len(CC)
If ChooseColor(CC) Then
ShowColor = True
MyRange.Interior.Color = .rgbResult
Else
ShowColor = False
End If
End With
End Function
[/GPECODE]
Code tại sự kiện selectchange của sheet có ô tô màu (ví dụ Sheet1), chọn vào ô A2 thì hiện bảng màu, ô A1 theo màu của ô A2
[GPECODE=vb]
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range("A2").Address Then
ShowColor Range("a1")
End If
End Sub
[/GPECODE]
Nhưng vẫn nhiều hơn 20 dòng code, ẹc ẹc
 

File đính kèm

Như vậy thì phải dùng Dialog Color rồi

Rất tiếc là ý tôi không phải vậy! Ý tôi là sau khi bạn tô màu cho cell A1 xong (tô bằng cách gì tùy ý) thì LẬP TỨC cell A2 sẽ có màu tương tự mà không cần phải SELECT gì cả
Code của bạn dùng sự kiện SelectionChange, vậy nên nếu bạn không dịch chuyển ActiveCell sang nơi khác thì code... tèo
--------------
Ý của tôi giống như video minh họa dưới đây:

[video=youtube;Qik949OLiKQ]https://www.youtube.com/watch?v=Qik949OLiKQ&feature=youtu.be[/video]


Bạn thấy rằng khi tôi thay đổi màu ở A1 thì D1 lập tức đổi theo. Sự kiện đổi màu này có tác dụng ngay cả khi tôi đang chọn màu trên bảng màu
 

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

Back
Top Bottom