Anda di halaman 1dari 64

CHUYN MN HC

K TON EXCEL
GV: Nguyen Ngoc Minh Email: minhhoangtell@yahoo.com
Ng.Ng.Minh

NI DUNG

1.

2.

To bng, dng hm, cc chc nng macro, validation, advanced filter, lp c phiu thu-chi, phiu nhp xut, th kho, bo co ti chnh tng t file K ton Excel 2011: 2 im Lm c Form nh form ng nhp h thng, cy th mc, form nhp liu v hiu v VBA (phiu nhp xut, thu chi): 3 im

3. 4.

To c Ribon ngi dng cho file s dng nh cc Tab, Group, Control : 3 im C hay, sng to: 2 im

Ng.Ng.Minh

TO RIBON NGI DNG

RIBON
GV: Nguyen Ngoc Minh Email: minhhoangtell@yahoo.com
Ng.Ng.Minh

TO RIBON NGI DNG


Gi s ta mun to mt Ribon nh sau:

Nu bn mun thay i giao din Ribbon trong Excel 2010, bn phi thm RibbonX (xml) vo file customUI14.xml bn trong tp tin Excel ca bn.

Ng.Ng.Minh

TO RIBON NGI DNG


Trc tin bn kim tra xem my bn c phin bn NET framework 3 hoc 4 cha, sau bn ci Custom UI Editor For Microsoft Office (trnh son tho giao din ngi dng ty chnh). y l phin bn ca giao din ngi dng Custum Editor cung cp cho bn mt ty chn chn mt tp tin customUI14.xml cho Excel 2010 (nu Excel 2007 th l customUI.xml)
Khi m trnh son tho giao din ngi dng ty chnh, bn s thy rng c 5 nt menu trn trnh n thanh cng c nh sau.

Open: M file Excel m bn mun chnh sa (thay i giao din Ribbon cho tp tin ny) Save: Lu RibbonX trong tp tin m bn m trong trnh son tho giao din ngi dng (Khng c th save khi tp tin c m ra trong Excel)

Ng.Ng.Minh

TO RIBON NGI DNG


Insert Icons : Chn cc biu tng ca ring bn trong tp tin (cc biu tng s c lu trong tp tin)
Validate : Xc nhn RibbonX ca bn v vy bn phi chc chn rng c khng c li chnh t Generate Callbacks : To Callback - iu ny s to ra cc macro (callbacks) cho mi hot ng bn c trong RibbonX. Chn tt c cc callbacks v sao chp chng vo trong mt m-un bnh thng trong bng tnh ca bn. Thc hin: Bn m mt tp tin Excel trong trnh son tho giao din ngi dng ty chnh, click phi vo tn tp tin v chn: Office 20120 Custom UI Part to ra cc tp tin customUI14.xml

Ng.Ng.Minh

TO RIBON NGI DNG


Cc bc thc hin:
1. M mt workbook mi v lu n di Minh_Ribon.xlsm (Excel Macro-Enabled workbook) 2. ng bng tnh dng .xlsm v d

3. M Minh_Ribon.xlsm trong trnh son tho giao din ngi dng ty chnh
4. Nhp chut phi vo tn tp tin trong trnh son tho giao din ngi dng ty chnh hoc s dng menu Insert 5. Chn "Office 2010 Custom UI Part" to ra cc tp tin customUI.xml 6. Dn RibbonX di y trong ca s bn phi <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <customUI onLoad="RibbonOnLoad" xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon startFromScratch="true"> Ng.Ng.Minh

TO RIBON NGI DNG


<tabs>
<tab id="T_Minh_1" label="Gioi thieu" insertAfterMso="TabHome" getVisible="GetVisible" tag="XMinh_1"> <group id="G_Minh_1" label="Noi ve chung toi"> <button id="B_Minh_1" label="Khoa KT-KT" onAction="Mar_Minh_T1_1" image="logo_khoa" /> <button id="B_Minh_2" label="Ke toan onAction="Mar_Minh_T1_2" image="Hinh_nen" /> <button id="B_Minh_3" label="Giup onAction="Mar_Minh_T1_3" image="Giup_do" /> </group> </tab> </tabs> </ribbon> </customUI> Ng.Ng.Minh Excel" do" size="normal" size="normal" size="normal"

TO RIBON NGI DNG


Bn c th kim tra xem on m trn c b li hay khng bng cch nhp chut vo nt Validate
7. Lu cc thay i ca bn trong trnh son tho giao din ngi dng ty chnh (click vo nt Save) v ng li (Chn File -> Exit) 8. M tp tin trong Excel -> chn Ribon Developer -> Visual Basic (hoc nhn Alt + F11). Chn menu Insert Module. Sao chp macro di y phn trong module: Sub Mar_Minh_T1_1(control As IRibbonControl) MsgBox " Khoa KT-KT xin chao ban ! " & Chr(13) & Chr(13) & _

"FILE CHI DUNG CHO HE DAI HOC"


End Sub Bn cng c th kim tra xem on macro trn c b li hay khng bng cch vo menu Debug, chn Compile VBAProject

Ng.Ng.Minh

TO RIBON NGI DNG


9. Lu cc thay i ca bn v ng li
By gi bn c th kim tra xem kt qu lm. M file Minh_Ribon, bn s thy to c mt ribon nh sau:

V khi vo Ribon Gioi thieu, nhn Button Khoa KT-KT, bn s thy macro c thc thi nh hnh bn phi.

Ng.Ng.Minh

TO RIBON NGI DNG


Tuy nhin, Custom UI Editor For Microsoft Office li khng h tr Unicode. Vy l sao c giao din ting Vit?
Nu ch bn s thy Excel 2010 l cc file zip, v vy nu bn thay i phn m rng thnh zip v m cc tp tin trong chng trnh zip ca bn, bn thy rng c mt vi th mc bn trong zip.

Nn bn cn lm thm cc bc sau:
1. M trnh son tho giao din ngi dng ty chnh m file Minh_Ribon.xlsm v dng bng m TCVN3 (ABC) hoc VNI Windows a on m vo.

2. i ui file t Minh_Ribon.xlsm thnh Minh_Ribon.xlsm.zip (ch l i ui thi, ch khng nn file).


3. Dng WinRar hoc Winzip m file Minh_Ribon.xlsm.zip (ch l khng c gii nn). M ti th mc \customUI, chn file customUI14.xml, bm nt Extract to n ni cn lu file customUI14.xml.

Ng.Ng.Minh

TO RIBON NGI DNG


4. Dng NotePad m file customUI14.xml (n nm trong th mc m bn Extract to, nh chn All file), sau dng Unikey (Nhn Ctr+Shift+F6) convert chui sang Unicode, coppy on convert ny thay th cho chui c trong file customUI14.xml v lu li.
5. Trong ca s Winrar (Winzip), chn nt "Add" v tm ti file customUI14.xml ri chn "OK". 6. i ui file t Minh_Ribon.xlsm.zip thnh Minh_Ribon.xlsm. 7. M file Minh_Ribon.xlsm ln kim tra xem Ribon c thc thi ting vit cha.

Ng.Ng.Minh

TO RIBON NGI DNG


Vy lm th no a cc biu tng ca ring ti vo trong Ribbon?
Bn hy thc hin cc bc sau:
1. Trc ht bn phi c cc file hnh nh dng Png hoc Icon

2. M tp tin Minh_Ribon.xlsm trong trnh son tho giao din ngi dng ty chnh
3. Click chut phi vo customUI14.xml, chn Insert Icons (hoc vo menu Insert chn Icons) chn cc file hnh nh ca bn vo s thy n ngay di customUI14.xml. Nu khng thy th bn hy nhn vo nt + ngay trc customUI14.xml. 4. Nu file nh bn l logo_khoa th on m s l image="logo_khoa" (ch l image ch khng phi l imageMso nh v l icon ca Microsoft)

Thc hin xong cc cng vic trn. Nu m file Minh_Ribon.xlsm m bn thy kt qu nh trn l bn thnh cng bc u.

Ng.Ng.Minh

VBA EXCEL
GV: Nguyen Ngoc Minh Email: minhhoangtell@yahoo.com
Ng.Ng.Minh

VBA EXCEL
VBA (Visual Basic for Application) l ngn ng c Microsoft pht trin dnh ring cho cc ng dng thuc b Office vi mc ch xy dng cc ng dng phc tp. VBA trong MS Excel l mt phn trong . VBA s dng ngn ng lp trnh Visual Basic, mt ngn ng lp trnh tng i d s dng v ph bin nht th gii.

Cu trc ca mt d n VBA:
M-un chun (Module): l ni cha cc m lnh khai bo, cc chng trnh con (hm v th tc) M-un lp (Class Module): l ni cha nh ngha cho cc lp ca d n UserForm: l giao din dng hp thoi gip cho vic giao tip gia ngi s dng v chng trnh c thun tin. M mt d n VBA: Cho hin th Ribon Developer (Vo File/Option/Customize ribon -> chn Maintab -> check vo Developer). Chn Tab Developer/Visual Basic (hoc nhn Alt+F11)

Ng.Ng.Minh

VBA EXCEL
Ca s VBA:

Ng.Ng.Minh

VBA EXCEL
1. Thanh trnh n (Menu bar):
Cha tt c cc la chn cn thit thao tc vi VBA:

2. Ca s d n (Project Explorer Window):


Lit k di dng cy phn cp cc d n hin ang c m trong VBA v cc thnh phn c trong trong d n

3. Ca s m lnh (Code Window):


Ngi dng c th hiu chnh m lnh, to ra m lnh mi trong ca s m lnh.

4. Ca s tra cu i tng (Object Browser Window):


Hin th cc lp, phng thc, thuc tnh, s kin v hng s c trong th vin i tng v trong d n m ngi dng va to.

Ng.Ng.Minh

VBA EXCEL
5. Ca s i tng trc quan (Visual Object Window):
Cho php ngi dng thao tc trn cc iu khin mt cch d dng v thun tin

6. Hp cng c cha iu khin (Tool Box):


Cha cc thanh cng c gip ngi dng c th chn cc iu khin vo ca s ngii dng (UserForm).

7. Ca s thuc tnh (Properties Window):


Ca s ny lit k tt c cc thuc tnh ca i tng, qua ngi dng c th tham kho v thay i cc thuc tnh khi cn.

Ng.Ng.Minh

VBA EXCEL
Sub - Function :
VBA ch yu dng to cc Sub (th tc) hay cc Function (hm). S khc bit gia Sub v Function l : Sub thi hnh mt khi lnh no v khng c gi tr tr v v ch c th gi Sub t mt Sub hay Function khc. Function cng thi hnh mt khi lnh nhng n c gi tr tr v v c th gi Function c Sub, Function khc hay gi trong Form, Macro.

Phng thc (Method) v thuc tnh (Property):


Phng thc: thc thi mt hnh ng no Thuc tnh: m t v gi tr n ang c, ta c th ly gi tr tr v hay xc lp thuc tnh (tr nhng thuc tnh ch c) Vd: Me.Phai = Nam (ta c th ly hay gn gi tr cho n) Me.Listbox.AddItem (n chng tr v gi tr no c)

Ng.Ng.Minh

VBA EXCEL
Public - Private :
Public: khi vit hm, th tc nu ta khai bo l Public th n s c th c s dng trong cc module, class khc, tm li l c th s dng mi ni. Private: ch c th s dng trong phm vi module, class hin hnh Nu khng ch r l Public hay Private th kiu mc nh l Public

Module Class:
Cc on code ta vit trong Form gi l Class. Cn cc on code ta vit trong th Module gi l Module im khc nhau c bn ca Module v Class l : Trong Module nu ta khai bo hm, th tc l Public th ta c th s dng tn hm, th tc mi ni, cn khi ta mun tham chiu n mt hm, th tc c khai bo Public trong Class th ta phi s dng phng thc: Tn Form.Tn hm, th tc

Ng.Ng.Minh

VBA EXCEL
Cc kiu d liu trong VBA :
Kiu d liu Byte Integer Long Single Double Boolean 1 byte 2 bytes 4 bytes 4 bytes 8 bytes 1 byte Kch thc 0 > 255 -32,768 > 32,767 -214,763,748 > 214,763,747 - 3,4 x 1038 > 3,4 x 1038 (cha c 7 s l) -1,97 x 10308 > 1,97 x 10308(cha c 14 s l) -1/ 0 hoc True/ False (tng ng kiu Yes/ No trong Table) 165.400 k t -922,3373,203,685,479 > 922,3373,203,685,477 1/1/100 > 31/12/9999 Kiu ny do ngi dng nh ngha Vng gi tr

String(variable length) 10 bytes + string length 0 231 k t String(fixed length) Currency Date Kiu ngi dng Length of string 8 bytes 8 bytes x

Ng.Ng.Minh

VBA EXCEL
Khai bo bin:
Dim <Tn bin> As <Kiu bin> Vd: Dim a As Integer => Tc khai bo bin a l kiu s nguyn

Khai bo hng (gi tr c nh):


Dng Const Vd: Const Pi = 3.14

Ng.Ng.Minh

VBA EXCEL
Phng php quy chiu n d liu trong Excel: - n 1 sheet
i n sheet th N: SheetN, Sheets(N), WorkSheetN, WorkSheets(N) i n sheet c tn l M: Sheets(M), WorkSheets(M)

- n 1 cell: SheetM.Cells(hng, ct) => i n trong sheet c tn SheetM WorkSheets(N).Cells(hng, ct) => i n trong sheet th N -Thm 1 dng trong sheet: SheetM.Rows(i).Insert => Chn thm 1 dng v tr hng i

-Xa 1 dng trong sheet: SheetM.Rows(i).Delete => Xa 1 dng v tr hng i

Ng.Ng.Minh

VBA EXCEL
-Thm 1 ct trong sheet:
SheetM.Columns(i).Insert => Chn thm 1 ct v tr hng i

-Xa 1 ct trong sheet:


SheetM.Columns(i).Delete => Xa 1 ct v tr hng i

Khai bo hm:
Function<Tn hm>([Tn bin] As [Kiu bin]) - Cc khai bo bin cc b - Cc lnh ca hm End Function

Ng.Ng.Minh

VBA EXCEL
Khai bo th tc:
Sub<Tn th tc>([Danh sch bin]) - Cc khai bo bin cc b - Cc lnh ca hm End Sub V d: To hm tnh giai tha Function MGT(n As Byte) As Long Dim i As Byte MGT = 1 For i = 1 To n MGT = MGT * i Next i End Function BT: Lp hm tnh Xn

Ng.Ng.Minh

VBA EXCEL
Cc cu trc iu khin:
Cu trc tun t: C dng: - Cu lnh 1 - Cu lnh 2
If < iu kin > then Cc cu lnh End If Cu trc phn nhnh: If <iu kin> Then Cc cu lnh nu iu kin ng Else Cc cu lnh nu iu kin sai End If

Ng.Ng.Minh

VBA EXCEL
Cu trc la chn Select Case : Select Case <Biu thc kim tra> Case <Tha mn gi tr 1> [Cc lnh nu kim tra tha mn gi tr 1] Case <Tha mn gi tr 2> [Cc lnh nu kim tra tha mn gi tr 2] . Case Else [Cc lnh nu kim tra khng tha mn cc gi tr trn] End Select Vng lp While...Wend: Vng lp s thc lnh "nhm_lnh" nu "iu_kin" vn cn ng. While iu_kin nhm_lnh Wend

Ng.Ng.Minh

VBA EXCEL
V d: Tnh tng 100 s u tin: Dim i, N, S As Integer N = 100 S=0 i=1 While i < N S=S+i i=i+1 Wend MsgBox "Tong cua 50 so tu nhien dau tien la: " & S

Ng.Ng.Minh

VBA EXCEL
Cu trc Do While Loop: Vng lp thc hin cho n khi no iu kin vn cn ng. Do While <iu kin> [Cc lnh nu iu kin ng] Exit Do Loop Vd: Hin ln 10 dng Dim i As Byte, MString As String i=1 Do While i <= 10 MString = MString & "Dong: " & i & vbNewLine i=i+1 Loop MsgBox MString

Ng.Ng.Minh

VBA EXCEL
Cu trc Do Until Loop: Vng lp thc hin cho n khi no gp iu kin ng. Do Until <iu kin> [Cc lnh nu iu kin khng tha mn] Exit Do Loop Cu trc Do Loop While: Tng t Do While Loop, nhng c th khng thc hin ln no. Do [Cc lnh] Exit Do Loop While <iu kin> Cu trc Do Loop Until: Ngc li vng lp Do Loop While Do [Cc lnh] Exit Do Loop Until <iu kin>

Ng.Ng.Minh

VBA EXCEL
V d: Tnh tng cc s l t 1 n 100 Sub MCongsole() Dim i As Integer, Ketqua As Integer i=1 Do Ketqua = Ketqua + i i=i+2 Loop Until i > 100 ActiveSheet.Range("A1") = Ketqua End Sub

Ng.Ng.Minh

VBA EXCEL
Cu trc lp xc nh: For For <Bin>=<Gi tr u> To <Gi tr cui> [Step<bc>] [Cc lnh] Exit For Next <Bin> V d: S dng vng lp For, tnh tng 100 s t nhin u tin Sub TinhTong() Dim i, N, S as Integer N=100 S=0 i=1 For i=1 to N Step 1 S= S+i Next i MsgBox Tng 100 s t nhin u tin l: & S End Sub Ng.Ng.Minh

TO FORM

FORM
GV: Nguyen Ngoc Minh Email: minhhoangtell@yahoo.com
Ng.Ng.Minh

TO FORM
Phn ny hng dn bn to mt Form ngi dng trong Excel
V d chng ta s Userform nh sau:

Ng.Ng.Minh

TO FORM

Cch to Userform
- Cho hin th Ribon Developer (Vo File/Option/Customize ribon -> chn Maintab -> check vo Developer).

- Chn Tab Developer/Visual Basic (hoc nhn Alt+F11)


-Chn menu Inset/UserForm Ca s hin ln nh sau: Nu hp cng c khng t ng xut hin, click vo View v sau chn Toolbox

Ng.Ng.Minh

TO FORM
Gii thiu v hp thoi Toolbox:
Label - Nhn Textboxes - Hp vn bn Listbox Hp danh sch Combobox Hp chn Checkbox - Hp kim Option button - Nt la chn Frames - Khung Command button Nt lnh

Spin button Nt Spin


ScrollBar Thanh cun

Ng.Ng.Minh

TO FORM
Thay i tn v thuc tnh: Nhn chut phi , sau chn vo Properties thc hin
Label (Nhn) : Cc ch nh i hc k ton 4, Kho st ngh nghip, h tn l Label

Chn ch A trn hp Toolbox, sau vch 1 ng trong form, g ch vo, v nh dng li bng cch: Chn label mun nh dng, nhn chut phi, sau chn vo Properties thc hin

Ng.Ng.Minh

TO FORM
Mt s thuc tnh chnh:
Name tn

Caption: th hin ln
Backcolor: mu nn BackStyle: kiu nn Enabled: C th thc hin Font: Kiu ch Forecolor: Mu ch Picture: Chn nh nn Visible: hin ln

Ng.Ng.Minh

TO FORM
Texbox: Chn k hiu abl
Mt s thuc tnh:
ControlSoure: D liu a vo
ControlTiptext: Hng dn hin ln TextAlign: Canh on text Locked: Kha ScrollBars: C cho thanh cun hay khng (trng hp ni dung qu di). WordWrap: C cho php ch t ng xung dng khng.

Ng.Ng.Minh

TO FORM
Image: Hnh chn l hiu
Mt s thuc tnh:
PictureSizeMode: Chn c hnh
SpecialEffect: Chn hiu ng c bit

ComboBox: Hp chn
Mt s thuc tnh:
BoundColumn: Ct ly gi tr ColumnCount: S ct cho hin ln ColumnHeads: Tiu ct ColumnWiths: rng cc ct

ControlSoure: Ni d liu a vo Ng.Ng.Minh

TO FORM
ComboBox: Hp chn
Mt s thuc tnh:
BoundColumn: Ct ly gi tr ColumnCount: S ct cho hin ln

ColumnHeads: Tiu ct
ColumnWiths: rng cc ct ControlSoure: Ni d liu a vo DropbuttonStyle: Kiu nt s xung ListRow: S dng s xung ListStyle: Kiu danh sch RowSource: Ni d liu a ly (ngun) TabIndex: Th t

Ng.Ng.Minh

TO FORM
ListBox: Hp danh sch
Mt s thuc tnh:
Tng t ComboBox, tuy nhin chim nhiu din tch v danh sch c sn trn form

MultiPage: To trang
Mt s thuc tnh:
TabOrienTation: Chn kiu Tab

Ng.Ng.Minh

TO FORM
Frame: Lm vic vi nhm
Mt s thuc tnh:
OptionButton: Nt Option MousePointer: Chn kiu chut ScrollBar: Cho thanh cun hin ln GroupName: Tn Group

Ng.Ng.Minh

TO FORM
ToggleButton: Nt Toggle: chn kiu thay phin

SpinButton: Nt Spin: tng gim gi tr


Mt s thuc tnh:
Max: Gi tr ln nht Min: Gi tr nh nht

SmallChange: Gi tr mi ln thay i.

ScrollBar: Thanh cun:


Mt s thuc tnh:
Tng t nt Spin, nhng c thanh cun gia.

Ng.Ng.Minh

V D V VBA & FORM


GV: Nguyen Ngoc Minh Email: minhhoangtell@yahoo.com
Ng.Ng.Minh

TO FORM NG NHP
VD1: To mt Form ng nhp nh sau:

- Cho hin th Ribon Developer (Vo File/Option/Customize ribon -> chn Maintab -> check vo Developer). - Chn Tab Developer/Visual Basic (hoc nhn Alt+F11) -Chn menu Inset/UserForm

Ng.Ng.Minh

TO FORM NG NHP
- Click chut phi vo Form, chn Propties. Hp thoi Propertis xut hin:
Mc (Name): t tn Form, VD: FrmDangnhap Caption: Tiu Form th hin ln, VD: Dang nhap he thong Sau ta a cc i tng vo Form - Tn ca cc i tng trong v d minh ha: Text Tn ng nhp: Txttendangnhap Text Mt khu: Txtmatkhau Nt ng nhp: Cmddangnhap Nt thot: Cmdthoat

Ng.Ng.Minh

TO FORM NG NHP
Double Click chut vo Form, a on m lnh vo:
Phng thc khi ng: Private Sub UserForm_Click() Tt thanh trng thi:

Application.StatusBar = FALSE
Gn thng tin vo tiu : Application.Caption = "KE TOAN EXCEL - Giang vien: Nguyen Ngoc Minh"

Tt thanh cun:
Application.DisplayScrollBars = FALSE Di chuyn n sheet c tn l MAIN Application.Sheets("MAIN").Select End Sub

Ng.Ng.Minh

TO FORM NG NHP
Double Click chut vo Nt ng nhp, a on m lnh vo:
Phng thc ng nhp h thng:

Private Sub Cmddangnhap_Click()

Khai bo bin
Dim USERNAME, PASSWORD As String Dim i As Integer Dim TIMTHAY As Boolean Di chuyn n worksheet c tn l "Soure" Worksheets("Soure").Select Gn gi tr ban u cho bin TIMTHAY TIMTHAY = False

Ng.Ng.Minh

TO FORM NG NHP
Bt u kim tra tn v mt khu:
i = 27 a gi tr u tin vo bin USERNAME = Range("A" & i).Value

Khi bin USERNAME c gi tr khc rng, tc l c thnh vin


Do While USERNAME <> "" Ly gi tr dng i, ct A gn vo bin USERNAME USERNAME = Range("A" & i).Value Ly gi tr dng i, ct B gn vo bin PASSWORD PASSWORD = Range("B" & i).Value

Ng.Ng.Minh

TO FORM NG NHP
Kim tra tn ng nhp v mt khu:
If (LCase(Trim(Me.Txttendangnhap.Value)) = USERNAME) And (LCase(Trim(Me.Txtmatkhau.Value)) = PASSWORD) Then Nu c gn gi tr cho bin TIMTHAY = TRUE TIMTHAY = True v thot ra khi vng lp, khng cn tm na. Exit Do End If

Nu khng tm thy, i n dng k tip


i=i+1 Loop Sau khi thot khi vng lp, kim tra li bin TIMTHAY If TIMTHAY = True Then

Ng.Ng.Minh

TO FORM NG NHP
ng Form v tr vo Excel
Unload Me Else Nu tm khng thy th ln nhc nh v xa gi tr trong cc Texbox

Title = "Nhap lai:"


MSG = "Sai roi ban oi!" & Chr(13) & " Nhap lai nhe? " Response = MsgBox(MSG, 0 + 64, Title) Me.Txttendangnhap.Value = "" Me.Txtmatkhau.Value = "" Di chuyn vo li Text ng nhp Me.Txttendangnhap.SetFocus End If End Sub Ng.Ng.Minh

TO FORM NG NHP
Phng thc kim tra khong trng tn ng nhp
Private Sub Txttendangnhap_Change() Khai bo bin Dim i, Dai As Integer

Dim KYTU As String


With Me Dai = Len(.Txttendangnhap.Value) Kim tra tng k t trong chui ng nhp For i = 1 To Dai Ly ra 1 k t ti v tr th i KYTU = Mid(.Txttendangnhap.Value, i, 1)

Nu l k t trng
If KYTU = " " Then Ng.Ng.Minh

TO FORM NG NHP
Hin th hp thoi thng bo
MsgBox Tn ng nhp khng cho php c khong trng!", vbOKOnly, K ton Excel" Ri xa Textbox .Txttendangnhap.Value = "" Di chuyn vo li Text ng nhp .Txttendangnhap.SetFocus Thot khi vng lp

Exit For
End If Next i End With End Sub

Ng.Ng.Minh

TO FORM NG NHP
Phng thc kha mn hnh
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = 0 Then Cancel = True End Sub

Thot v Window
Private Sub cmdThoat_Click() Application.Quit End Sub

Ng.Ng.Minh

T NG THI HNH LNH KHI M FILE


T ng thi hnh lnh khi m file:
Vo VBA, Double vo ThisWorkbook, ri a on m lnh sau vo: Private Sub Workbook_Open() Khi m file, t ng gi Form ng nhp, sau gi form c tn l FrmMain

FrmDangnhap.Show
FrmMain.Show Ri hin thng bo Title = "Khoa KT-KT:" MsgBox " " Khoa KT-KT xin chao ban ! " & Chr(13) & Chr(13) & _

FILE CHI DUNG CHO HE DAI HOC

", vbInformation, Title

Chn sheet c tn l A_MENU

Sheets("A_MENU").Select

Ng.Ng.Minh

T NG THI HNH LNH KHI M FILE


Kha thanh cun, ch cho gii hn t D4->S28
ActiveSheet.ScrollArea = "" ActiveSheet.ScrollArea = "$D$10:$S$28" Gn phm tt gi Macro (phm Shift+F4 gi Macro c tn l Minh)

Application.OnKey "+{F4}", "Minh"


End Sub

Ng.Ng.Minh

TO CY TH MC
VD2: To mt Cy phn h chng t nh sau:
lm c cy th mc trc ht Toolbox bn phi c TreeView v ImageList. => Bn vo Tool (hoc click chut phi vo Toolbox), chn Additional Controls, ri chn 2 mc sau:

Ng.Ng.Minh

TO CY TH MC
Khi bn s thy trn Control c thm 2 cng c nh trn hnh v.
Bn chn TreeView, ri v ln Form ni bn mun to cay th mc. Sau chn ImageList v cng v ln Form

Ng.Ng.Minh

TO CY TH MC
Trong hp thoi Properties ca ImageList, chn mc Custom (Trong v d ny c tn l MinhImageList) => Xut hin hp thoi Property Pages
- Ti Th General chn Option 16x16

- Qua th Images, vo Insert Picture chn hnh mun c ti u cy th mc


* Ch l Cp ca n c th hin mc Index * Nu khng mun th bn chn Remove Picture

Ng.Ng.Minh

TO CY TH MC
By gi bn g on Code sau cho Form:
Private Sub UserForm_initialize() Khai bo bin Dim NodeX As Node

Khai bo s dng ImageList trong TreeView


MinhTreeView.ImageList = MinhImageList To cc nt trong TreeView Set NodeX = MinhTreeView.Nodes.Add(, , "CV5", "Tai san co dinh", 1) Set NodeX = MinhTreeView.Nodes.Add("CV5", tvwChild, "CV5_1", "Tang tai san", 2) Set NodeX = MinhTreeView.Nodes.Add("CV5_1", tvwChild, "CV5_1_1", "Mua moi tai san", 3)

Set NodeX = MinhTreeView.Nodes.Add("CV5_1", tvwChild, "CV5_1_2", "Danh gia lai", 3) Ng.Ng.Minh

TO CY TH MC
Set NodeX = MinhTreeView.Nodes.Add("CV5", tvwChild, "CV5_2", "Giam tai san", 2)
Set NodeX = MinhTreeView.Nodes.Add("CV5", tvwChild, "CV5_3", "Khau hao tai san", 2) End Sub Xong bn chy th Form bn s thy hot ng tng t cy th mc. Tc bn Doubeclick th th mc con s bung ra, click ln na th n s thu li.

Tuy nhin, n y bn vn cha ng dng vo cng vic c.


Vy lm sao khi ta click, th n s thc thi mt cng vic no ? Bn hy gn on Code sau vo:

Ng.Ng.Minh

TO CY TH MC
Private Sub MinhTreeView_Click()
Khai bo bin lu tr mc c chn trn Treeview Dim MenuIndex As String Gn gi tr ca mc c chn trn Treeview vo bin MenuIndex MenuIndex = MinhTreeView.SelectedItem.Key X l cc trng hp Select Case MenuIndex Case "CV5_1_1"

FrmPhieuThu.Show
Case "CV5_1_2" MainForm.Show End Select End Sub

Ng.Ng.Minh

CHUYN MN HC

HAVE A GOOD TIME! BYE BYE


Email: minhhoangtell@yahoo.com

Ng.Ng.Minh

Anda mungkin juga menyukai