Có dùng fillter theo chiều ngang được không

Liên hệ QC

abc12199

Thành viên hoạt động
Tham gia
15/8/07
Bài viết
113
Được thích
14
Bạn nào có thể giúp đỡ trường hợp này với
xin cảm ơn
 

File đính kèm

  • Book1.xls
    19 KB · Đọc: 144
+ thế này chắc bạn nên dùng VBA -> để ẩn/hiệnh cột (hide column) thôi: nếu thế thì bạn tìm (search) code trên diễn đàn nhìu lém (nhất là các bài viết về "Tiến độ" dự án)
+ ko rõ có cách khác k nhỉ?
.
 
Nếu filter chỉ đễ "nhìn" thì... thôi.. khỏi cần giãi pháp...
Vì thế cũng nên biết rõ tác giã muốn filter như thế là với mục đích gì... như vậy sẽ có giãi pháp hửu hiệu hơn, ko hẳn là sẽ dùng Filter...
ANH TUẤN
 
Nếu các ô trong 1 tháng là cố định, thì nên là . . .

abc12199 đã viết:
Bạn nào có thể giúp đỡ trường hợp này với
xin cảm ơn
PHP:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rng As Range, Thang As Byte
 If Not Intersect(Target, Cells(2, 1)) Is Nothing Then
    Thang = Choose(Right(Target.Value, 2), 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
    Set Rng = Cells(3, Thang * 6 - 4).Resize(7, 5)
    Rng.Copy Destination:=Cells(15, 3)
 End If
End Sub
 

File đính kèm

  • CopyCells.rar
    9.2 KB · Đọc: 119
He... he... Anh Sa làm file này có lý à nha! Rất đơn giãn...
Tôi hiểu thuật toán nhưng chưa hiểu lắm về cú pháp ở 1 vài chổ, chẳng hạn như Resize...
Tôi theo thuật toán cũa anh Sa: định vị Range theo điều kiện trong Validation và làm lại file bằng công thức đây!
Mến
ANH TUẤN
 

File đính kèm

  • LOC_01.zip
    7.5 KB · Đọc: 77
Nếu làm file này bằng VBA đễ thể hiện giống như file cũa anh SA_DQ thì tôi sẽ làm như sau:
1> Đặt 2 name:
Mã:
NGUON =OFFSET(Sheet2!$B$3:$F$10,,6*(Sheet2!$A$2-1))
DICH =Sheet2!$B$15:$F$22
2> Tạo code:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
   Application.ScreenUpdating = False
   If Target.Address = "$A$2" Then
       Application.Goto Range("NGUON")
       Selection.Copy
       Application.Goto Range("DICH")
       ActiveSheet.Paste
       Application.CutCopyMode = False
   End If
   Range("A2").Select
End Sub
Nếu chỉ cần lấy giá trị, ko lấy Format thì càng dễ:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$2" Then
        Range("DICH").Value = Range("NGUON").Value
    End If
End Sub
Tôi nghĩ thuật toán cũa 3 cách làm là 1.. chỉ là cách thể hiện có hơi khác nhau.. nhất là ko nghĩ ra dc code giống như anh SA_DQ... hi.. hi..
Riêng tôi vẫn thích nhất chiêu định vị range bằng Define name và code Application.Goto vì những lý do:
1> Với tôi nó quá dễ hiểu
2> Code hiếm khi chạy sai khi có sự thay đổi vùng dử liệu, chẳng hạn khi ta nắm kéo vùng DICH đi nơi khác, thậm chí là sang sheet khác (Trường hợp này sẽ ko xài WorkSheet_Change mà Assign macro cho ComboBox)
Cãm ơn anh!
ANH TUẤN
 
Lần chỉnh sửa cuối:
He... he... Anh Sa làm file này có lý à nha! Rất đơn giãn...
Tôi hiểu thuật toán nhưng chưa hiểu lắm về cú pháp ở 1 vài chổ, chẳng hạn như Resize...
Theo cũa anh Sa: định vị Range theo điều kiện trong Validation và làm lại file bằng công thức đây! Mến; ANH TUẤN
To Anh Tuấn & các bạn nào muốn rõ thêm về Resizie:
bài cuối ' phần tử 'Range' Xin cảm ơn AnhTuấn & mọi người! --=0 )(&&@@ :=\+ }}}}}

Riêng với Tuấn: Nếu Tuấn làm việc trong CQ 'Nhà nước' chắc sẽ chú tâm với lỗi chính tả của mình hơn! ( & đừng giận nha! )
 
Lần chỉnh sửa cuối:
anhtuan1066 đã viết:
Nếu filter chỉ đễ "nhìn" thì... thôi.. khỏi cần giãi pháp...
Vì thế cũng nên biết rõ tác giã muốn filter như thế là với mục đích gì... như vậy sẽ có giãi pháp hửu hiệu hơn, ko hẳn là sẽ dùng Filter...
ANH TUẤN
Bạn anhtuan nói khó hiểu quá
 
Web KT
Back
Top Bottom