Chọn dữ liệu trên Forms (1 người xem)

Liên hệ QC

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

doi_trai_co_don

Thành viên chính thức
Tham gia
27/1/07
Bài viết
52
Được thích
5
Thân gửi các bạn.
Thực ra tôi không biết đặt tiêu đề cho topic này là sao cho chính xác.
Mong các bạn giúp tôi, mọi giải thích tôi để trong File. Tôi dùng Office 2003
Cảm ơn nhiều
 

File đính kèm

Thân gửi các bạn.
Thực ra tôi không biết đặt tiêu đề cho topic này là sao cho chính xác.
Mong các bạn giúp tôi, mọi giải thích tôi để trong File. Tôi dùng Office 2003
Cảm ơn nhiều
Xem mô tả trong file thì thấy có vẻ chưa hợp lý. Chẳng lẽ lúc nào cũng lấy dòng 2 của BẢNG NHẬP LIỆU? Có trường hợp nào lấy kết quả ở dòng 3, dòng 4.. hay không?
 
Upvote 0
Cảm ơn bạn, tôi quên mất tất nhiên phải cộng cả cột dữ liệu đó. Nhưng như tôi lấy ví dụ là của dòng 1 chứ không phải dòng 2 như bạn hiểu. Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn, tôi quên mất tất nhiên phải cộng cả cột dữ liệu đó. Nhưng như tôi lấy ví dụ là của dòng 1 chứ không phải dòng 2 như bạn hiểu. Thanks
Vậy tốt nhất bạn cho ví dụ tổng quát chút:
- Bảng nhập liệu chỉ có 2 dòng hay nhiều dòng?
- Trong trường hợp nào thì sẽ lấy dữ liệu ở dòng 3, dòng 4?
 
Upvote 0
Mình đã ghi chú trong File là tối đa có 10 dòng dữ liệu.
Nếu Form nào được tích thì lấy toàn bộ cột tương ứng trong bảng dữ liệu (cộng tất cả lại với nhau)
Chỉ có điều: dữ liệu ở các cột A1,A2,A3 và B1,B2,B3 cách nhau bằng dấu phẩy
Thanks
 
Upvote 0
Bạn tham khảo file xem sao?
Đâu phải vậy đâu anh
Anh xem tác giả viết thế này:

untitled.JPG


Chổ màu đỏ ấy!
Theo như ví dụ thì hình như lúc nào cũng lấy dòng 2 trong bảng nhập liệu. Vậy thì bảng này có 10 để làm giống gì? (có bao giờ lấy dòng 3 trở đi đâu)
 
Upvote 0
Hình như file này mới phải (Cái cộng trừ thì bạn điều chỉbnh nha vì mình bận mất rồi)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Làm xong thấy bạn gửi riêng Ndu nên định thôi. Tiếc công nên cứ gửi bạn tham khảo, thông cảm chen ngang vào những bài riêng nha.
Nếu lỗi bạn thên dòng On error Resume Next vào đầu giùm (Mình chưa chặn lỗi do không chọn các ô A, file mới mình đã fix lỗi rồi)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
To
ndu96081631
Mình gửi lại File có giải thích thêm nhờ bạn giúp đỡ
Thanhk
Thêm 1 hàm dùng để nối giá trị từ các cell
PHP:
Function JoinRng(Sep As String, ParamArray SrcArray()) As String
  Dim SubArray, Item, Arr(), i As Long
  On Error Resume Next
  For Each SubArray In SrcArray
    For Each Item In SubArray
      If Item <> vbNullString Then
        ReDim Preserve Arr(i)
        Arr(i) = Item
        i = i + 1
      End If
    Next
  Next
  JoinRng = Join(Arr, Sep)
End Function
Ta có Sub chính:
PHP:
Sub Main()
  Dim Chk As CheckBox, SrcRng As Range, TmpRng As Range, Sh As Worksheet
  Dim GrpA(), GrpB(), JoinA As String, JoinB As String
  Dim iA As Long, iB As Long
  On Error Resume Next
  Set Sh = Sheets("Sheet1")
  Set SrcRng = Sh.Range("F3:K13")
  Sh.Range("D5").Value = "A, B"
  For Each Chk In Sh.CheckBoxes
    If Chk.Value = 1 Then
      Set TmpRng = SrcRng.Resize(1).Find(Chk.Caption, , xlValues, xlWhole)
      If Not TmpRng Is Nothing Then
        Select Case Left(Chk.Caption, 1)
          Case "A"
            ReDim Preserve GrpA(iA)
            GrpA(iA) = Intersect(SrcRng, SrcRng.Offset(1), TmpRng.EntireColumn).Address
            iA = iA + 1
          Case "B"
            ReDim Preserve GrpB(iB)
            GrpB(iB) = Intersect(SrcRng, SrcRng.Offset(1), TmpRng.EntireColumn).Address
            iB = iB + 1
        End Select
      End If
    End If
  Next
  If iA Then JoinA = JoinRng("+", Range(Join(GrpA, ",")))
  If iB Then JoinB = JoinRng("+", Range(Join(GrpB, ",")))
  If iA Or iB Then Sh.Range("D5").Value = Replace(Trim(JoinA & " " & JoinB), " ", ", ")
End Sub
Và Sub Reset các Checkboxes
PHP:
Sub ResetChk()
  Dim Chk As CheckBox
  On Error Resume Next
  For Each Chk In Sheets("Sheet1").CheckBoxes
    Chk.Value = 0
  Next
  Sheets("Sheet1").Range("D5").Value = "A, B"
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Nếu tích chọn A1 thì kết quả là: a+b+c,
Nếu tích chọn A1, A2 thì kết quả là: a+b+c+d+e+f,
Nếu tích chọn B1,B2 thì kết quả là: ,k+l+m+n+o+p
-Hình như file của thầy Ndu còn thiếu một chút so với yêu cầu.
-Mình có cách làm đơn giản hơn. Cũng xin góp mặt cho vui.
Mã:
Option Explicit
Sub JoinValue()
Dim i As Byte, j As Byte, Kq As String, kq1 As String, kq2 As String
Dim Gt()
Gt = Range("F4:K6").Value
For i = 1 To 6
For j = 1 To 3
 If Sheet2.Shapes("Check Box " & i).ControlFormat.Value = 1 Then
    If i < 4 Then
         kq1 = kq1 & Gt(j, i) & "+"
     Else
         kq2 = kq2 & Gt(j, i) & "+"
     End If
 End If
Next
Next
If Len(kq1) > 0 Then kq1 = Left(kq1, Len(kq1) - 1)
If Len(kq2) > 0 Then kq2 = Left(kq2, Len(kq2) - 1)
Kq = kq1 & "," & kq2
If Len(Kq) = 1 Then
Kq = "A,B"
End If
[D5] = Kq
End Sub
 

File đính kèm

Upvote 0
To sealand
Bạn ơi, mình sory tí ti. Nhưng vì bạn NDU không hiểu ý mình, mà như từ đầu mình đã nói là mình không biết giải thích thế nào về công việc mình cần. Khổ thân tôi thế!!!!!! Mình xem File cua bạn rồi về chỉnh sửa tý ti cũng tạm ổn.
File bạn mới Post tôi sẽ xem. Vì bây giờ tôi bận quá chưa xem ngay được. Khổ thân tôi thế!!!!!!!
Bạn thông cảm cho tôi nha
Mình không có ý gì là gửi riêng đâu
Thanhks các bạn rất nhìuuuuuuuu
Thật lòng đấy
 
Upvote 0
To sealand
Bạn đừng trách tôi gửi riêng. Khổ thân tôi thế!!!!!!!!
Vì tôi bạn NDU chưa hiểu ý tôi nên tôi nhắc lại thôi.
File bạn gửi tôi lúc đầu, tôi sửa lại cũng tậm ổn.
Còn File bạn gửi trách tôi thì quá ổn. Khổ thân tôi thế!!!!!!!!
Thanks các bạn nhiuuuuuuuuuuuu
 
Upvote 0
Web KT

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

Back
Top Bottom