Các câu hỏi về Form trong Excel VBA (2 người xem)

Liên hệ QC

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

Tường_Vi

Thành viên tiêu biểu
Tham gia
19/4/10
Bài viết
482
Được thích
121
Nghề nghiệp
Luôn tìm kiếm một vị trí tốt hơn
Private Sub UserForm_Initialize()
.......................
.......................
.......................
End Sub


Em xin hỏi, sự kiện khí nào mình dùng sự kiện này Initialize

Cám ơn
 
Khi nào mình dùng Unload me và khi nào dùng .hide???

Em xin hỏi
Khi nào mình dùng Unload me và khi nào dùng .hide???

ví dụ: trong UserForm1
1. Unload me
2. Userform1.hide

Xin cám ơn
 
Upvote 0
Upvote 0
Private Sub UserForm_Initialize()
.......................
.......................
.......................
End Sub


Em xin hỏi, sự kiện khí nào mình dùng sự kiện này Initialize

Cám ơn
Nói nôm na là "chuẩn bị kích hoạt UserForm", bạn muốn những cái quái gì xảy ra trước khi UserForm được nạp hay hiện ra thì viết code vào khúc giữa đó
Thân
 
Upvote 0
Tường Vi đừng mở topic lung tung như thế.
Hôm nọ mở 3 topic về mảng, hôm nay lại mở 2 topic về Form.
 
Upvote 0
Form nhập liệu

mấy hôm trước mình đã tự mày mò và đã làm được một file excel nhập dữ liệu từ form nhưng mình có một vài lỗi
- lúc tạo file từ một pc của mình thì các maco chạy bình thường nhưng không hiểu sao đưa file đó sang một pc khác thì không chạy được nữa mà nó giống một file bình thường
- mình nhập dữ liệu ở sheet 1 thì dữ liệu vẫn được lưu ở sheet 2 nhưng cột số thứ tự không tự nhảy, thông tin của họ và tên lại nằm ở cột stt
- với maco mình tạo như vậy giờ mình muốn nâng nó lên một tí là chạy nhập dữ liệu từ form mà mình đang tạo dỡ thì nó có được không
đó là những vấn đê mình thắc mắc , rất mong nhân được sự giúp đỡ của cac ban
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
mấy hôm trước mình đã tự mày mò và đã làm được một file excel nhập dữ liệu từ form nhưng mình có một vài lỗi
- lúc tạo file từ một pc của mình thì các maco chạy bình thường nhưng không hiểu sao đưa file đó sang một pc khác thì không chạy được nữa mà nó giống một file bình thường
- mình nhập dữ liệu ở sheet 1 thì dữ liệu vẫn được lưu ở sheet 2 nhưng cột số thứ tự không tự nhảy, thông tin của họ và tên lại nằm ở cột stt
- với maco mình tạo như vậy giờ mình muốn nâng nó lên một tí là chạy nhập dữ liệu từ form mà mình đang tạo dỡ thì nó có được không
đó là những vấn đê mình thắc mắc , rất mong nhân được sự giúp đỡ của cac ban

Giúp bạn leanhtuan.act
Form nhập liệu của bạn đã hoàn tất.
https://www.box.com/s/8ef01dea956af8db429f
 
Upvote 0
cảm ơn bạn be09 đã làm giúp minh form nhập liệu
giờ mình muốn giới hạn cho form nhập liệu đó theo y của mình thì có được không
ý mình là:
Ô Họ và tên khi mình gõ "họ và tên" nó sẽ tự ra "Họ Và Tên"
Ô Mã thẻ khi gõ chỉ được giới hạn có 2 chử cái đầu và 13 con số phía sau như thế này: "CC1234567891234"
Ô tổng chi phí sẽ cho kết quả khi mình nhập dầy đủ các ô về tiền:tổng chi phí=tiền thuốc+VTYT+CĐHA+XN+TTPT+Công khám
rất mong nhận được sự giúp đỡ của các bạn
 
Upvote 0
Lúc đầu mình nhập form thấy nó đẹp lắm nhưng thấy Form khá bất tiện, nhiều khi bị sai
Giờ mình nhập liệu ngay trên cel (vì form cũng phải qua cel) và protect những cel khác
- Dựa vào sự kiện worksheet change để protect & unprotect worksheet đó. Và thấy khá hiệu quả, mặc dù không đẹp và chuyển nghiệp như nhập liệu từ Form
 
Upvote 0
hoàn thiện bảng nhập

mình đã tự mày mò và đã làm được một bảng nhập liệu như file đính kèm
mình có một vài thắc mắc mà chưa làm đươc nên giờ đưa lên đây rất mong nhận được sự giúp đỡ của các bạn
mình muốn nhập họ và tên = Họ Và Tên
giới hạn ô nhập mã thẻ chỉ được phép nhập 2 chữ cái đầu và 13 con số sau như sau CN7456892435875
cột tổng cộng sẻ cho ra kết quả sau khi nhập đầy đủ thông tin
rất mong nhận được sự giúp đỡ của các bạn
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
mình đã tự mày mò và đã làm được một bảng nhập liệu như file đính kèm
mình có một vài thắc mắc mà chưa làm đươc nên giờ đưa lên đây rất mong nhận được sự giúp đỡ của các bạn
mình muốn nhập họ và tên = Họ Và Tên
giới hạn ô nhập mã thẻ chỉ được phép nhập 2 chữ cái đầu và 13 con số sau như sau CN7456892435875
cột tổng cộng sẻ cho ra kết quả sau khi nhập đầy đủ thông tin
rất mong nhận được sự giúp đỡ của các bạn
Có vài điều bạn cần nói rõ thêm:

  1. nhập họ và tên = Họ Và Tên?
  2. 2 chữ cái đầu và 13 con số sau như sau CN7456892435875

- 2 chữ đầu cố định là CN?
 
Upvote 0
lúc mình nhập họ và tên là chỉ nhập chữ thường đến khi lưu thì cho ra chữ hoa , ví dụ (lê anh tuấn => Lê Anh Tuấn)
2 chữ cái đầu không cố định và 13 con số sau cũng không cố định. mình muốn làm cho ô nhập mã thẻ đó bị giới hạn nếu nhập không đủ 2 chữ cái đâu và 13 con số sau thì máy sẽ báo lỗi
ô tổng chi phí sẽ cho ra kết quả ngay sau khi mình nhập đầy đủ thông tin của các chi phi như: tiền thuốc+CDHA+VTYT+XN+TTPT+công khám
rất mong nhận được sự giúp đỡ và sự hồi âm sớm của bạn
 
Upvote 0
lúc mình nhập họ và tên là chỉ nhập chữ thường đến khi lưu thì cho ra chữ hoa , ví dụ (lê anh tuấn => Lê Anh Tuấn)
2 chữ cái đầu không cố định và 13 con số sau cũng không cố định. mình muốn làm cho ô nhập mã thẻ đó bị giới hạn nếu nhập không đủ 2 chữ cái đâu và 13 con số sau thì máy sẽ báo lỗi
ô tổng chi phí sẽ cho ra kết quả ngay sau khi mình nhập đầy đủ thông tin của các chi phi như: tiền thuốc+CDHA+VTYT+XN+TTPT+công khám
rất mong nhận được sự giúp đỡ và sự hồi âm sớm của bạn
Bạn xem lại file đính kèm nhé.
 

File đính kèm

Upvote 0
cần gỡ rối

phần nhập như bạn hai lúa sữa cho mình bây giờ là quá ổn
giờ minh muồn lúc mình nhập dữ liệu từ sheet DSHS xong thì sẽ tự cập nhật sang các sheet khác như trong file mình gữi đính kèm là số liệu sẽ sang sheet1,sheet2 theo đúng yêu cầu của mình.tức là nó sẽ tự phân ra theo mã DT,(cái mà mình tô màu đỏ sẽ sang một sheet và màu xanh sẽ sang một sheet)
rât mong nhận được sự giúp đỡ của các bạn
 

File đính kèm

Upvote 0
phần nhập như bạn hai lúa sữa cho mình bây giờ là quá ổn
giờ minh muồn lúc mình nhập dữ liệu từ sheet DSHS xong thì sẽ tự cập nhật sang các sheet khác như trong file mình gữi đính kèm là số liệu sẽ sang sheet1,sheet2 theo đúng yêu cầu của mình.tức là nó sẽ tự phân ra theo mã DT,(cái mà mình tô màu đỏ sẽ sang một sheet và màu xanh sẽ sang một sheet)
rât mong nhận được sự giúp đỡ của các bạn
Bạn xem file coi đúng ý chưa nhé.
 

File đính kèm

Upvote 0
tạo dòng tổng cộng

chào các bạn trong diễn đàn
bảng nhập dữ liệu của minh hoạt động rất tốt
nhưng mình thấy có một vấn đề đang băn khoăn chưa biết cách khắc phục
giờ mình muốn mỗi lần dữ liệu được copy sang sheet chi tiết thì dòng tổng cộng không bị mất đi mà nó tự cộng dữ liệu cho mình giống trong file excel mình có gữi đính kèm
 

File đính kèm

Upvote 0
Mình có cách này gợi í cho bạn nè:

(1) Đem dòng tổng cộng (hiện đang ở dòng 10) xuống tuốt luốt dòng 2 hay 3 ngàn gì đó;

Khi ấy, sau khi Copy dữ liệu, bạn chỉ việc cho ẩn đi các dòng trống trên dòng 'Tổng cộng' này là được mà.

(*) Lưu í nhỏ là cho hiện lại các dòng ẩn trước khi copy.

Thực hiện việc này sẽ có lợi trong việc in danh sách trích lọc theo mã thẻ.
 
Upvote 0
chào các bạn trong diễn đàn
bảng nhập dữ liệu của minh hoạt động rất tốt
nhưng mình thấy có một vấn đề đang băn khoăn chưa biết cách khắc phục
giờ mình muốn mỗi lần dữ liệu được copy sang sheet chi tiết thì dòng tổng cộng không bị mất đi mà nó tự cộng dữ liệu cho mình giống trong file excel mình có gữi đính kèm

Đem dòng tổng lên trên là bảo đảm không mất trừ khi bị xoá
 
Upvote 0

File đính kèm

Upvote 0
cảm ơn bài làm của bạn ba tê và ý kiến đóng góp của các bạn trong diễn đàn
nhưng ý mình là khi dữ liệu được cập nhật từ sheet1 sang sheet2 thì dòng tổng cộng tự nhảy xuống các dòng tiếp theo mà không bị mất đi và dưới dòng tổng cộng mình có thể chèm thêm thông tin cho người lập và trưởng phòng ký tên vào đó.mình cũng đã thử làm cho dòng tổng cộng cách đó 2 đến 3 nghìn dòng nhưng như vậy mỗi lần xem kết quả và in thì bất tiện quá. rất mong nhận được sự giúp đỡ của các bạn
 
Upvote 0
Về dòng tổng:
Sau khi tổng hợp, chắc chắn sẽ xác định được dòng cuối. Tại dòng cuối + 1 gán 1 công thức FormulaR1C1 chắc không có gì khó.

Về chỗ ký tên:
Tạo sẵn 1 lô những tên họ chức vụ ở đâu đó, dùng code copy paste vào dòng cuối + 2 hoặc dòng cuối + 3. Cũng nhanh thôi.

Tóm lại: Xác định dòng cuối sau khi tổng hợp.
 
Upvote 0
cảm ơn bài làm của bạn ba tê và ý kiến đóng góp của các bạn trong diễn đàn
nhưng ý mình là khi dữ liệu được cập nhật từ sheet1 sang sheet2 thì dòng tổng cộng tự nhảy xuống các dòng tiếp theo mà không bị mất đi và dưới dòng tổng cộng mình có thể chèm thêm thông tin cho người lập và trưởng phòng ký tên vào đó.mình cũng đã thử làm cho dòng tổng cộng cách đó 2 đến 3 nghìn dòng nhưng như vậy mỗi lần xem kết quả và in thì bất tiện quá. rất mong nhận được sự giúp đỡ của các bạn
Yêu cầu và ví dụ không cụ thể nên kết quả không như ý, tự bạn rút kinh nghiệm đi.
leanhtuan.act: Lúc đầu bạn có nói các dòng nguời lập, trưởng phòng ... và cái quái gì đó ở dưới không?
Híc! Chán.
 
Lần chỉnh sửa cuối:
Upvote 0
Hoàn thiện bảng nhập

Rất cần sự giúp đỡ của các bạn
Mình sẽ nói qua cách hoạt dộng của bảng tín: khi bấm nút nhập dữ liệu ta sẽ nhập dữ liệu trong bảng nhập, bằng cách bám nút tạo mới ta bắt đầu nhập, nhập xong bấm nút lưu thêm thì dữ liệu sẽ tự lưu vào các sheet TE, HN, … nó sẽ tự lưu theo 2 giá trị chữ cái đầu của mã thẻ.
Bảng tín của mình đến khúc đó rồi nhưng mình còn một số cái muốn làm thêm cho bảng tín hoàn thiện hơn nên mình viết bài này để mong các bạn giúp.
Ý của mình muốn thêm cho bảng nhập là sau khi nhập với số lượng lớn cho các sheet chi tiết thì cuối mỗi sheet đều có dòng tổng cộng và dòng ghi chú như: người lập, giám đốc… giống như trong sheet CK mình làm ví dụ
Và cho mình hỏi thêm là không biết vì sao trong cột Công khám khi mình kéo Sum thì nó không cho giá trị tổng như các cột khác, nhờ các bạn sửa cho mình với.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
tôi có một file excel gồm 1000 dòng , 5 cột , tôi muốn chia thành 4 file nhỏ .
xin các bạn chỉ cho cách
thank.
 
Upvote 0
Rất cần sự giúp đỡ của các bạn
Mình sẽ nói qua cách hoạt dộng của bảng tín: khi bấm nút nhập dữ liệu ta sẽ nhập dữ liệu trong bảng nhập, bằng cách bám nút tạo mới ta bắt đầu nhập, nhập xong bấm nút lưu thêm thì dữ liệu sẽ tự lưu vào các sheet TE, HN, … nó sẽ tự lưu theo 2 giá trị chữ cái đầu của mã thẻ.
Bảng tín của mình đến khúc đó rồi nhưng mình còn một số cái muốn làm thêm cho bảng tín hoàn thiện hơn nên mình viết bài này để mong các bạn giúp.
1./ Ý của mình muốn thêm cho bảng nhập là sau khi nhập với số lượng lớn cho các sheet chi tiết thì cuối mỗi sheet đều có dòng tổng cộng và dòng ghi chú như: người lập, giám đốc… giống như trong sheet CK mình làm ví dụ
2./ Và cho mình hỏi thêm là không biết vì sao trong cột Công khám khi mình kéo Sum thì nó không cho giá trị tổng như các cột khác, nhờ các bạn sửa cho mình với.
1./ Không cần tạo nhiều sheet, ta chỉ cần tạo 1 sheet để chứa dữ liệu đã trích lọc là được.

Mã:
Private Sub CommandButton6_Click()
Dim strName As String
Dim endR As Integer
    strName = InputBox(Prompt:="Vui long go ma so can trich loc.", _
          Title:="Go ma so trich loc", Default:="CK")
        If strName = vbNullString Then
           Exit Sub
        Else
            Sheets("TrichLoc").Range("A4:L65000").ClearContents
            HS.AutoFilterMode = False
            With HS.Range("A4").CurrentRegion
                .AutoFilter Field:=4, Criteria1:=strName & "*"
                .Copy Sheets("TrichLoc").Range("A4")
            End With
            
            With Sheets("TrichLoc")
                endR = .Range("d65000").End(xlUp).Row + 1
                .Range("A1") = "B" & ChrW(7842) & "NG T" & _
                     ChrW(7892) & "NG H" & ChrW(7906) & "P CP KCB BHYT " & strName
                .Range("B" & endR) = "T" & ChrW(7893) & "ng C" & ChrW(7897) & "ng:"
                For i = 6 To 12
                    .Cells(endR, i).FormulaR1C1 = "=SUM(R[-" & endR - 4 & "]C:R[-1]C)"
                Next
                .Range("J" & endR + 2) = "Ngày     tháng      n" & ChrW(259) & "m"
                .Range("J" & endR + 5) = "Giám " & ChrW(272) & ChrW(7889) & "c"
                .Range("F" & endR + 5) = "Kê Toán Tr" & ChrW(432) & ChrW(7903) & "ng"
                .Range("B" & endR + 5) = "Ng" & ChrW(432) & ChrW(7901) & "i L" & ChrW(7853) & "p"
                .Select
            End With
            
            HS.ShowAllData
        End If
        
End Sub

2./ Do cột đó bạn nhập dữ liệu vào là dạng text nên không cộng được. Cách khắc phục là chuyển về dạng số, code cũng thêm như sau:

Mã:
Private Sub CommandButtonOK_Click()
'..........
With HS
.Cells(i, 2) = UCase(Me.TextName)
.Cells(i, 3) = Me.TextMSHS
.Cells(i, 4) = UCase(Me.txtText & Me.TextNamsinh)
.Cells(i, 5) = CDate(Me.TextSDT.Value)
.Cells(i, 6) = Me.TextDC.Value
.Cells(i, 7) = Me.TextTENCHA.Value
.Cells(i, 8) = Me.TextNGHECHA.Value
.Cells(i, 9) = Me.TextTENME.Value
.Cells(i, 10) = Me.TextNGHEME.Value
.Cells(i, 11) = Me.TextNoisinh[B][COLOR=#ff0000].Value[/COLOR][/B] [COLOR=#008000][B]'CHINH CHO NAY[/B][/COLOR]
.Cells(i, 12) = Me.TextBox1.Value
End With

If Me.dg > Me.Navi1.Max Then Me.Navi1.Max = Me.dg
setsott
xem
'ChuyenDL
End Sub
 

File đính kèm

Upvote 0
Mình xin mọi người chỉ giúp vấn đề sau:
Trong Form của mình có ComboBox1.
Khi mình khởi động Form lên mình muốn gán 1 giá trị mặc định cho ComboBox1. (Mình dùng ComboBox1.Value = "GiaTriGan")
Rồi khi sự kiện change Combobox1 xảy ra mình sẽ thực hiện 1 thủ tục.
Như vậy khi mình gán giá trị mặc định, nó đã xảy ra sự kiện change Combobox1 và chạy luôn thủ tục.
Mình muốn làm sao để gán giá trị mặc định mà thủ tục đi kèm sự kiện change ComboBox1 không thực thi.

Xin cảm ơn. Không biết mình diễn đạt có kém quá không?
 
Upvote 0
Mình xin mọi người chỉ giúp vấn đề sau:
Trong Form của mình có ComboBox1.
Khi mình khởi động Form lên mình muốn gán 1 giá trị mặc định cho ComboBox1. (Mình dùng ComboBox1.Value = "GiaTriGan")
Rồi khi sự kiện change Combobox1 xảy ra mình sẽ thực hiện 1 thủ tục.
Như vậy khi mình gán giá trị mặc định, nó đã xảy ra sự kiện change Combobox1 và chạy luôn thủ tục.
Mình muốn làm sao để gán giá trị mặc định mà thủ tục đi kèm sự kiện change ComboBox1 không thực thi.

Xin cảm ơn. Không biết mình diễn đạt có kém quá không?
Bạn thử làm thế này xem:
Private Sub UserForm_Initialize()
'DUA DU LIEU VAO FORM
ComboBox1.AddItem "B"
ComboBox1.AddItem "C"
ComboBox1.AddItem "D"
End Sub
 
Upvote 0
Bạn thử làm thế này xem:
Private Sub UserForm_Initialize()
'DUA DU LIEU VAO FORM
ComboBox1.AddItem "B"
ComboBox1.AddItem "C"
ComboBox1.AddItem "D"
End Sub

Cảm ơn bạn đã trả lời giúp.
Nhưng có lẻ do mình diễn đạt tệ quá nên bạn chưa hiểu vấn đề của mình.
Private Sub UserForm_Initialize()
'DUA DU LIEU VAO FORM
ComboBox1.AddItem "B"
ComboBox1.AddItem "C"
ComboBox1.AddItem "D"
' Gán giá trị mặc định là "B"
ComboBox1.Value = "B"

End Sub[/QUOTE]

Private Sub ComboBox1_Change()
Dim Value_Se
Value_Se = ComboBox1.Value
msgbox "Ban quyet dinh chuyen thanh : " &Value_Se
End Sub

Vấn đề là nếu mình viết như trên thì khi khởi động, ComboBox1 gán giá trị mặc định là B thì nó cũng sẽ thực thi thủ tục ComboBox1_Change
Trong khi đó mình muốn thủ tục chỉ xảy ra khi người dùng thay đổi nội dung chọn combobox1 thôi, còn khi gán giá trị mặc định thì không thực thi Sub change này.

Cảm ơn mọi người đã chú tâm! Mong được giúp đỡ
 
Upvote 0
Thử thế này xem sao
Private Sub UserForm_Initialize()
Application.EnableEvents = False
ComboBox1.AddItem "B"
ComboBox1.AddItem "C"
ComboBox1.AddItem "D"
Application.EnableEvents = True
End Sub
 
Upvote 0
Thử thế này xem sao
Private Sub UserForm_Initialize()
Application.EnableEvents = False
ComboBox1.AddItem "B"
ComboBox1.AddItem "C"
ComboBox1.AddItem "D"
Application.EnableEvents = True
End Sub

Không được quanghai1969 ạ.
Bạn xem thử nhé. Mình upload file lên bạn sửa cho nhanh.
Mặc dù Application.EnableEvents = False nhưng vấn chạy ComboBox_change khi mình gán giá trị mặc định bác ạ.
 

File đính kèm

Upvote 0
Không được quanghai1969 ạ.
Bạn xem thử nhé. Mình upload file lên bạn sửa cho nhanh.
Mặc dù Application.EnableEvents = False nhưng vấn chạy ComboBox_change khi mình gán giá trị mặc định bác ạ.
Hướng dẫn bạn 1 đường, bạn làm 1 nẻo mà.
 

File đính kèm

Upvote 0
Hướng dẫn bạn 1 đường, bạn làm 1 nẻo mà.

Hic. Bác mắng vậy oan quá.
Vấn đề là sau khi đưa Array vào list thả xuống của ComboBox em muốn mặc định giá trị chọn của ComboBox là thằng "B". Và em muốn khi thực hiện mặc định, nó không thực thi cái Sub ComboBox1_change.
Cái Sub ComboBox1_change chỉ thực thi khi User chọn thay đổi list trong comboBox thôi.

Cảm ơn bác đã nhiệt tình tham gia với em.
 
Upvote 0
Hic. Bác mắng vậy oan quá.
Vấn đề là sau khi đưa Array vào list thả xuống của ComboBox em muốn mặc định giá trị chọn của ComboBox là thằng "B". Và em muốn khi thực hiện mặc định, nó không thực thi cái Sub ComboBox1_change.
Cái Sub ComboBox1_change chỉ thực thi khi User chọn thay đổi list trong comboBox thôi.

Cảm ơn bác đã nhiệt tình tham gia với em.

Hay là muốn thế này.
 

File đính kèm

Upvote 0
e muốn trên form Cập nhật TT có:
Nút Thêm : sau khi nhập dl vào ấn nút Thêm thì nó sẽ tự chèn Thông tin vào cuối DS và tự đánh stt cũng như cho dòng TT đó vào Bảng ds
Nút Hủy : sau khi Thêm mà thấy sai thì ấn nút Hủy ạ
Nút save : sau khi Thêm đúng thì ấn nút Save lưu lại

Mới học mong ae chỉ dẫn ạ
e k bít chèn file đính kèn nữa ạ

http://up.4share.vn/f/6b595c5353525c59/BT2.xlsm
 
Lần chỉnh sửa cuối:
Upvote 0
em có tạo 1 combobox userform trong vba excel
code như sau:

Private Sub ComboBox1_DropButtonClick()
with combobox1
.AddItem "Centimeters to Inches"
.AddItem "Hectares to Acres"
.AddItem "Liters to Gallons"
end with
End Sub

nhưng mỗi lần em mở cái combobox ra thì số item trong combobox lại tăng gấp đôi, em đã thử nhiều cách và tham khảo trên mạng nhưng không thấy có hướng dẫn về vấn đề này, mong các anh chị có thể giúp em khắc phục vấn đề này với ạ
 
Upvote 0
em có tạo 1 combobox userform trong vba excel
code như sau:

Private Sub ComboBox1_DropButtonClick()
with combobox1
.AddItem "Centimeters to Inches"
.AddItem "Hectares to Acres"
.AddItem "Liters to Gallons"
end with
End Sub

nhưng mỗi lần em mở cái combobox ra thì số item trong combobox lại tăng gấp đôi


Làm gì có chuyện tăng gấp đôi.

Mỗi lần sẩy ra sự kiện DropButtonClick thì code thêm 3 mục vào Combobox1. Khi ta nhấn nút tamgiác ngược thì danh sách thả xuống được mở ra và sẩy ra sự kiện DropButtonClick nên có 3 mục mới được thêm vào ComboBox1. Khi ta click trên Form để đóng danh sách thả xuống (hoặc chọn mục nào đó trong ComboBox1) thì cũng sẩy ra sự kiện DropButtonClick và có 3 mục mới được thêm vào ComboBox1. Vậy cứ qua 1 chu kỳ "mở - đóng" danh sách thả xuống thì số mục trong ComboBox1 được tăng thêm 6.

Nói cách khác khi danh sách thả xuống được mở lần đầu thì ta đếm được 3 mục, khi mở lần 2, 3, 4, ... thì ta đếm thấy có 9, 15, 21, ... mục.

em đã thử nhiều cách và tham khảo trên mạng nhưng không thấy có hướng dẫn về vấn đề này, mong các anh chị có thể giúp em khắc phục vấn đề này với ạ

Nếu bạn có một lượng nhất định các mục cần có trong ComboBox1 thì bạn thêm chúng vào ComboBox1 bằng 1 lần thao tác thôi. Ví dụ bạn có thể "thao tác" trong UserForm_Initialize

Mã:
Private Sub UserForm_Initialize()
    With ComboBox1
        .AddItem "Centimeters to Inches"
        .AddItem "Hectares to Acres"
        .AddItem "Liters to Gallons"
    End With
End Sub
 
Upvote 0
em cám ơn anh ạ. e đã làm được rồi!
nếu anh chị không phiền cho em hỏi thêm 1 câu nữa ạ
[GPECODE=vb]
Sub Macro1()
ans = MsgBox("Do you want to excute?", vbYesNo, "Caution!")
If ans = vbNo Then
Exit Sub
Else
Call solve1
Range("Q5").Select
Range("q5").Value = "Specified"
Call save1
End If
End Sub
[/GPECODE]

đây là 1 super macro em viết để giải bài toán tối ưu r sau đó save kết quả lại, nếu chay từng macro riêng lẻ thì không có vấn đề gì nhưng khi gộp chúng vào 1 macro thì cái macro Solve1 (dùng để giải bài toán tối ưu) lại k chạy mà chỉ có cái Save1 dùng để save kết quả chạy thôi ạ. mong mọi người giải đáp giúp e
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
em cám ơn anh ạ. e đã làm được rồi!
nếu anh chị không phiền cho em hỏi thêm 1 câu nữa ạ

Sub Macro1()
ans = MsgBox("Do you want to excute?", vbYesNo, "Caution!")
If ans = vbNo Then
Exit Sub
Else
Call solve1
Range("Q5").Select
Range("q5").Value = "Specified"
Call save1
End If

End Sub

đây là 1 super macro em viết để giải bài toán tối ưu r sau đó save kết quả lại, nếu chay từng macro riêng lẻ thì không có vấn đề gì nhưng khi gộp chúng vào 1 macro thì cái macro Solve1 (dùng để giải bài toán tối ưu) lại k chạy mà chỉ có cái Save1 dùng để save kết quả chạy thôi ạ. mong mọi người giải đáp giúp e

Nếu vấn đề thuộc loại: "2 + 2 = 5", tức "bình thường phải là thế này nhưng không hiểu sao nó lại thế kia" thì nói suông không đủ.
Nhiều người gửi mỗi cái ảnh mặt nhăn nhó. Anh A phán: "đau răng?". Anh B: "hôm qua ăn thịt chó?". Tôi không thích đoán mò. Bạn gửi file lên tôi xem xem có con ma nào đang "cò cưa" với ta không
 
Upvote 0
file đây ạ, anh xem giúp em với

Bạn dùng solver.xlam nào đấy?

Vì vd. bạn gọi hàm

Mã:
SolverOk SetCell:="$P$14", MaxMinVal:=2, ValueOf:=0, ByChange:="$F$14,$K$14", _
        [B][COLOR=#ff0000]Engine[/COLOR][/B]:=1, [B][COLOR=#ff0000]EngineDesc[/COLOR][/B]:="GRG Nonlinear"

mà trong khi đó solver.xlam của Excel có

Mã:
Function SolverOk(Optional SetCell As Variant, Optional MaxMinVal As Variant, Optional ValueOf As Variant, Optional ByChange As Variant) As Variant

Tức hàm SolverOk làm gì có Engine và EngineDesc
 
Lần chỉnh sửa cuối:
Upvote 0
em chạy riêng cái solver và vẫn ra được kết quả đúng anh ạ, chỉ có điều khi gộp chung thành 1 super macro thì nó lại k chạy. anh có thể gợi ý cho em cách khắc phục được không ạ? em không rành phần này lắm.
 
Lần chỉnh sửa cuối:
Upvote 0
em chạy riêng cái solver và vẫn ra được kết quả đúng anh ạ, chỉ có điều khi gộp chung thành 1 super macro thì nó lại k chạy. anh có thể gợi ý cho em cách khắc phục được không ạ? em không rành phần này lắm.

Tôi chạy Macro1 thì thấy vẫn vào sub solver1, chỉ có điều không chạy tiếp được như tôi đã trình bầy nguyên nhân. Tôi chịu thôi. Bạn cứ thử đi từng bước xem sao: click bên "lề trái" của đòng đầu trong sub solver1 rồi sau đó khi tới chỗ đó thì cứ nhấn F8 để đi từng bước.
 
Upvote 0
các bác xem giúp em vòng lặp này e viết có gì chưa đúng mà nó không chạy:

Sub fifthmacro()
Sheets("interface").Select
Dim length As Integer
For length = 5 To 75
Range("f14").Value = length
Call optimize1
Call selectbeam
Call save
Next
End Sub
 
Upvote 0
xin cho hỏi các thành viên là làm sao tạo 1 form trong excel để nhập mà được dữ liệu chọn bằng cách kéo chuột như những form có sẳn trong EXCEL, xin chân thành cảm ơn
ví dụ như form này tạo như thế nào?
Picture1.jpg
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
do em mới tìm hiều về cái này nên còn hơi gà mờ, hic hic
bây giờ mới vận dụng được
ActiveCell.FormulaR1C1 = Application.WorksheetFunction.Sum(Range(RefEdit1))
cảm ơn anh ndu vì đã gợi ý, xin cảm ơn anh nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
nhờ anh chị sửa giúp code sau tự đổi số thành chữ nguồn chứa số ô A2 , Kết quả là chữ ở ô A3

Mã:
Public Function VND(BaoNhieu)
If Val(BaoNhieu) = 0 Then
Ketqua = "Khoâng ñoàng"
Else
If Abs(BaoNhieu) > 1E+15 Then
Ketqua = "Soá quaù lôùn"
Else
If BaoNhieu < 0 Then Ketqua = "Tröø" & Space(1) Else Ketqua = Space(0)
SOTIEN = Format(Abs(BaoNhieu), "###############0.00") '18coät soá 2soá leû
SOTIEN = Right(Space(15) & SOTIEN, 18)
Hang = Array("None", "traêm", "möôi", "gì ñoù")
DONVI = Array("None", "ngaøn tyû", "tyû", "trieäu", "ngaøn", "ñoàng", "xu")
Dem = Array("None", "moât", "hai", "ba", "boán", "naêm", "saùu", "baûy", "taùm", "chín")
For N = 1 To 6
Nhom = Mid(SOTIEN, N * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If N = 5 Then
Chu = "ñoàng" & Space(1)
Else
Chu = Space(0)
End If
Case ".00", ",00"
Chu = "chaün"
Case Else
S1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)
Chu = Space(0): Hang(3) = DONVI(N)
For K = 1 To 3
Dich = Space(0): S = Val(Mid(Nhom, K, 1))
If S > 0 Then
Dich = Dem(S) & Space(1) & Hang(K) & Space(1)
Else
If K = 1 And N > 1 And N < 6 And Val(Mid(SOTIEN, (N - 1) * 3 - 2, 3)) > 0 Then
Dich = "khoâng" & Space(1) & Hang(K) & Space(1)
End If
End If
Select Case K
Case 2 And S = 1
Dich = "möôøi" & Space(1)
Case 3 And S = 0 And Nhom <> Space(2) & "0"
Dich = Hang(K) & Space(1)
Case 3 And S = 5 And Val(S2) > 2
Dich = "l" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0"
If N > 1 And Val(Mid(SOTIEN, (N - 1) * 3 - 2, 3)) > 0 Or (Val(S1) > 0) Then
Dich = "leû" & Space(1)
End If
End Select
Chu = Chu & Dich
Next K
End Select
ViTri = InStr(1, Chu, "möôi moät")
If ViTri > 0 Then Mid(Chu, ViTri, 9) = "möôi moát"
Ketqua = Ketqua & Chu
End If
Next N
End If
End If
VND = UCase(Left(Ketqua, 1)) & Trim(Mid(Ketqua, 2))
End Function

mong được anh chị giúp đỡ.
Trân trọng cảm ơn anh chị.
 

File đính kèm

Upvote 0
cho em hỏi khi userForm đang Show thì không thể focus hay thao tác gì trên các file excel khác đang mở ?
làm cách nào khắc phục ? nếu câu hỏi này đã có trên diễn đàn xin cho em biết đường link đến đó . Cảm ơn
 
Upvote 0
Upvote 0
phần nhập như bạn hai lúa sữa cho mình bây giờ là quá ổn
giờ minh muồn lúc mình nhập dữ liệu từ sheet DSHS xong thì sẽ tự cập nhật sang các sheet khác như trong file mình gữi đính kèm là số liệu sẽ sang sheet1,sheet2 theo đúng yêu cầu của mình.tức là nó sẽ tự phân ra theo mã DT,(cái mà mình tô màu đỏ sẽ sang một sheet và màu xanh sẽ sang một sheet)
rât mong nhận được sự giúp đỡ của các bạn

Các bạn cho mình nhờ chút nhé:
Cái form trên được tạo cho 2 Mã để copy sang 2 sheet khác nhau. Bây giờ mình muốn sửa để có 4,5 mã và copy sang 4,5 sheet khác nhau
Cảm ơn các bạn ! Thân!
 
Upvote 0
Bạn Hai Lúa ơi xem giùm mình cái. Thanks
 
Upvote 0
Giải thích dùm mình đoạn code sau;
(cho mình cám ơn trước nha)
Sub nhap_dulieu()
Dim n1, n2, n3, n4, n5, n6, n7, Shift As Integer
Dim Op, Pro_date, Line As String


'kiem tra loi
n1 = Application.WorksheetFunction.CountBlank(Sheets("inputdata").Range("F4:F18"))
n2 = Application.WorksheetFunction.CountBlank(Sheets("inputdata").Range("G4:G18"))
n3 = Application.WorksheetFunction.CountBlank(Sheets("inputdata").Range("H4:H18"))
n4 = Application.WorksheetFunction.CountBlank(Sheets("inputdata").Range("I4:I18"))
n5 = Application.WorksheetFunction.CountBlank(Sheets("inputdata").Range("J4:J18"))
n6 = Application.WorksheetFunction.CountBlank(Sheets("inputdata").Range("K4:K18"))
n7 = Application.WorksheetFunction.CountBlank(Sheets("inputdata").Range("L4:L18"))


Pro_date = Sheets("inputdata").Range("B2").Value
Shift = Sheets("inputdata").Range("D2").Value
Line = Sheets("inputdata").Range("F2").Value
Op = Sheets("inputdata").Range("H2").Value
' check cell
If Pro_date = "" Then
MsgBox ("BAN CHUA NHAP: Ngay San Xuat")
Exit Sub
End If
If Shift = 0 Then
MsgBox ("BAN CHUA NHAP: Ca San Xuat")
Exit Sub
End If
If Line = "" Then
MsgBox ("BAN CHUA NHAP: Line San Xuat")
Exit Sub
End If
If Op = "" Then
MsgBox ("BAN CHUA NHAP: TEN VHM ")
Exit Sub
End If


If n1 = 15 And n2 = 15 And n3 = 15 Then
MsgBox "BAN CHUA NHAP DATA VAO COT: F, G, H !!!"
Exit Sub
End If
If n1 = n7 And n2 = n7 And n3 = n7 And n4 = n7 And n5 = n7 And n6 = n7 Then
UserForm1.Show
Else
MsgBox "BAN KIEM TRA LAI DATA "
End If
End Sub


Sub Add_BOM(Posi As Integer)
Dim i, n, Dem As Integer


'Call Unpro_Form
'Clear material label, BOM, financle coefficien
Range("A23:I35").ClearContents
Range("P23:P35").ClearContents
' Add label, BOM, Unit, financl coeffient
n = Application.WorksheetFunction.Subtotal(3, Sheets("Products").Range("L5:BH5"))
Dem = 23
For i = 12 To n + 11
If Sheets("Products").Cells(Posi, i).Value <> "" Then
Range("A" & Dem).Value = Sheets("Products").Cells(3, i).Value ' Add code
Range("B" & Dem).Value = Sheets("Products").Cells(5, i).Value ' Add Unit
Range("D" & Dem).Value = Sheets("Products").Cells(4, i).Value ' Add Unit
Range("E" & Dem).Value = Sheets("Products").Cells(Posi, i).Value ' Add BOM

Dem = Dem + 1
End If
Next
'Call Pro_Form
End Sub
 
Upvote 0
Các câu hỏi về Form nhiều nhưng hình như chưa có mấy câu hỏi về giao diện form như bảng tính cập nhật dữ liệu (với nhiều mặt hàng, số lượng,....) trên Form xuống thì còn ít thì phải!? Em cũng tìm để nghiên cứu thêm mà không thấy có mấy nữa! Hay có lẽ em không tìm thấy?
 
Upvote 0
Các câu hỏi về Form nhiều nhưng hình như chưa có mấy câu hỏi về giao diện form như bảng tính cập nhật dữ liệu (với nhiều mặt hàng, số lượng,....) trên Form xuống thì còn ít thì phải!? Em cũng tìm để nghiên cứu thêm mà không thấy có mấy nữa! Hay có lẽ em không tìm thấy?
nếu "chịu khó" vào GPE thường xuyên + đọc các bài liên quan --> chắc chắn sẽ có ... ,,,,,,,

bạn tham khảo Pic sau xem sao nhé !

pic01.jpg
 
Upvote 0
E có một bảng dữ liệu gồm 4 cột : Mã, Tên, địa chỉ, chức vụ
E đã tạo một form với 1 listbox và 4 textbox
Nút ghi dữ liệu e đã làm xong nhưng có vấn đề là nếu mã số đã có trong bảng thì ko cho ghi nữa . Đó là vấn đề đầu tiên
Vấn đề thứ 2 là e chọn từ listbox một mã đã ghi rồi, rồi sửa lại . Đang bí button thứ 2 này

E Xin cảm ơn - - - - - - - - - - - - - - -
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mã:
For Each Ten In Range([c16], [c65536].End(3))           
 If Ten > 0 And Ten.Font.ColorIndex <> 3 Then  '
                Doc = .Documents.Open(ThisWorkbook.Path & "\" & [d1] & ".doc")
                .Selection.Find.Execute [c12], , , , , , , , , Ten, [COLOR=#ff0000]2[/COLOR]
Dạ cho em hỏi số 2 chữ màu đỏ có ý nghĩa gì ạ
 
Upvote 0
bác nào giúp em với. em muốn điền dữ liệu từ form "thông tin hợp đồng" sang "sheet 2" sau khi bấm cập nhật
em mới tập tành VBA rất mong các bác giúp đỡ


Untitled.jpg
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Minh có một File nhập dữ liệu để in hồ sơ xin việc nhưng không biết tạo các lệnh để sử dụng:
1. Thanh trượt: Scroll để chuyển qua lại giữa các hồ sơ với nhau.
2. Button Lùi để xem lại phần nhập liệu trước đó.
3. Button Tới để xem lại phần nhập liệu phía sau.
4. Button Sửa để sửa lại dữ liệu đã nhập trong Form sau khi thêm vào excel. (Button Sửa sẽ Ẩn sau khi Click vào và thay thế bằng Button Lưu)
5. Button Lưu để lưu lại các dữ liệu đã sửa sau khi nhấn Button sửa. (Button này ẩn chỉ hiện sau khi click vào Button Sửa - Sau khi lưu sẽ hiện lại Button Sửa) hi.
Mong các cao thủ giúp đỡ xin chân thành cảm ơn!!
Email của em là: huuphucth@gmail.com mong các huynh đài giúp đỡ gởi về email trên cho em tham khảo xin cám ơn nhiều!!
 

File đính kèm

Upvote 0
Mình đang muốn làm một cái userform mà nội dụng drop down theo mục nội dung trước đó. Hiện tại file excel bình thường (đính kèm) thì mình làm được nhưng ko biết đưa lên userform thì làm thế nào. Các bạn giúp mình với. Tks.
2.jpguserform.jpg
 

File đính kèm

Upvote 0
Các bác cho em hỏi là em muốn lồng "useform1" vào macro "dieutiet".vậy làm sao để userform nhận biến của macro (trong vòng lặp for và câu lệnh if)
 

File đính kèm

Upvote 0
Sử dụng name range rồi trong thuộc tính của combobox có cái Rowsource, ghi cái name range đó vào là xong.
Mình đang muốn làm một cái userform mà nội dụng drop down theo mục nội dung trước đó. Hiện tại file excel bình thường (đính kèm) thì mình làm được nhưng ko biết đưa lên userform thì làm thế nào. Các bạn giúp mình với. Tks.
View attachment 153152View attachment 153153
 
Upvote 0
Minh có một File nhập dữ liệu để in hồ sơ xin việc nhưng không biết tạo các lệnh để sử dụng:
1. Thanh trượt: Scroll để chuyển qua lại giữa các hồ sơ với nhau.
2. Button Lùi để xem lại phần nhập liệu trước đó.
3. Button Tới để xem lại phần nhập liệu phía sau.
4. Button Sửa để sửa lại dữ liệu đã nhập trong Form sau khi thêm vào excel. (Button Sửa sẽ Ẩn sau khi Click vào và thay thế bằng Button Lưu)
5. Button Lưu để lưu lại các dữ liệu đã sửa sau khi nhấn Button sửa. (Button này ẩn chỉ hiện sau khi click vào Button Sửa - Sau khi lưu sẽ hiện lại Button Sửa) hi.
Mong các cao thủ giúp đỡ xin chân thành cảm ơn!!
Email của em là: huuphucth@gmail.com mong các huynh đài giúp đỡ gởi về email trên cho em tham khảo xin cám ơn nhiều!!

Làm được tất tần tật, kể cả tìm kiếm, trích lọc, tổng hợp theo yêu cầu.

Nhưng không rảnh để giúp được.
 
Upvote 0
Khai báo biến toàn cục, rồi sử dụng biến đó trong form.
Bác có thể hướng dẫn em cụ thể được không ạ ?
Sub dieutiet()
'dieu tiet lu'
Dim i As Integer
Dim k As Object
Dim a As Object
Dim m As Object
Set a = Cells(24, 29)
Set m = Cells(26, 11)
Set k = Cells(3, 11)
For i = 1 To a - 1
lap:
Cells(i + 26, 26).Value = Cells(i + 25, 26).Value + 0.5
Cells(i + 26, 27).GoalSeek Goal:=0, ChangingCell:=Cells(i + 26, 26)
If Cells(i + 26, 25) < Cells(3, 11) Then
Cells(i + 26, 10).Value = Cells(i + 25, 10).Value
'Cells(i + 26, 25).GoalSeek Goal:=k, ChangingCell:=Cells(i + 26, 10)'
UserForm1.Show
Cells(i + 26, 26).Value = Cells(3, 11).Value
Cells(i + 26, 10).Select
With Selection.Interior
.Color = 5287936
End With
End If
End sub

và userform như sau:
(Public i As Integer, k As Object, m As Object)
Private Sub CommandButton1_Click()
If OptionButton1 Then Cells(i + 26, 25).GoalSeek Goal:=k, ChangingCell:=Cells(i + 26, 10)
If OptionButton1 Then Cells(i + 26, 12).GoalSeek Goal:=m, ChangingCell:=Cells(i + 26, 10)
Unload UserForm1
End Sub

cú pháp Userform.show đâu thể chứa biến để excel có thể truyền giống như fuction
 
Upvote 0
Mình muốn tạo 1 userform như hình vẽ và khi bấm lưu thì excel sẽ lưu trữ các thông tin khi sử dụng addin trong các lần tiếp theo. Anh/chị nào giúp em trường hợp này được không ạ.
 

File đính kèm

  • form.png
    form.png
    11.3 KB · Đọc: 102
Upvote 0
Upvote 0
Làm sao gọi form,có listbox dữ liệu từ file khác?

Chào anh chị

Ví dụ: em có
- file1, sheet1: danh sách khách hàng
- File2: gọi form xuất hiện cùng listbox, nhưng làm sao để gọi dữ liệu danh sách khách hàng xuất hiện trên Listbox?

Vậy em phải dụng code khai báo đặt tên mảng Tm1 như nào để listbox trong form.

Theo code của anh SEALAND, nếu mình đứng tại filé, sheet 1 thì dùng đoạn đoạn code sau. Nhưng nếu mình gọi form của file 2, thì mình sửa như nào ạ?

PHP:
Sub NapL()
Dim Tm, Tm1, Dk As String, Cot As Integer, Kieu As Integer
On Error GoTo thoat
If Me.ListBox1.ListCount > 0 Then Me.ListBox1.Clear
Dk = IIf(Me.TextBox1 = "", "*", Me.TextBox1)
Kieu = 11
Cot = 19
Tm1 = Sheet1.Range(Sheet1.[B3], Sheet1.[T65536].End(3).Resize(, 5))
Tm = Filter2D(Tm1, Dk, Cot, Kieu)
Me.ListBox1.List = Tm
thoat:
End Sub
 
Upvote 0
Mạn phép mình làm thế này

Sub dieutiet()
.......................
If Cells(i + 26, 25) < Cells(3, 11) Then
Cells(i + 26, 10).Value = Cells(i + 25, 10).Value
Cells(i + 26, 25).GoalSeek Goal:=k, ChangingCell:=Cells(i + 26, 10)

UserForm1.Show
If OptionButton1 Then Cells(i + 26, 25).GoalSeek Goal:=k, ChangingCell:=Cells(i + 26, 10)
If OptionButton1 Then Cells(i + 26, 12).GoalSeek Goal:=m, ChangingCell:=Cells(i + 26, 10)

Cells(i + 26, 26).Value = Cells(3, 11).Value
Cells(i + 26, 10).Select
With Selection.Interior
.Color = 5287936
End With
.........
end sub

Private Sub CommandButton1_Click()
''If OptionButton1 Then Cells(i + 26, 25).GoalSeek Goal:=k, ChangingCell:=Cells(i + 26, 10)
''''If OptionButton1 Then Cells(i + 26, 12).GoalSeek Goal:=m, ChangingCell:=Cells(i + 26, 10)
Unload UserForm1
End Sub
 
Upvote 0
Em mới tập tọe VBA nên viết code sai tùm lum, không hiểu gán giá trị cho Spin button thế nào mà nó báo lỗi. Mong mọi người giúp đỡ
 

File đính kèm

Upvote 0

File đính kèm

Upvote 0
Bạn xem đúng ý bạn chưa nhé.
Xin lỗi vì câu hỏi em không rõ ràng lắm, bác sửa dùm em code ngược lại tý là khi ta nhập giá trị Min và Max ở Form thì ô A3 và A4 nhận giá trị đó (file của bác đang là nhập ở A3, A4) và khi cho Spin Button chạy thì cả TextBox và ô A3, A4 cùng chạy
 
Upvote 0
Xin lỗi vì câu hỏi em không rõ ràng lắm, bác sửa dùm em code ngược lại tý là khi ta nhập giá trị Min và Max ở Form thì ô A3 và A4 nhận giá trị đó (file của bác đang là nhập ở A3, A4) và khi cho Spin Button chạy thì cả TextBox và ô A3, A4 cùng chạy
Bạn cho mình hỏi cái này nhé! Bạn sử dụng SpinButton để chi vậy? Theo tôi thì nếu đã sử dụng SpinButton thì dùng textbox để nhập là dư thừa. Vì dụ khi nhập vào TextBox thì SpinButton có thay đổi theo không? nếu thay đổi thì textbox có thay đổi theo SpinButton không? Và SpinButton sẽ tác động vào textbox nào?
 
Upvote 0
Em có Form trang in thế này, nhưng khi in nhiều bộ giống nhau nó không nhận chế độ Collate, mà vẫn bị chế độ in là 112233 chứ không phải 123123. Các bác chỉ giáo em với ạ:
Mã:
Private Sub CommandButton3_Click()Dim p1, p2, i&
p1 = TextBox1.Value
p2 = TextBox2.Value
p3 = TextBox3.Value
If IsNumeric(p1) = False Or IsNumeric(p2) = False Then
tb = MsgBox("So code phai la so.", , "Thông báo")
Exit Sub
End If


If p1 > p2 Then
tb = MsgBox("So code sau phai >= so code truoc.", , "Thông báo")
Exit Sub
End If


If p1 < 1 Or p2 < 1 Then
tb = MsgBox("So code phai >= 1.", , "Thông báo")
Exit Sub
End If


If p1 <= p2 Then
    For i = p1 To p2
    Sheet11.Range("AL2").Value = i
    Sheet11.Range("AO2").Value = "'" & Format(Sheet11.Range("AL2"), "00") & "-" & Sheet11.Range("AS2").Value
     UserForm2.Hide
    ActiveWindow.SelectedSheets.PrintOut From:=p1, To:=p2, Copies:=p3, Collate:=True
    Next
End If
End Sub
 
Upvote 0
Chào mọi người!
Em mới học VB Excel có khó khăn nhờ mọi người giúp. Em tạo 1 Userform trong đó có 1 Multipage và 2 button. Trong Multipage có 1 page, trong đó có 1 Textbox. Khi em ấn nút Add thì sẽ tạo ra page mới (Page2) và copy page cũ (Page1) sang Page2 (Cái này e làm được rồi). Còn phần tại Page2 e muốn đánh số vào Textbox rồi nhấn OK thì giá trị đánh vào Textbox tại Page2 sẽ điền vào ô A1. Làm thế nào để tham chiếu đến cái Textbox trong Page2 mọi người giúp em với.
 

File đính kèm

Upvote 0
Chào mọi người!
Em mới học VB Excel có khó khăn nhờ mọi người giúp. Em tạo 1 Userform trong đó có 1 Multipage và 2 button. Trong Multipage có 1 page, trong đó có 1 Textbox. Khi em ấn nút Add thì sẽ tạo ra page mới (Page2) và copy page cũ (Page1) sang Page2 (Cái này e làm được rồi). Còn phần tại Page2 e muốn đánh số vào Textbox rồi nhấn OK thì giá trị đánh vào Textbox tại Page2 sẽ điền vào ô A1. Làm thế nào để tham chiếu đến cái Textbox trong Page2 mọi người giúp em với.

Xem ở đây: http://www.giaiphapexcel.com/forum/showthread.php?119348-Tham-chiếu-đến-TextBox
 
Upvote 0
Tôi có tạo 1 Add in trong đó UserForm co de che độ UserForm.Show vbModeless nhung trong Excel 2003-2010 khi di chuyen qua các Worbook khác Form vẫn hiện nhưng trong Excel 2016 thì lại không được. Niếu được mong các anh chị trong diễn đàn hướng dẫn giúp với ah.
Cám ơn mọi người rất nhiều.
 
Upvote 0
mình có tạo một form nhập liệu chọn ô nhập liệu là combobox thì có lựa chọn nào để nếu nhập không đúng giá trị mình đã chọn trước ở rowsource thì chương trình sẽ báo lỗi không cho nhập tiếp không mọi người.
 
Upvote 0
mình có tạo một form nhập liệu chọn ô nhập liệu là combobox . . . .
1./ Đầu câu chưa viết hoa; Cần tôn trọng ngữ fáp tiếng Việt ta hơn.
2./
- Mình có tạo một form nhập liệu (để) chọn ô nhập liệu là combobox
- Mình có tạo một form nhập liệu chọn (dữ liệu trong) ô nhập liệu là combobox
- . . . . .
3./
thì có lựa chọn nào để nếu nhập không đúng giá trị mình đã chọn trước ở rowsource thì chương trình sẽ báo lỗi không cho nhập tiếp không
Chưa thể hiểu được mệnh đề này luôn!
 
Upvote 0
1./ Đầu câu chưa viết hoa; Cần tôn trọng ngữ fáp tiếng Việt ta hơn.
2./
- Mình có tạo một form nhập liệu (để) chọn ô nhập liệu là combobox
- Mình có tạo một form nhập liệu chọn (dữ liệu trong) ô nhập liệu là combobox
- . . . . .
3./
Chưa thể hiểu được mệnh đề này luôn!
upload_2017-9-25_21-49-7.pngupload_2017-9-25_21-49-7.png
Ý của mình là mình tạo form nhập liệu như này, một năm có 12 tháng và mình đã chọn sẵn các giá trị để nhập rồi. Mình muốn là nếu nhập giá trị khác như 13 thì báo lỗi không cho nhập.
 

File đính kèm

Upvote 0
Ý của mình là mình tạo form nhập liệu như này, một năm có 12 tháng và mình đã chọn sẵn các giá trị để nhập rồi. Mình muốn là nếu nhập giá trị khác như 13 thì báo lỗi không cho nhập.
Quá chi là dễ luôn: Bạn tạo 1 ComboBox trên form; Nguồn của nó là vùng 12 hàng (1 cột) chứa các số từ 1 đến 12;
Khi đó, người nhập làm chi có số nào khác 12 (tháng) để chọn mà nhập đâu kia chứ.

Còn nếu bí thì sau 24 giờ nữa mình sã giúp (Bạn có 24 giờ để thử sức mình đó & chúc thành công!)
 
Upvote 0
Quá chi là dễ luôn: Bạn tạo 1 ComboBox trên form; Nguồn của nó là vùng 12 hàng (1 cột) chứa các số từ 1 đến 12;
Khi đó, người nhập làm chi có số nào khác 12 (tháng) để chọn mà nhập đâu kia chứ.

Còn nếu bí thì sau 24 giờ nữa mình sã giúp (Bạn có 24 giờ để thử sức mình đó & chúc thành công!)
Mình đã tạo ComboBox trên form và chọn được giá trị từ 1-12 rồi, nhưng ngoài các giá trị nhập lựa chọn 1-12 thì khi mình nhập trực tiếp VD: 13 14 thì nó vẫn nhận các giá trị này. Mình hỏi là có cách nào để ngoài những giá trị mình cho phép lựa chọn là từ 1-12 ra thì không nhập được giá trị khác. Như cái file mà mình đã tải lên ấy là ngoài giá trị lựa chọn thì khi mình nhập số khác nó vẫn nhận.
 
Upvote 0
Vậy bạn thêm các dòng lệnh này vô macro của nút lệnh 'Save":
PHP:
Private Sub CmdNhap_Click()
Dim Endr As Long
With Sheets("sheet1")
    If ComboBox1.Text < "1" Or ComboBox1.Text > "9" Then   '*'
        MsgBox "Cút Ngay!", , "Xin Chào &"        '*'
    Else         '*'
        Endr = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("A" & Endr + 1) = ComboBox1.Text
    End If        '*'
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Vậy bạn thêm các dòng lệnh này vô macro của nút lệnh 'Save":
PHP:
Private Sub CmdNhap_Click()
Dim Endr As Long
With Sheets("sheet1")
    If ComboBox1.Text < "1" Or ComboBox1.Text > "9" Then   '*'
        MsgBox "Cút Ngay!", , "Xin Chào &"        '*'
    Else         '*'
        Endr = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("A" & Endr + 1) = ComboBox1.Text
    End If        '*'
End With
End Sub
Không chạy bạn ơi, nhập bao nhiêu nó cũng vẫn nhận bình thường. Ngoài ra mình hiểu code bạn viết là nếu nhỏ hơn 1 hoặc lớn hơn 9, vậy nếu dùng cho ký tự hoặc vùng lựa chọn trước (VD mình đặt name từ ô c1:c12 là "thang") thì code viết thế nào
 
Upvote 0
Upvote 0
Không cho nhập vào combobox, bằng cách đổi thuộc tính style của combobox như sau:
View attachment 183772
Thanks bạn cách này hay, nhưng nếu vào trường hợp nhiều ký tự giống nhau và số lượng lớn thì hơi khó áp dụng vd như: list các tỉnh trong cả nước tìm được đúng đến tỉnh mình muốn thì cũng hơi mệt. Có câu lệnh nào để khống chế không đúng giá trị trong lits thì nó không cho nhập không.
 
Upvote 0
Thanks bạn cách này hay, nhưng nếu vào trường hợp nhiều ký tự giống nhau và số lượng lớn thì hơi khó áp dụng vd như: list các tỉnh trong cả nước tìm được đúng đến tỉnh mình muốn thì cũng hơi mệt. Có câu lệnh nào để khống chế không đúng giá trị trong lits thì nó không cho nhập không.
Cách thì có, nhưng bạn cứ đổi yêu cầu hoài anh em chạy theo không kịp đâu. Ba hồi là chỉ có 12 tháng, ba hồi là tỉnh thành giúp xong bạn chuyển sang con người,... vậy bạn muốn gì up cái file đúng yêu cầu thực tế của bạn đi sẽ được anh em hưởng ứng giúp đỡ, lưu ý là sẽ không được giúp nếu đưa cái file không đúng thưc tế của bạn, vì giúp xong bạn tiếp tục đổi yêu cầu nửa thì mất công lắm, anh em trong diễn đàn cũng có nhiều người rảnh lắm nhưng lại có ít người kiên nhẫn.
 
Lần chỉnh sửa cuối:
Upvote 0
Càng nhiều bậc tự do, thì CSDL càng nhanh đến thùng rác mà, cố lên!
 
Upvote 0
Cách thì có, nhưng bạn cứ đổi yêu cầu hoài anh em chạy theo không kịp đâu. Ba hồi là chỉ có 12 tháng, ba hồi là tỉnh thành giúp xong bạn chuyển sang con người,... vậy bạn muốn gì up cái file đúng yêu cầu thực tế của bạn đi sẽ được anh em hưởng ứng giúp đỡ, lưu ý là sẽ không được giúp nếu đưa cái file không đúng thưc tế của bạn, vì giúp xong bạn tiếp tục đổi yêu cầu nửa thì mất công lắm, anh em trong diễn đàn cũng có nhiều người rảnh lắm nhưng lại có ít người kiên nhẫn.
Tại mình mới học về phần này nên cũng không biết có thể làm được những gì, với form nên muốn tìm hiểu thêm để áp dụng vào thực tế công việc. File mình gửi nên mình mới đang làm được một nửa. Mình muốn mã khách hàng và mặt hàng trong ô nhập liêu nếu không đúng như bên sheet!data thì sẽ không cho nhập. Ngoài ra khi nhập mã khách hàng thì tên khách hàng, địa chỉ tự động điền vào cột d và e, điền mặt hàng thì chủng loại, đơn giá cũng điền tương ứng (phần này nếu dùng hàm vlookup của excel thì khi dữ liệu gộp lại lên nhiều thì chạy chậm lắm). Tại nhiều thứ quá nên không dám hỏi một lèo vừa làm vừa tìm hiểu và hỏi trên mạng
 

File đính kèm

Upvote 0
Tại mình mới học về phần này nên cũng không biết có thể làm được những gì, với form nên muốn tìm hiểu thêm để áp dụng vào thực tế công việc. File mình gửi nên mình mới đang làm được một nửa. Mình muốn mã khách hàng và mặt hàng trong ô nhập liêu nếu không đúng như bên sheet!data thì sẽ không cho nhập. Ngoài ra khi nhập mã khách hàng thì tên khách hàng, địa chỉ tự động điền vào cột d và e, điền mặt hàng thì chủng loại, đơn giá cũng điền tương ứng (phần này nếu dùng hàm vlookup của excel thì khi dữ liệu gộp lại lên nhiều thì chạy chậm lắm). Tại nhiều thứ quá nên không dám hỏi một lèo vừa làm vừa tìm hiểu và hỏi trên mạng
Mình thực hiện cho cái Combobox mã khách hàng thôi còn cái còn lại bạn tự nghiên cứu và phát triển.
 

File đính kèm

Upvote 0
Tại mình mới học về phần này nên cũng không biết có thể làm được những gì, với form nên muốn tìm hiểu thêm để áp dụng vào thực tế công việc. File mình gửi nên mình mới đang làm được một nửa. Mình muốn mã khách hàng và mặt hàng trong ô nhập liêu nếu không đúng như bên sheet!data thì sẽ không cho nhập. Ngoài ra khi nhập mã khách hàng thì tên khách hàng, địa chỉ tự động điền vào cột d và e, điền mặt hàng thì chủng loại, đơn giá cũng điền tương ứng (phần này nếu dùng hàm vlookup của excel thì khi dữ liệu gộp lại lên nhiều thì chạy chậm lắm). Tại nhiều thứ quá nên không dám hỏi một lèo vừa làm vừa tìm hiểu và hỏi trên mạng
Nếu bạn muốn làm phiếu bán hàng thì nên sử dụng SheetForm thì sẽ thuận tiện hơn UserForm nhiều, bạn có thể tham khảo cách làm trong File ở bài viết của Link sau:
http://www.giaiphapexcel.com/diendan/threads/theo-dõi-và-truy-vấn-đơn-thuốc-nơi-phòng-khám-bệnh.126073/
 
Upvote 0
Mình đã tạo được Form

Đã xong phần tạo form nhập dữ liệu từ CSDL TenCV, căn cứ vào mã hiệu để tra cứu STT, Tên HMCV, ĐVT.

Nhờ các bạn hướng dẫn CODE căn chỉnh ngay trong Form:

1/ phần Wrap text và canh trái trong cộtC
2/ phần canh Vertical và Horizotal cột A, B, C, E)
3/ Mình tạo thêm 1 private Sub phụ tự động đánh STT và Call nó thì không ra kết quả là sao nhỉ? Mong các bạn giải đáp giúp
 

File đính kèm

Upvote 0
Chào các anh Chị, e có tìm được một file này trên mạng, giờ e muốn thêm code tìm kiếm tại TextBox1 thì những dũ liệu thỏa mãn sẽ hiện lên ở
Listbox lbUser, khi TextBox1 ="" thì hiện lên tất cả danh sách. Mong các anh chị giúp đỡ em ạ. Em xin cảm ơn!
 

File đính kèm

Upvote 0
Chào các anh Chị, e có tìm được một file này trên mạng, giờ e muốn thêm code tìm kiếm tại TextBox1 thì những dũ liệu thỏa mãn sẽ hiện lên ở
Listbox lbUser, khi TextBox1 ="" thì hiện lên tất cả danh sách. Mong các anh chị giúp đỡ em ạ. Em xin cảm ơn!
Trước khi viết Code.. . , ta bạn sâu hơn về chức năng của Form. Có fải Form để:
a./ Nhập mới (dữ liệu) (DL)
b./ Sửa chữa, bổ sung DL
c./ Xóa dòng DL nào đó?

Nếu là mình thì trên ListBox nên không hiện gì hết trừ fi việc tìm kiếm trong TextBox1 có kết quả; thì hiển thị kết quả tìm được này.
Để vậy vùng ô làm nguồn sẽ không =Data như bạn mà nên tạo ra 1 nơi có địa chỉ AA1:AF99 (cùng lắm là 98 dòng dữ liệu)
Vùng này làm nguồn vĩnh viễn cho ListBox dù có hay không có chứa dữ liệu.
 
Upvote 0
Trước khi viết Code.. . , ta bạn sâu hơn về chức năng của Form. Có fải Form để:
a./ Nhập mới (dữ liệu) (DL)
b./ Sửa chữa, bổ sung DL
c./ Xóa dòng DL nào đó?

Nếu là mình thì trên ListBox nên không hiện gì hết trừ fi việc tìm kiếm trong TextBox1 có kết quả; thì hiển thị kết quả tìm được này.
Để vậy vùng ô làm nguồn sẽ không =Data như bạn mà nên tạo ra 1 nơi có địa chỉ AA1:AF99 (cùng lắm là 98 dòng dữ liệu)
Vùng này làm nguồn vĩnh viễn cho ListBox dù có hay không có chứa dữ liệu.
Chào bác, em hnay đi làm, giờ mới về online được bác à. Mục đích của em là tìm kiếm dữ liệu trong List Box. Khi tìm thấy thì em kích đúp chuột sẽ lấy dữ liệu ra bảng khác bác ạ. Em chưa hiểu tại sao lại chỉ giới hạn 98 dòng dữ liệu, còn cột thì giới hạn bao nhiêu hả bác?
Mong bác chỉ giúp em ạ!
 
Upvote 0

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

Back
Top Bottom