Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 90

NỘI DUNG

• Sơ lược về VBA
1 • Các thao tác VBA

• Các toán tử và hàm trong VBA


2 • Ví dụ

• Tạo các chương trình con tính toán dầm, cột,


3 vách, móng

• Làm việc với biểu đồ excel, user form


4
MARCO
 ĐỊNH NGHĨA :
Khi làm việc trong Excel, đôi lúc gặp phải những tình huống mà người sử dụng
phải lặp đi lặp lại rất nhiều thao tác để thực hiện các nhiệm vụ tương tự nhau, ví dụ
như thường xuyên phải định dạng dữ liệu thành một kiểu bảng giống nhau. Điều
này rất dễ dẫn đến sự nhàm chán trong công việc. Do đó, khi thiết kế Excel,
Microsoft đã đưa ra khái niệm Macro để có thể gói gọn tất cả các thao tác ấy vào
một thao tác duy nhất.

 VÍ DỤ :
Tạo lệnh tắt viền đậm 1 ô
Developer => record marco => đặt tên lệnh tắt => thực hiện thao tác (produre) =>
stop record => macro => edit
Thử nghiệm
TẠO MỚI 1 HÀM TRONG EXCEL

Tại sao lại tạo hàm mới ???


FUNCTION (HÀM)
 ĐỊNH NGHĨA :
Là một chương trình con, trả về 1 giá trị khi nó được gọi

 VÍ DỤ :
‘Tạo hàm tính chu vi hình chữ nhật
Function tinhcvcn(a,b)
chuvi=(a+b)*2
tinhcvcn=chuvi
End function
SUB (THỦ TỤC)
 ĐỊNH NGHĨA :
Là 1 chương trình con không trả về 1 giá trị khi nó được gọi

 VÍ DỤ :
Sub tinhdtcn ()
a=1
b=1
Dientich=a*b
Msgbox (“Dientich =” & str(Dientich))
End sub
MỐI LIÊN HỆ GIỮA SUB VÀ FUCTION

Lồng Function vào Sub


Ví dụ :
Sub tinhcvcn
a=1
b=1
c=tcvhcn(a,b)
Msgbox (“c=” & str(c))
End sub
CÁCH ĐƯA DỮ LIỆU VÀO CHƯƠNG TRÌNH

 DẠNG ĐƠN
a = Range(“A3”) (comment : dùng đặt biến Rb, Rs)
b = Cells(row,column) (dùng cho giá trị chạy ví dụ : M,N,V)

 DẠNG CHUỖI
Range(“B2:C3”)=9 (dùng copy, insert hàng cột)
TẠO GIAO DIỆN TRONG EXCEL

 Tham khảo các chương trình đã làm


NỘI DUNG
9

• Giới thiệu các hàm trong VBA


1 • Nắm vững các hàm VBA qua các ví dụ

• Hoàn thiện chương trình tính thép cho CKCU


2

• Viết chương trình tính thép và khả năng chịu lực


3 của cột 1 phương ( 1 lớp cốt thép )

• Nghiên cứu viết chương trình tính thép cho dầm


4 với nội lực xuất từ ETABS
TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678
CÁC HÀM THÔNG DỤNG
10

CẤU TRÚC ĐIỀU KIỆN

CẤU TRÚC LỰA CHỌN

CẤU TRÚC LẶP

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC ĐIỀU KIỆN
11

1) Công thức :

2) Sơ đồ khối :

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC ĐIỀU KIỆN
12

1) Công thức :

2) Sơ đồ khối :

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC ĐIỀU KIỆN
13

Ví dụ :
Trong chương trình tính thép cho CẤU KiỆN CHỊU UỐN:

‘ điều kiện anpha < anphaR hay  < R


anpha = M / (Rb * 1000 * B * ho ^ 2)
If anpha <= anphar Then
Si = 1 - Sqr(1 - 2 * anpha)
As1 = Si * Rb * B * ho / Rs
Else
MsgBox ("CHUYEN SANG BAI TOAN DAT COT KEP HOAC TANG TIET
DIEN")
End If

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LỰA CHỌN
14

1) Công thức :

2) Sơ đồ khối :

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LỰA CHỌN
15

Ví dụ : lựa chọn các điều kiện khi tính cho các tiết diện khác nhau trong
chương trình tính toán cấu kiện chịu uốn :
Sub luachon()
Select Case Cells(2, 1)
Case 1
MsgBox "A"
Case 2
MsgBox "B"
Case Else
MsgBox "E"
End Select
End Sub

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
16

VÒNG LẶP XÁC


XÁC ĐỊNH

VÒNG LẶP XÁC


KHÔNG XÁC
ĐỊNH

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
17

VÒNG LẶP XÁC ĐỊNH :


1 ) Công thức :

2 ) Ví dụ :
tính 10!
giaithua=1
for i= 1 to 10
giaithua=giaithua*i
next i

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
18

VÒNG LẶP XÁC ĐỊNH :


Ví dụ (tt) :
‘hàm lặp lồng if
tong = 0
For i = 1 to 10 step 2
tong= tong +i
if tong >5 then
exit for
end if
Next I
Msgbox tong

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
19

VÒNG LẶP XÁC ĐỊNH :


Ví dụ (tt) :
‘tra bảng 1 phương với IL=0.03, z=8

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
20

VÒNG LẶP XÁC ĐỊNH :


Ví dụ (tt) :
‘tra bảng 1 phương với IL=0.03, z=8

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
21

VÒNG LẶP XÁC ĐỊNH :


Ví dụ (tt) :
‘tra bảng 1 phương
IL=0.03
z= 8
For i = 17 to 26
if IL=cells(5,i) then
exit for
end if
Next i
For j = 6 to 16
if (cells(j,15)<=z and cells(j+1,15)>z) then
gtl=cells(j,i)+(cells(j+1,i)-cells(j,i))/(cells(j+1,15)-cells(j,15))*(z-cells(j,15))
end if
Next j

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
22

VÒNG LẶP XÁC ĐỊNH :


Ví dụ (tt) :
‘tra bảng 1 phương
IL=0.03
z= 5
For j = 6 to 16
For i = 17 to 26
if IL=cells(5,i) then
exit for
end if
Next I

if (cells(j,15)<=z and cells(j+1,15)>z) then


gtl=cells(j,i)+(cells(j+1,i)-cells(j,i))/(cells(j+1,15)-cells(j,15))*(z-cells(j,15))
end if
Next j
TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678
CẤU TRÚC LẶP
23

VÒNG LẶP XÁC ĐỊNH :


Ví dụ (tt) :
‘tra bảng 2 phương với IL=0.05, Z=8

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
24

VÒNG LẶP XÁC ĐỊNH :


Ví dụ (tt) :
‘tra bảng 2 phương với IL=0.05, Z=8

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
25

VÒNG LẶP XÁC ĐỊNH :


Ví dụ (tt) :
‘tra bảng 2 phương với IL=0.05, Z=8

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
26

VÒNG LẶP XÁC ĐỊNH :


Ví dụ (tt) :
‘tra bảng 2 phương với IL=0.05, Z=8 (CÁCH 1)
For i = 2 to 10
if (cells(5,i)<=IL and cells(5,i)>IL) then
exit for
end if
Next i

For j = 6 to 16
if (cells(j,1)<=z and cells(j+1,1)>z) then
exit for
end if
Next j
TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678
CẤU TRÚC LẶP
27

VÒNG LẶP XÁC ĐỊNH :


Ví dụ (tt) :
‘tra bảng 2 phương với IL=0.05, Z=8 (CÁCH 1)

A=cells(j,i)+(cells(j,i+1)-cells(j,i)) / (cells(5,i+1)-cells(5,i))) * (IL-cells(5,i))

B=cells(j+1,i)+(cells(j+1,i+1)-cells(j+1,i)) / (cells(5,i+1)-cells(5,i)) * (IL-cells(5,i))

C=A+(B-A) / (cells(j+1,1)-cells(j,1)) * (z-cells(j,1))

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
28

VÒNG LẶP KHÔNG XÁC ĐỊNH :


A) Lặp trong khi biểu thức điều kiện là true
Công thức :

Ví dụ :
tong=0
i=0
Do while tong<10
i=i+1
tong = tong +i
Loop
Msgbox(str(tong))

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


CẤU TRÚC LẶP
29

VÒNG LẶP KHÔNG XÁC ĐỊNH :


B) Lặp cho đến khi biểu thức điều kiện là False
Công thức :

Ví dụ :
Do Until
Loop

TÀI LIỆU www.mediafire.com/ USERNAME - giaqui@yahoo.com PASS- 12345678


NỘI DUNG

• VIẾT CHƯƠNG TRÌNH TÍNH TOÁN CỘT LỆCH


TÂM PHẲNG (1 LỚP CỐT THÉP)
1

• VIẾT CHƯƠNG TRÌNH TÍNH TOÁN CỘT LỆCH


2 TÂM PHẲNG (NHIỀU LỚP CỐT THÉP)

• VIẾT CHƯƠNG TRÌNH TÍNH THÉP CHO DẦM


VỚI KẾT QUẢ XUẤT TỪ ETABS
3
CỘT LỆCH TÂM PHẲNG
TÍNH TOÁN CỐT THÉP :
Xác định những thông số cần thiết từ lưu đồ :
1) lamda
=> nuymin, 
2) Nth ( S, Kdh, Js, Jb, lo)
=> 
3) x
=> xác định trường hợp t thép (LT lớn, LT bé)
4) nuy ( xác định được nơi bắt đầu và kết thúc vòng lặp)
=> giá trị nuy hợp lí
CỘT LỆCH TÂM PHẲNG
TÍNH TOÁN CỐT THÉP : ( giải quyết vòng lặp thỏa )

For i = 1 to 1000
nuy1=nuy (giả sử)
[ Khối lệnh ]
=> nuy2
If Abs(nuy2 - nuy1) / nuy1 < 0.01 Then
nuy = nuy2
Exit For
Else
nuy = (nuy1 + nuy2) / 2
End If
Next i
CỘT LỆCH TÂM PHẲNG
TÍNH TOÁN CỐT THÉP ( giải quyết vòng lặp thỏa )

TS = 0.05
Do while TS > 0.01
nuy1=nuy (giả sử)
[ Khối lệnh ]
=> nuy2
TS = Abs(nuy2 - nuy1) / nuy1
nuy= (nuy2+nuy1) / 2
Loop
CỘT LỆCH TÂM PHẲNG
LI THUYẾT:

N  Rbbx  Rs A 's  Rs As
M gh  Rbbx(ho  0.5 x)  Rsc A 's (ho  a )
CỘT LỆCH TÂM PHẲNG
VẼ BIỂU ĐỒ TƯƠNG TÁC:

1) CHUẨN BỊ VÙNG DỮ LIỆU


2) CHUẨN BỊ SỐ LIỆU
3 ) XỬ LÍ ĐỒ THỊ
CỘT LỆCH TÂM PHẲNG NHIỀU
LỚP CỐT THÉP

thế nào là dữ liệu mảng

MẢNG 1 CHIỀU
MẢNG
MẢNG 2 CHIỀU
MẢNG 1 CHIỀU
Sub thu()

Dim A (5)
A(0) = 2
A(1) = 3
A(2) = 4
A(3) = 6
A(4) = 7
A(5) = 8
C= A(1) + A(5)
Msgbox C

End Sub
MẢNG HAI CHIỀU

Dim A (2,2)

A(0,0) = 3
A(0,1) = 4
A(0,2) = 6
A(1,0) = 6
A(1,1) = 8
A(1,2) = 8
A(2,0) = 6
A(2,1) = 8
A(2,2) = 8
NHẬP DỮ LIỆU CHO MẢNG
Sub nhapdulieu

Dim A(10)
tong = 0

for i = 1 to 10
tong = tong + i
A(i) = tong
cells(3,i)=A(i)
next i

End Sub
CỘT LỆCH TÂM PHẲNG NHIỀU
LỚP CỐT THÉP

N  Rbbx    i Ai

M *  0.5Rbbx(h  x)    i Ai yi
CỘT LỆCH TÂM PHẲNG NHIỀU
LỚP CỐT THÉP
N  Rbbx    i Ai M *  0.5Rbbx(h  x)    i Ai yi

Theo tiêu chuẩn  sc ,u  


356-2005 đưa ra i    1   spi ( 0)
công thức thực   i 
nghiệm như sau :
1
1.1
 sc ,u Ứng suất tới hạn của cốt thép ở vùng betong chịu nén, thông thường lấy = 400MPa

    0.008Rb
x
i  Chiều cao tương đối của vùng betong chịu nén
hoi
Theo công thức trên thì tính được σi > 0 (ứng suất kéo) , σi < 0 ứng suất nén, và giá
trị σi nằm giữa –Rs < σi < Rs
CỘT LỆCH TÂM PHẲNG NHIỀU
LỚP CỐT THÉP
CỘT LỆCH TÂM PHẲNG NHIỀU
LỚP CỐT THÉP

b h
( , ) b h
2 2 ( , )
2 2

Với khoảng cách giữa các thanh thép


là delta, ta lần lượt tính được tạo độ
các thanh thép

b h
( ,  ) b h
( , )
2 2 2 2
CỘT LỆCH TÂM PHẲNG NHIỀU
LỚP CỐT THÉP
Khi đã có tạo độ các thanh
thép ta tính được ho – là
khoảng cách từ các thanh
thép đến mép chịu nén

Tiếp tục tính được y –


khoảng cách từ các thanh
thép đến trục đối xứng tiết
diện
AxM  ByM  C
d  M , (d )  
A2  B 2
CỘT LỆCH TÂM PHẲNG NHIỀU
LỚP CỐT THÉP
N  Rbbx    i Ai
M *  0.5Rbbx(h  x)    i Ai yi
CỘT LỆCH TÂM PHẲNG NHIỀU
LỚP CỐT THÉP
N  Rbbx    i Ai
M *  0.5Rbbx(h  x)    i Ai yi

Khó khăn 1 : thực hiện vòng lặp với x

Khó khăn 2 : Làm sao tìm được giá trị  A  A y


i i i i i
NỘI DUNG

• HOÀN THIỆN CHƯƠNG TRÌNH CKCU


1

• VIẾT CHƯƠNG TRÌNH TÍNH TOÁN CỘT


LỆCH TÂM PHẲNG (1 LỚP CỐT THÉP)
2

• VIẾT CHƯƠNG TRÌNH TÍNH THÉP CHO


DẦM VỚI KẾT QUẢ XUẤT TỪ ETABS
3
CỘT LỆCH TÂM PHẲNG
TÍNH TOÁN CỐT THÉP :
Xác định những thông số cần thiết từ lưu đồ :
1) lamda
=> nuymin, 
2) Nth ( S, Kdh, Js, Jb, lo)
=> 
3) x
=> xác định trường hợp t thép (LT lớn, LT bé)
4) nuy ( xác định được nơi bắt đầu và kết thúc vòng lặp)
=> giá trị nuy hợp lí
CỘT LỆCH TÂM PHẲNG
TÍNH TOÁN CỐT THÉP : ( giải quyết vòng lặp thỏa )

For i = 1 to 1000
nuy1=nuy (giả sử)
[ Khối lệnh ]
=> nuy2
If Abs(nuy2 - nuy1) / nuy1 < 0.01 Then
nuy = nuy2
Exit For
Else
nuy = (nuy1 + nuy2) / 2
End If
Next i
CỘT LỆCH TÂM PHẲNG
TÍNH TOÁN CỐT THÉP ( giải quyết vòng lặp thỏa )

TS = 0.05
Do while TS > 0.01
nuy1=nuy (giả sử)
[ Khối lệnh ]
=> nuy2
TS = Abs(nuy2 - nuy1) / nuy1
nuy=(nuy2+nuy1)/2
Loop
CỘT LỆCH TÂM PHẲNG
VẼ BIỂU ĐỒ TƯƠNG TÁC:

1) CHUẨN BỊ VÙNG DỮ LIỆU


2) CHUẨN BỊ SỐ LIỆU
3 ) XỬ LÍ ĐỒ THỊ
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS

1) VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM


2) VIẾT CODE LẤY DỮ LIỆU TỪ 1 SHEET SANG
1 SHEET KHÁC

NẮM THÊM 1 SỐ
CÔNG THỨC PHỤ TRỢ
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS

thế nào là dữ liệu mảng

MẢNG 1 CHIỀU
MẢNG
MẢNG 2 CHIỀU
MẢNG- MẢNG 1 CHIỀU

Sub thu()

Dim A (5)
A(0) = 2
A(1) = 3
A(2) = 4
A(3) = 6
A(4) = 7
A(5) = 8
C= A(1) + A(5)
Msgbox C

End Sub
MẢNG- MẢNG 2 CHIỀU

Dim A (2,2)

A(0,0) = 3
A(0,1) = 4
A(0,2) = 6
A(1,0) = 6
A(1,1) = 8
A(1,2) = 8
A(2,0) = 6
A(2,1) = 8
A(2,2) = 8
CODE PHỤ TRỢ
CODE PHỤ TRỢ (XÓA DỮ LIỆU)

VÍ DỤ XÓA DỮ LIỆU ĐẦU VÀO TRONG CHƯƠNG TRÌNH


TÍNH TOÁN CỐT THÉP CHO CẤU KIỆN CHỊU UỐN
CODE PHỤ TRỢ (COPY)
CODE PHỤ TRỢ ( ĐẾM QUA TỪNG DÒNG)
CODE PHỤ TRỢ ( ĐẾM QUA TỪNG DÒNG)

Function sohang(vung As Range) As Integer

B=0
For Each clls In vung

B=B+1

Next clls
sohang=B

End Function
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS

1) VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM

2) VIẾT CODE LẤY DỮ LIỆU TỪ 1 SHEET


SANG 1 SHEET KHÁC
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS

VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM


TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
Thực hiện 2 vòng lặp :
Vòng lặp 1 : quét qua từng ô dữ liệu
Vòng lặp 2 : so sánh, và lưu lại dữ liệu (lựa chọn và đếm)
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM
Function gtkhacnhau(vung As Range) As Integer

Dim tang(100)
Dim B As Integer, trung As Boolean, A As Integer
B=0
For Each clls In vung

Next clls

End Function
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
VIẾT HÀM ĐẾM SỐ TẦNG , SỐ DẦM
Function gtkhacnhau(vung As Range) As Integer
Dim tang(100)
Dim B As Integer, trung As Boolean, A As Integer
B=0
For Each clls In vung
SO SÁNH LƯU DỮ
trung = True
LIỆU
For A = 0 To 100
If trung = True Then
If tang(A) = clls Then
tang(B) = clls
trung = False B=B+1
Exit For End If
End If
Next A

Next clls
End Function
TÍNH TOÁN DẦM
VỚI KẾT QUẢ XUẤT TỪ ETABS
COPY DỮ LIỆU SANG 1 SHEET KHÁC
Dim tang(100)
Dim B As Integer, trung As Boolean, A As
Integer
B=0
For Each clls In vung
trung = True
If trung = True Then
For A = 0 To 100 tang(B) = clls
If tang(A) = clls Then B=B+1
[ COPY ]
trung = False End If
Exit For COPY
End If
Next A
Worksheets("sheet2").Activate
Cells(B + m, n) = tang(B)
Next clls
Function gtkhacnhau(vung As Range) As Integer
Dim tht(100)
Dim cottht As Range
Dim B As Integer, trung As Boolean, A As Integer
B=0
For Each clls In vung
trung = True
For A = 0 To 100
If tht(A) = clls Then
trung = False
Exit For
End If
Next A
NỘI DUNG

• HOÀN THIỆN CÁC


CHƯƠNG TRÌNH ĐÃ
1 HỌC

• TẠO USER FORM


2
NẮM VỮNG CODE PHU TRỢ

 Code đếm số dòng sử dụng


vi dụ

Sub sudung()
sdsudung = ActiveSheet.UsedRange.Rows.Count
MsgBox sdsudung
End sub
NẮM VỮNG CODE PHU TRỢ
 Code copy
CHỌN
vi dụ SHEET ĐỂ
Sub copy() THỰC HIỆN
Worksheets (“sheet2”).activate
Range(cells(1,1), cells(21,1)).select COPY QUA
SHEET KHÁC
Selection.copy
Worksheets(“sheet3”).activate
Range(cells(1,4), cells(21,4)).select
Activesheet.paste
End sub
LẤY DỮ LIỆU CHO DẦM
Worksheets(“sheet2”).activate
A=tang&dam
For i = batdau to ketthuc
Worksheets(“sheet1”).activate
B=tang&dam

if A=B then
dongbatdau=i
Exit for
End if
Next I
For j = dongbatdau to kethuc
Worksheets(“sheet1”).activate
B=tang&dam
if A <> B then
dongkethuc = j
Exit for
End if
Next j
GIỚI THIỆU NHỮNG THAO TÁC
TRÊN USER FORM
GIỚI THIỆU NHỮNG THAO TÁC
TRÊN USER FORM
 TẠO CHƯƠNG TRÌNH TÍNH TOÁN ĐƠN GIẢN
ví dụ 1 : TINH
Làm quen với label, textbox, và command Button
Đóng mở user form từ giao diện excel
ĐỐI TÊN TIỀN MÔ TẢ
TƯỢNG TỐ
label lbl dùng để ghi một dòng chữ vào 1 form

textbox txt dùng để hiển thị dữ liệu hoặc nhập dữ liệu vào chương trình

command cmd dùng để thực thi 1 lệnh


button

ĐỐI VỚI 1 ĐỐI TƯỢNG QUAN TRỌNG NHẤT LÀ THUỘC


TÍNH NAME VÀ CAPTION
GIỚI THIỆU NHỮNG THAO TÁC
TRÊN USER FORM
 TẠO CHƯƠNG TRÌNH TÍNH TOÁN ĐƠN GIẢN
ví dụ 1 : TINH
GIỚI THIỆU NHỮNG THAO TÁC
TRÊN USER FORM
 TẠO CHƯƠNG TRÌNH TÍNH TOÁN ĐƠN GIẢN
ví dụ 1 : TINH

Private Sub CommandButton1_Click()

a = Val(txta.Text)
b = Val(txtb.Text)
c=a+b
txtc.Text = c

End Sub
MỐI LIÊN HỆ GIỮA GIAO DIỆN
EXCEL VÀ USER FORM
 Tạo command button gọi user form

Sub GOI()
TINH.Show
End Sub

Tắt usetform
Tên userform.Hide
MỐI LIÊN HỆ GIỮA GIAO DIỆN
EXCEL VÀ USER FORM

ĐỐI TÊN TIỀN MÔ TẢ


TƯỢNG TỐ
comboBox cbo dùng tạo 1 danh sách lựa chọn
checkbox chk chỉ có 2 trạng thái true hoac false
LƯU ĐỒ TÍNH CỐT THÉP ĐỐI XỨNG CHO CỘT

e    eo  0.5  h  a x
N
Rb  b
 1
8
l /b x  2a ' x   R  ho x  2a '
 8  
N (e  ho  a ')  N (e  ho  x / 2)
1  R 
1 As 
 As  
x1   R    ho R 's (ho  a ')
N R 's (ho  a ')
1  1  ( o )2 
e
N th 
 ho 
x1  ho x1  ho
 (%)
Ne  Rbbho (ho / 2) Ne  Rbbx1 (ho  x / 2)
As  As '  As  As ' 
J b  b12
h
J s  ut bho (h / 2  a) 2 Rs (ho  a ') R 's (ho  a ')
3

As  As ' (   1)
1    100%
6.4  S  bho 
Nth  2  Eb J b  Es J s 
lo  Kdh 
  5%
LƯU ĐỒ TÍNH CỐT THÉP BẤT ĐỐI XỨNG CHO CỘT
e    eo  0.5  h  a x   R ho
As '  0 As '  0
 1
8
As '  min bho  R Rbbho  N  Rs As '
l /b As 
Rs

N e  Rs As '(ho  a ')

1 
 8 1
N Rbbho 2
N th
  1  1  2
 (%)
x1   ho
 2a '  2a '
J b  b12
h
J s  ut bho (h / 2  a) 2
3

N (e  ho  a ')  R Rbbho  N  Rs As '


As  As 
R 's (ho  a ') Rs
6.4  S 
Nth   E J
b b  Es s
J As  As ' (   1)
lo2  Kdh  1    100%
bho 
  5%
LẬP BIỂU ĐỒ TƯƠNG TÁC

BƯỚC 1: Sau khi tính được diện tích cốt thép cho
cột, chọn và bố trí cốt thép phù hợp
BƯỚC 2: tuần tự tính các đại lượng không thứ
nguyên sau
N Neo Rs As
N  M  
Rb bho Rbbh 2 o Rb bho
Rs ' As ' a' a
'  ' 
Rb bho ho ho
LẬP BIỂU ĐỒ TƯƠNG TÁC
Sau khi tính được các đại lượng không thứ nguyên
N Neo Rs As Rs ' As ' a' a
N M   '  ' 
Rbbho Rbbho Rb bho Rb bho ho ho

Với sự biến đổi =x/ho, lập các giá trị dể vẽ biều đồ tương tác

 N M
N

2a '
N     '  M  (1   ')   (1    2 ')
ho 2
2a '  N
ho
   R N     '  M   (1  )  (1   ')  ' (1   )
2 2

1   R  2  N
R    1 N     '  M   (1  )  (1   ')  ' (1   )
1  R 2 2
 N
1    1  N     '  M   (1  )  (1   ')  ' (1   )
2 2
LẬP BIỂU ĐỒ TƯƠNG TÁC
CỐT THÉP ĐỐI XỨNG CỐT THÉP BẤT ĐỐI XỨNG

You might also like