Tạo sh tự động khi chọn 1 gia trị trên Combobox

Liên hệ QC

manhhung12

Thành viên thường trực
Tham gia
20/3/08
Bài viết
232
Được thích
88
Chào các bạn
Tôi làm 1 workbook trên sh1 là 1 danh sách các nân viên. trên đó tôi tạo 1 combobox đẻ chọn nhân viên. Trên sh này có 1 evnet: combobox_lostfocus() đẻ kiểm tra nếu đã có sh trùng tên với mã NV vừa chọn thì kích hoạt sheet này để làm việc, ngược lại thì thêm sh có tên là mã NV vừa chọn. Ở đay có 2 vấn đề xảy ra:
1) Khi chưa có sh trùng tên mã NV vừa chọn thì nó tạo ra 2 sheet chứ kg phải là 1 sheet (1: sheet.name=manv; 2.Sheẹt(i)/ i là số thứ tự của sh)
2) Tại ô C1 là tên của nhân viên nhân được khi ta chọn 1 mã NV trên combobox. Tôi dùng lệnh Vlookup($b$1,maten,2). Lý ra tôi dùng lệnh Vlookup(Value($b$1),maten,2) nhưng êxcl báo lỗi #value. Trong đó maten là 1 name động.
Các bạn giúp đỡ.
Cảm ơn nhiều.
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các bạn
Tôi làm 1 workbook trên sh1 là 1 danh sách các nân viên. trên đó tôi tạo 1 combobox đẻ chọn nhân viên. Trên sh này có 1 evnet: combobox_lostfocus() đẻ kiểm tra nếu đã có sh trùng tên với mã NV vừa chọn thì kích hoạt sheet này để làm việc, ngược lại thì thêm sh có tên là mã NV vừa chọn. Ở đay có 2 vấn đề xảy ra:
1) Khi chưa có sh trùng tên mã NV vừa chọn thì nó tạo ra 2 sheet chứ kg phải là 1 sheet (1: sheet.name=manv; 2.Sheẹt(i)/ i là số thứ tự của sh)
2) Tại ô C1 là tên của nhân viên nhân được khi ta chọn 1 mã NV trên combobox. Tôi dùng lệnh Vlookup($b$1,maten,2). Lý ra tôi dùng lệnh Vlookup(Value($b$1),maten,2) nhưng êxcl báo lỗi #value. Trong đó maten là 1 name động.
Các bạn giúp đỡ.
Cảm ơn nhiều.

Bạn nên sửa đoạn code như bên dưới, mấu chốt vấn đề bạn nêu ra giải quyết ở dòng in đậm màu xanh.
Private Sub ComboBox1_LostFocus()
On Error Resume Next
Dim shName As String, so As Integer, i As Integer
shName = Trim(Sheet1.Cells(1, 2))
so = Worksheets.Count
For i = 1 To so
If Sheets(i).Name = shName Then
MsgBox shName
Sheets(shName).Select
Exit For
Else
Application.Worksheets.Add
ActiveSheet.Name = shName
Exit Sub
End If
Next i
End Sub
 
Upvote 0
Bạn nên sửa đoạn code như bên dưới, mấu chốt vấn đề bạn nêu ra giải quyết ở dòng in đậm màu xanh.
Vẫn kg được bạn à. Tôi kg biết dùng sự kiện gì ở đay cho phù hợp, còn sự kiện Lostfocus kg ổn. Tôi muốn là sau khi chọn 1 mã nv rồi thì nó sẽ kiểm tra xem đã tồn tại sh trùng mã nv chưa nếu tồn tại thì nhảy đến sh đó và làm việc trên đó, ngược lai thì tao sh mới có tên là ma nv vừa chọn, rồi chọn sh đó và tạo tiêu đề cho sh mới, và 1 số thông tin như:
Tháng/Năm hiện hành
Tiêu đề là "bang châm công: " & tên nhân viên .
Tiêu đè cột: TT/a/b/c...
Tiêu đề dòng (trên cột thứ 1): ngày 1/ ngày 2/.... /ngày i (trong đó i là tổng số ngày của tháng đó
 
Upvote 0
Vẫn kg được bạn à. Tôi kg biết dùng sự kiện gì ở đay cho phù hợp, còn sự kiện Lostfocus kg ổn. Tôi muốn là sau khi chọn 1 mã nv rồi thì nó sẽ kiểm tra xem đã tồn tại sh trùng mã nv chưa nếu tồn tại thì nhảy đến sh đó và làm việc trên đó, ngược lai thì tao sh mới có tên là ma nv vừa chọn, rồi chọn sh đó và tạo tiêu đề cho sh mới, và 1 số thông tin như:
Tháng/Năm hiện hành
Tiêu đề là "bang châm công: " & tên nhân viên .
Tiêu đè cột: TT/a/b/c...
Tiêu đề dòng (trên cột thứ 1): ngày 1/ ngày 2/.... /ngày i (trong đó i là tổng số ngày của tháng đó

Mời bạn xem file đính kèm nhé!
 

File đính kèm

Upvote 0
Kg hiểu sao tôi download kg được vì trình download cua browser nó DL về 1 trang html.
Bạn PM cho tôi được kg. Máy tôi từ sau khi cài lại driver card mạng thì hoạt động khó hiểu quá. Tôi đang tìm hiểu.
Tôi gửi cái file chụp màn hình Download trên máy đẻ bạn biết và thông cảm
 
Lần chỉnh sửa cuối:
Upvote 0
Cách thông kê số liệu

Chào cả nhà,

Em đang bối rối với thống kế các số này nữa. Em không biết làm sao cả... huhu
Anh/ chị nào có thời gian xem giúp em cách làm nghe. em có gỏi theo file đính kèm.
Rất mong hồi âm và cảm ơn cả nhà.+-+-+-+
 

File đính kèm

Upvote 0
Chào cả nhà,

Em đang bối rối với thống kế các số này nữa. Em không biết làm sao cả... huhu
Anh/ chị nào có thời gian xem giúp em cách làm nghe. em có gỏi theo file đính kèm.
Rất mong hồi âm và cảm ơn cả nhà.+-+-+-+

Bạn xem file đính kèm nhé. Bao nhiêu sheet cũng được, nhưng phải tuân thủ nguyên tắc các sheet phải giống nhau về format dòng cột nhập liệu.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
file bạn gửi qua mail cho tôi ZoneAlam nghi ngờ có virus
bạn VTK kiểm tra dùm
Tks
 
Lần chỉnh sửa cuối:
Upvote 0
file bạn gửi qua mail cho tôi ZoneAlam nghi ngờ có virus
bạn VTK kiểm tra dùm
Tks

Nghi ngờ là phải vì nó có đoạn macro xử lý việc bạn yêu cầu mà! Nếu sợ nữa thì bạn dùng trình duyệt FireFox để down từ trang của GPE xuống xem thử nhé!
 
Upvote 0
Bằng macro đây, hoàn toàn có thể tham khảo trong file đính kèm

PHP:
Option Explicit
Sub ThongKe()
 Dim Sh As Worksheet
 Dim lRow As Long, Zz As Long, Ww As Long, tRow As Long
 Dim bF As Byte, ThGian As Integer
 
 For Each Sh In Worksheets
   If Sh.Name <> "Thong Ke" Then
      bF = 1 + bF
      lRow = Sheets("Thong Ke").[b65500].End(xlUp).Row
      For Zz = 4 To lRow
         tRow = Sh.[a65500].End(xlUp).Row
         With Sheets("Thong Ke")
            .[b3].Offset(, bF) = Sh.Name
            For Ww = 5 To tRow
               If Sh.Cells(Ww, 3) = .Cells(Zz, 2) And _
                  (.Cells(Zz, 1) = Sh.Cells(Ww, 1) Or _
                  .Cells(Zz, 1) = Sh.Cells(Ww, 2)) Then
                  ThGian = ThGian + Sh.Cells(Ww, 6)
               End If
            Next Ww
            If ThGian > 0 Then
               .Cells(Zz, 2).Offset(, bF).Value = ThGian
               ThGian = 0
            End If
         End With
      Next Zz
   End If
 Next Sh
End Sub
 

File đính kèm

Upvote 0
Nghi ngờ là phải vì nó có đoạn macro xử lý việc bạn yêu cầu mà! Nếu sợ nữa thì bạn dùng trình duyệt FireFox để down từ trang của GPE xuống xem thử nhé!
Bạn thông cảm vtôi dùng máy nhà để download rồi.
Toi muốn biết sheets(system) là ở đâu vậy? làm sao để xem sh này? Mà sao ta phải dùng Sheets(system)?
Bạn đã làm hơn rất nhiều những gì tôi mong. Tôi có ý định sẽ dùng 1 hàm để trả về số ngày của tháng hiện hành-> sau đó dùng cho vòng lặp:
HTML:
                    For Zj = 1 To 31
                    Cells(Zj + 4, 1) = Zj
                    Next Zj
Vì tháng hiện hành có thể là 28/30/31 ngày.
ở phần tiêu để cột tôi sẽ gán cho mỗi cột là thứ tự của giờ trong 1 ngày, đại loai:
1/2/3/4...../24
như vậy tôi sẽ gán như sau:
HTML:
            for gio=1 to 24        
                    .cells(4,gio+1) = "00" & gio
            next gio
Vậy có được không bạn. Bạn góp ý cho tôi với nhé.
Tks
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn xem file đính kèm nhé. Bao nhiêu sheet cũng được, như phải tuân thủ nguyên tắc các sheet phải giống nhau về format dòng cột nhập liệu.

Cảm ơn anh ca_dafi rất nhiều. mình đã giải quyết được vấn đề rồi, mừng quá.
Nhưng mà anh cho mình hỏi thêm một điều này nhe:
- Làm sao để dấu (hide) "#REF!" trong nhưng ô chưa có dữ liệu thông kê? Vì nếu để như vậy khi chưa có số liệu thì hơi rối mắt.
- Sao không thể Sum những dòng hoặc ô có chứa #REF!.

Cám ơn nhiều và hậu tạ...
 
Upvote 0
Cảm ơn anh ca_dafi rất nhiều. mình đã giải quyết được vấn đề rồi, mừng quá.
Nhưng mà anh cho mình hỏi thêm một điều này nhe:
- Làm sao để dấu (hide) "#REF!" trong nhưng ô chưa có dữ liệu thông kê? Vì nếu để như vậy khi chưa có số liệu thì hơi rối mắt.
- Sao không thể Sum những dòng hoặc ô có chứa #REF!.

Cám ơn nhiều và hậu tạ...

Vậy bạn cần lồng hàm kiểm tra lỗi vào:
cú pháp:
=If(ISERR([Công thức của bạn]),0,[Công thức của bạn])
 
Upvote 0
Web KT

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

Back
Top Bottom