thangteotdtt
Thành viên hoạt động



- Tham gia
- 12/12/13
- Bài viết
- 152
- Được thích
- 42
Vậy sao trong file chỉ có số 1 & 5 mà bên sơ đồ chị Thoa nằm chình ình tại vị trí số 1 ở cả 23 đội ???+ Gần đúng rồi bạn. Cảm phiền bạn xin giúp mình tiếp. Như trong Danh Sách là 23 người vậy cập nhật tên qua sơ đồ 23. VD có 4 người thi đấu thì cập nhật DS qua Sơ đồ 4. Có 5 hoặc 6,7....thì cập nhật tên qua bên sheet "SODO" đó. Tóm lại Trong danh sách đăng ký có mấy người thì cập tên qua sơ đồ đó, mà mình đã vẽ sẳn.
+.........
Cảm ơn bạn nhiều.
À do mình nhằm chổ VĐV Thoa nằm ở các sơ đồ, còn số 1 & 5 mình ví dụ thôi. Bạn thông cảm nhé. Câu hỏi của mình ở bài 3, cảm ơnVậy sao trong file chỉ có số 1 & 5 mà bên sơ đồ chị Thoa nằm chình ình tại vị trí số 1 ở cả 23 đội ???Híc
Thân
Bạn thử cái này xem, thực tình mình chưa nắm được cách bạn làm. Hình như mỗi lần nhập số vào cột F ở sheet "DKDS" thì xếp, sau đó tiếp tục.À do mình nhằm chổ VĐV Thoa nằm ở các sơ đồ, còn số 1 & 5 mình ví dụ thôi. Bạn thông cảm nhé. Câu hỏi của mình ở bài 3, cảm ơn
Thì mình đang nghi ngờ chỗ này, thí dụ khi chọn 8 VĐV thì bên shett "SODO" sẽ ghép vào bảng 8 đội, sau chọn 13 thì bên sheet "SODO" sẽ xóa trắng và ghép danh sách này vào bảng 13 đội ????Cảm ơn bạn nhiều lắm, làm phiền quá. Mình xin nói lại vậy.
Trong DSDK có 5 VĐV tham gia thi đấu thì chỉ cập nhật tên VĐV vào Sơ đồ 5 đội thôi.
Sơ đồ 4 đội khỏi cập nhật tên vào.
Vd như có 6 VĐV tham gia thì cập nhật tên VĐV vào sơ đồ 6 đội.
Có mấy VĐV tham thi đấu thì cập nhật tên vđv vào sơ đồ đó.
Có 8 vđv thì cập nhật tên vđv vào sơ đồ 8. Các sơ đồ khác tương tự. Cảm phiền bạn
Vâng đúng vậy bạn à, có mấy VĐV thì cho vào sơ đồ đó, có 10 vđv thì ghép vào sơ đồ 10, có 15 vđv thì ghép vào sơ đồ 15...Thì mình đang nghi ngờ chỗ này, thí dụ khi chọn 8 VĐV thì bên shett "SODO" sẽ ghép vào bảng 8 đội, sau chọn 13 thì bên sheet "SODO" sẽ xóa trắng và ghép danh sách này vào bảng 13 đội ????
Tức là lúc nào bên sheet "SODO" chỉ có một bảng được ghép ????
Thân
Cảm ơn bạn nhiều lắm, đúng rồi bạn à. Chúc bạn vui vẻ và hạnh phúc."Con gà đen", vậy bạn chơi thử cái này
Thân
Híc. Phải đưa vào sự kiện Worksheet_Activate() chứBạn ơi mình có sự thay đổi 1 chút thay gì code nằm trong module, thì mình thay vào đó nằm ở Worksheet_Change để cho tiện tự cập nhật dữ liệu. Vậy khi mình nhập số thăm không theo thứ tự thì báo lỗi , bạn xem giúp tiếp mình nhé.
Bạn ơi như mình cập nhật dữ liệu là ở cột B7 trong DSDK bây giờ mình cập nhật DSDK ở cột C7 thì sửa code làm sao vậy bạn, sao mình đổi B7 thành C7 không được, cảm ơn bạnDim DanhSach, Vung, I, SoNguoi, NhayCaTung, Wf, K Set Wf = Application.WorksheetFunction
Set Vung = Sheets("SODO").Range(Sheets("SODO").[B6], Sheets("SODO").[B10000].End(xlUp))
Set DanhSach = Sheets("DKDS").Range(Sheets("DKDS").[B7], Sheets("DKDS").[B7].End(xlDown)).Offset(, 4)
With Vung.Offset(1, -1)
.AutoFilter Field:=1, Criteria1:="<>"
.SpecialCells(12).Offset(, 1).ClearContents
.AutoFilter
End With
SoNguoi = Wf.Count(DanhSach)
If SoNguoi > 3 Then
NhayCaTung = Wf.Match(SoNguoi & " " & ChrW(272) & ChrW(7896) & "I", Vung, 0)
End If
For I = 1 To SoNguoi * 2
If Vung(NhayCaTung + I).Offset(, -1) > 0 Then
Vung(NhayCaTung + I) = DanhSach(Wf.Match(Vung(NhayCaTung + I).Offset(, -1), DanhSach, 0)).Offset(, -4): K = K + 1
End If
If K = SoNguoi Then Exit For
Next I
Sửa thành 'zì" nè, mấy chỗ màu đỏ í, hông thôi chép em này đè lên em cũBạn ơi như mình cập nhật dữ liệu là ở cột B7 trong DSDK bây giờ mình cập nhật DSDK ở cột C7 thì sửa code làm sao vậy bạn, sao mình đổi B7 thành C7 không được, cảm ơn bạn
Public Sub Xep()
Dim DanhSach, Vung, I, SoNguoi, NhayCaTung, Wf, K
Set Wf = Application.WorksheetFunction
Set Vung = Sheets("SODO").Range(Sheets("SODO").[B6], Sheets("SODO").[B10000].End(xlUp))
Set DanhSach = Sheets("DKDS").Range(Sheets("DKDS").[[COLOR=#ff0000][B]C7[/B][/COLOR]], Sheets("DKDS").[[COLOR=#ff0000][B]C7][/B][/COLOR].End(xlDown)).Offset(, [COLOR=#ff0000][B]3[/B][/COLOR])
With Vung.Offset(1, -1)
.AutoFilter Field:=1, Criteria1:="<>"
.SpecialCells(12).Offset(, 1).ClearContents
.AutoFilter
End With
SoNguoi = Wf.Count(DanhSach)
If SoNguoi > 3 Then
NhayCaTung = Wf.Match(SoNguoi & " " & ChrW(272) & ChrW(7896) & "I", Vung, 0)
End If
For I = 1 To SoNguoi * 2
If Vung(NhayCaTung + I).Offset(, -1) > 0 Then
Vung(NhayCaTung + I) = DanhSach(Wf.Match(Vung(NhayCaTung + I).Offset(, -1), DanhSach, 0)).Offset(, [COLOR=#ff0000][B]-3[/B][/COLOR]): K = K + 1
End If
If K = SoNguoi Then Exit For
Next I
End Sub
1) Bên sheet "DSDK" lên đến bi nhiêu người cũng được, miễn dữ liệu liên tụcBạn ơi cho mình hỏi thêm cái ý nữa nha. Như trong DSDK mình có 23 người bây giờ muốn phát triển thêm 24 đến 50 VĐV chẳng hạn và mình vẽ thêm sơ đồ 24 đến 50 VĐV vậy code trên có cập nhật tên VĐV vào sơ đồ 24 đến 50 được không bạn, hay mình có sửa code gì thêm không vậy bạn, cảm ơn bạn rất nhiều.
Public Sub Xep()
Dim DanhSach, Vung, I, SoNguoi, NhayCaTung, Wf, K
Set Wf = Application.WorksheetFunction
[I][COLOR=#ff0000][B]Set Vung = Sheets("SODO").Range(Sheets("SODO").[A6], Sheets("SODO").[A10000].End(xlUp)).Offset(, 1)[/B][/COLOR][/I]
Set DanhSach = Sheets("DKDS").Range(Sheets("DKDS").[C7], Sheets("DKDS").[C7].End(xlDown)).Offset(, 3)
........
Híc, bạn cho em Nguyễn Thị Kim Thoa số 13, rồi em Phan Thị Hoài Băng cũng số 13, hổng có em nào số 23 nên code nó cự nự, hổng thèm chạy nữaMình đã sửa theo code của bạn rồi nhưng chưa sao được bạn à, chỉ cập nhật DS từ số 1 đến 18 còn từ 19 đến 24 chưa cập nhật. Bạn xem giúp mình với nhé.
Mình đã sửa theo code của bạn rồi nhưng chưa sao được bạn à, chỉ cập nhật DS từ số 1 đến 18 còn từ 19 đến 24 chưa cập nhật. Bạn xem giúp mình với nhé.
For I = 1 To SoNguoi * 2
For I = 1 To SoNguoi * 6
Mình dựa vào code cũ có sửa lại chút ít có gì Chú Cò bổ sung thêm vì mình không hiểu cho lắmÀ bạn ơi. Bạn giúp dùm mình thêm cái nữa nhé. Về hình thức làm cũng giống vậy, có điều như trong file mình gữi lên thì lại chia ra thành 2 bảng đấu. Cập nhật dữ liệu bên sheet DSDK qua bên sheet SODO tại 2 cột A và K.
Như trong file hiện tại là 22 đội mình còn lập thêm nhiều đội nhiều hơn nữa có thể lên tói 50 đội. Mong bạn giúp dùm mình thêm lần nữa, cảm ơn bạn nhiều lắm.
Đúng rồi anh bạn ơi. Do sơ đồ mình chưa vẽ ra hết. Sơ đồ của mình có tới 50 vđv (đội) mà code chỉ cập nhật dữ liệu tới 22 vđv, mong bạn mở rộng phát triển thêm vùng cập nhật danh sách vđv thêm giúp mình với nhé. Cảm ơn bạn rất rất nhiều.Mình dựa vào code cũ có sửa lại chút ít có gì Chú Cò bổ sung thêm vì mình không hiểu cho lắm
Hãy vẽ sơ đồ đủ 50 đội điCác anh ơi giúp thêm dùm mình thêm lần nữa đi với, em cảm ơn rất nhều
Hãy vẽ sơ đồ đủ 50 đội đi
Viết không khó, nhưng phải nhìn vào cách bố trí dữ liệu của bạn mới viết chính xác được
Còn yêu cầu gì thì ghi rõ, làm một lần luôn, khỏi lắt nhắt sửa hoài
Thân
Chia 2 bảng thì chơi em "đít- to" là ok rồi, vùng dữ liệu ở sheet "SODO" chỉ khai báo 1 vùng thôi cho đỡ rối, vòng lặp cứ cho chạy "mát-xi-cà- mum", đếch sợ, vì khi biến K đếm đủ số người nó sẽ thoát ( 2 bảng luôn có chung hàng cuối )Hỏi xong bác Cò ra tay lúc 1 thể, em đề nghị xử lý bằng Dic luôn đi Bác Cò
Xem file nhen lúc test quen đổi biến lại
Trong sheet SODO bạn nhớ làm dư 1 sơ đồ ví dụ 24 đội thì làm thêm 1 sơ đồ 25 đội lúc đó bỏ trống cũng được
Cái này Cò hổng hiểu chú Hùng đẹp trai bắt làm dư ra 1 bảng để làm gì. HícTrong sheet SODO bạn nhớ làm dư 1 sơ đồ ví dụ 24 đội thì làm thêm 1 sơ đồ 25 đội lúc đó bỏ trống cũng được
Chia 2 bảng thì chơi em "đít- to" là ok rồi, vùng dữ liệu ở sheet "SODO" chỉ khai báo 1 vùng thôi cho đỡ rối, vòng lặp cứ cho chạy "mát-xi-cà- mum", đếch sợ, vì khi biến K đếm đủ số người nó sẽ thoát ( 2 bảng luôn có chung hàng cuối )
Nếu cẩn thận mình phải rào 2 vấn đề:
1) Không có trùng số bốc thăm
2) Phải đủ các số liên tục từ 1 ==> số VĐV ( hông thôi cóc có lấy được Item của Dic )
Nhưng muốn chắc cú thì cứ thấy file đủ dữ liệu ở sheet "SODO" thì viết cũng chưa muộn
Thân
Tại muốn xác định vòng lặp đủ vùng của một đổi nên trong đó có nhaycatung1 với vung1 thêm đó Bác Cò he...he... thật ngại quá cướp code của Bác Cò nên làm đạiCái này Cò hổng hiểu chú Hùng đẹp trai bắt làm dư ra 1 bảng để làm gì. Híc
Đại khái là thế nàyTrước hết cảm ơn 2 bác rất nhiều nha. Đúng như bác cò dự tính trước, là do việc bố trí dữ liệu đã bị thay đổi rồi thay vì:
Từ 10 đến 32 đội bên sheet "SODO" các số thứ tự ở cột A và Cột K.
Còn Từ 33 đội đến 50 đội thì các số thứ tự ở cột A và cột M.
Mình cố gắng vẽ được tới 36 đội rồi, mình gữi lên đây trước để 2 bác có hướng đi giúp dùm mình, ngày mai mình vẽ cho đủ 50 đội, nhưng chắc rằng Từ 33 đến 50 đội số thứ tự sẽ nằm tại cột A và M. Cảm ơn 2 bác nhiều lắm.
Khi bốc thăm các số không theo liên tục được, các số được trộn ngẩu nhiên bác à.Đại khái là thế này
Bạn kiểm tra giúp, nhìn chóng mặt quá
Nếu bạn nhập số bốc thăm trùng hoặc không đủ số liên tục từ 1 đến số người, code sẽ báo lỗi
Bạn vẽ vào đủ sơ đồ, nhập thử danh sách xem có gì trục trặc hông nhé
Thân
Hihi, mình viết chưa được rõ, ý "liên tục" ở đây là các lá số thăm, thí dụ 10 đội thì các số thăm phải từ 1==> 10, 45 đội thì từ 1==> 45......Khi bốc thăm các số không theo liên tục được, các số được trộn ngẩu nhiên bác à.
Chuẩn quá rồi bác ơi. Rất rất cảm ơn bác nhiều. Thật là ái ngại quá, không biết trả ơn bác như thế nào nữa. Một lần nữa cảm ơn bác nhiều lắm. Chúc bác vui vẻ và hạnh phúc.Hihi, mình viết chưa được rõ, ý "liên tục" ở đây là các lá số thăm, thí dụ 10 đội thì các số thăm phải từ 1==> 10, 45 đội thì từ 1==> 45......
Bạn cứ yên tâm nhập số trộn ngẫu nhiên, miễn là phải đủ số lượng các số, thí dụ 10 đội thì các thăm phải có số từ 1==> 10 ( hổng được 1,3,4,5,8,9,15,7,6,10 ==> thiếu số 2 mà lòi ra ộng 15)
Thân
Híc, bạn cho em Nguyễn Thị Kim Thoa số 13, rồi em Phan Thị Hoài Băng cũng số 13, hổng có em nào số 23 nên code nó cự nự, hổng thèm chạy nữa
Thân
Trân trọng cảm ơn chú cò nhiều.Public Sub Xep() Dim DanhSach, Vung, I, SoNguoi, NhayCaTung, Wf, K
Set Wf = Application.WorksheetFunction
Set Vung = Sheets("SODO").Range(Sheets("SODO").[A6], Sheets("SODO").[A10000].End(xlUp)).Offset(, 1)
Set DanhSach = Sheets("DKDS").Range(Sheets("DKDS").[C7], Sheets("DKDS").[C7].End(xlDown)).Offset(, 3)
With Vung.Offset(1, -1)
.AutoFilter Field:=1, Criteria1:="<>"
.SpecialCells(12).Offset(, 1).ClearContents
.AutoFilter
End With
SoNguoi = Wf.Count(DanhSach)
If SoNguoi > 3 Then
NhayCaTung = Wf.Match(SoNguoi & " " & ChrW(272) & ChrW(7896) & "I", Vung, 0)
End If
For I = 1 To SoNguoi * 6
If Vung(NhayCaTung + I).Offset(, -1) > 0 Then
Vung(NhayCaTung + I) = DanhSach(Wf.Match(Vung(NhayCaTung + I).Offset(, -1), DanhSach, 0)).Offset(, -3): K = K + 1
End If
If K = SoNguoi Then Exit For
Next I
Application.ScreenUpdating = True
End Sub
Sửa chỗ Sơ đồ 10 hoặc sơ đồ 11 thành 10 Đội hoặc 11 ĐộiChú cò ơi! Code bấy lâu nay thấy ổn nhưng đã áp dụng sắp lịch thi đấu 10 đội hoặc 11, 12 đội thì nó báo lỗi bác xem kiểm tra giúp dùm mình cái nha bác cò
Báo lỗi dòng màu đỏ này nè bác cò:
Trân trọng cảm ơn chú cò nhiều.
Bác nào giải thích dùm C7 thì tôi thấy là 3 và -3, vậy muốn ở cột J7 thì là số mấy.. sao mình thử hoài không được, cảm ơn các bác.Sửa thành 'zì" nè, mấy chỗ màu đỏ í, hông thôi chép em này đè lên em cũ
ThânMã:Public Sub Xep() Dim DanhSach, Vung, I, SoNguoi, NhayCaTung, Wf, K Set Wf = Application.WorksheetFunction Set Vung = Sheets("SODO").Range(Sheets("SODO").[B6], Sheets("SODO").[B10000].End(xlUp)) Set DanhSach = Sheets("DKDS").Range(Sheets("DKDS").[[COLOR=#ff0000][B]C7[/B][/COLOR]], Sheets("DKDS").[[COLOR=#ff0000][B]C7][/B][/COLOR].End(xlDown)).Offset(, [COLOR=#ff0000][B]3[/B][/COLOR]) With Vung.Offset(1, -1) .AutoFilter Field:=1, Criteria1:="<>" .SpecialCells(12).Offset(, 1).ClearContents .AutoFilter End With SoNguoi = Wf.Count(DanhSach) If SoNguoi > 3 Then NhayCaTung = Wf.Match(SoNguoi & " " & ChrW(272) & ChrW(7896) & "I", Vung, 0) End If For I = 1 To SoNguoi * 2 If Vung(NhayCaTung + I).Offset(, -1) > 0 Then Vung(NhayCaTung + I) = DanhSach(Wf.Match(Vung(NhayCaTung + I).Offset(, -1), DanhSach, 0)).Offset(, [COLOR=#ff0000][B]-3[/B][/COLOR]): K = K + 1 End If If K = SoNguoi Then Exit For Next I End Sub