máy bơm nước hỏa tiễn công ty in ấn https://duan-knparadise.com/ Bơm nước hỏa tiễn bóp da nam Túi nilon PP cong ty in bieu mau
Mỗi tuần một hàm trong Excel! - Diễn đàn của các kỹ sư kết cấu Việt Nam










































































Features
Go Back   Diễn đàn của các kỹ sư kết cấu Việt Nam > ỨNG DỤNG TIN HỌC TRONG THIẾT KẾ XÂY DỰNG > Phần mềm thiết kế do thành viên giới thiệu
Tên thành viên
Mật mã
Tin HOT Thông tin BQT diễn đàn

Result  Reload Thống Kê - Diễn đàn của các kỹ sư kết cấu Việt Nam
All Forums | Thông báo | Văn Bản Pháp Luật | Văn Hóa Văn Nghệ Giao Lưu
Please wait...
Please wait...
Loading...
Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 16-11-2004   #1
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default Mỗi tuần một hàm trong Excel!

Chào các anh em trong diễn đàn!
Từ ngày hôm nay, tôi sẽ cố gắng post mỗi tuần một hàm Excel mà tôi đã từng dùng để tính toán thiết kế. Ai ủng hộ tôi xin hãy lên tiếng cho diễn đàn them khí thế!

'==================HÀM SỐ 1===========================
' NỘI SUY MỘT BẢNG THEO GIÁ TRỊ
'====================================================

Function TraBang2Chieu(ByVal Hang, ByVal Cot, VungChon As Range)
Dim i As Long, j As Long
Dim TangAnPha
Dim NoiSuy1 As Double, NoiSuy2 As Double

For i = 1 To UBound(VungChon.Value, 2) ' Theo phuong ngang
If Hang = VungChon(1, i) Then
For j = 1 To UBound(VungChon.Value, 1) - 1
If (Cot - VungChon(j, 1)) * (Cot - VungChon(j + 1, 1)) <= 0 Then
TangAnPha = (VungChon(j + 1, i) - VungChon(j, i)) / (VungChon(j + 1, 1) - VungChon(j, 1))
TraBang2Chieu = VungChon(j, i) + (Cot - VungChon(j, 1)) * TangAnPha
GoTo Thoat:
End If
Next j
ElseIf (Hang - VungChon(1, i)) * (Hang - VungChon(1, i + 1)) < 0 Then
For j = 1 To UBound(VungChon.Value, 1) - 1
If (Cot - VungChon(j, 1)) * (Cot - VungChon(j + 1, 1)) < 0 Then
TangAnPha = (VungChon(j, i + 1) - VungChon(j, i)) / (VungChon(1, i + 1) - VungChon(1, i))
NoiSuy1 = VungChon(j, i) + (Hang - VungChon(1, i)) * TangAnPha

TangAnPha = (VungChon(j + 1, i + 1) - VungChon(j + 1, i)) / (VungChon(1, i + 1) - VungChon(1, i))
NoiSuy2 = VungChon(j + 1, i) + (Hang - VungChon(1, i)) * TangAnPha

TangAnPha = (NoiSuy2 - NoiSuy1) / (VungChon(j + 1, 1) - VungChon(j, 1))
TraBang2Chieu = NoiSuy1 + (Cot - VungChon(j, 1)) * TangAnPha
GoTo Thoat:
End If
Next j
End If
Next i

Thoat:
'TraBang = UBound(VungChon.Value, 2)
End Function

'=====================================================

Mời các bác Copy hàm này vào Excel và sử dụng theo từng bước như sau:

1- Mở Excel
2- Nhấn Ctrl+F11
3- Insert 1 Module trong môi trường VBA
4- Copy hàm bên trên vào
5- Sử dụng như 1 hàm Excel thông thường với 3 tham số:

+ Giá trị của hàng
+ Giá trị của cột
+ Vùng giá trị của bảng

Ghi chú: Bác nào vẫn còn lơ mơ thì cứ A lô nhé
'===============================

Nguyễn Việt Anh
Phòng KCXD- IBST
047544277
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following 46 Users Say Thank You to PMXD For This Useful Post:
anhduy04 (14-04-2010), binhtv (21-04-2012), bogiaxd10 (15-12-2013), buithang187 (14-12-2013), captreo (22-12-2013), civil_092190 (28-08-2010), club7 (11-05-2011), conxinloibac (14-12-2013), doanphucgt (17-03-2012), ducthang22 (01-10-2013), duynguyenkk (29-10-2012), giangpdu90 (03-12-2015), hnducanh81 (24-07-2015), huuhoan82hd (10-05-2012), huuvu152_85 (20-08-2013), kawaicandy (31-07-2013), kinhthienvan (08-09-2013), kotrung (02-04-2015), kstu89 (16-04-2013), ktsx06a2 (17-08-2009), levanduy (13-03-2010), le_win (29-09-2012), maidacthang (28-05-2014), minhtriga (13-12-2013), newcomer7 (17-04-2013), ninja2301 (16-03-2011), nqt_forever (25-09-2010), petite (13-11-2013), phongpy (30-08-2010), son06x1d (06-09-2010), sumiscute (13-10-2010), thanhnhadoan (08-01-2013), Thegh0sTvn (22-04-2014), toan2658 (13-12-2013), toankcxd (20-12-2013), toi_khong_ti (06-07-2013), TOPDOWN2010 (08-07-2013), trungcute (03-09-2013), truongstr (05-04-2014), tuânn (06-01-2014), tulongqng (04-06-2012), viet.cons (26-11-2011), vietblo (31-05-2012), viethung30 (07-04-2015), vuvankhanh (26-08-2013), xaydungdandung (09-08-2011)
Old 16-11-2004   #2
reivietnam
Thành viên nhiệt huyết
 
reivietnam's Avatar
 
Tham gia ngày: Oct 2004
Nơi Cư Ngụ: Phú Nhuận , HCM
Bài gởi: 452
Thanks: 0
Thanked 92 Times in 32 Posts
Send a message via Yahoo to reivietnam
Default Thì Mấy Anh Em đang Chờ Xem đây !!!

Viết Nhiều Lên đi......ủng Hộ Cả Hai Tay Mà......ai Cũng Muốn Học Hỏi ở Bác Hết...vậy Nha
reivietnam vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following User Says Thank You to reivietnam For This Useful Post:
anhtuansico (22-07-2010)
Old 17-11-2004   #3
CNPM
Moderator
 
CNPM's Avatar
 
Tham gia ngày: Oct 2004
Bài gởi: 236
Thanks: 18
Thanked 112 Times in 33 Posts
Send a message via Yahoo to CNPM Send a message via Skype™ to CNPM
Exclamation Góp vui cùng PMXD

Đây là bản nội suy của tui, Tuy nhiên nó chưa hoàn chỉnh !

==================================================
Function Noisuy(Hang, Cot As Double, ByVal bangns As Range) As Double
' Ham sau cho phep noi suy ca bang mot chieu va hai chieu
Dim Tg1, Tg2, Delta As Double
Dim m As Long ' so hang
Dim n As Long ' so cot
Dim i, j As Long
Dim Found As Boolean

n = bangns.Columns.Count
m = bangns.Rows.Count
Found = False

' bay gio chung ta co mot mang hai chieu kich thuoc m x n

For j = 2 To n - 1
If (bangns(1, j) <= Cot) And (bangns(1, j + 1) >= Cot) Then
Delta = (Cot - bangns(1, j)) / (bangns(1, j + 1) - bangns(1, j))
Found = True

Exit For
End If
Next j

If Not Found Then
MsgBox ("So noi suy nam ngoai Hang cua BangNS")
End
End If

For i = 2 To m - 1
If (bangns(i, 1) <= Hang) And (bangns(i + 1, 1) >= Hang) Then
Tg1 = bangns(i, j) + (bangns(i, j + 1) - bangns(i, j)) * Delta
Tg2 = bangns(i + 1, j) + (bangns(i + 1, j + 1) - bangns(i + 1, j)) * Delta
Delta = (Hang - bangns(i, 1)) / (bangns(i + 1, 1) - bangns(i, 1))
Noisuy = Tg1 + (Tg2 - Tg1) * Delta
Found = True
Exit For
End If
Next i

If Not Found Then
MsgBox ("So noi suy nam ngoai cot cua BangNS")
End
End If


End Function

==================================================

Nhưng đây chỉ là nội suy hai chiều, nếu là nội suy một chiều thì ta chỉ việc kiểm tra lai số hàng và số cột (bằng 2), và viết thêm code cho nội suy một cột.
------------------
Tuy nhiên chúng ta có thể nghĩ ra cách khác như sau :


Thông thường nếu bangns là kiểu array (kiểu mảng) ta thêm đoạn sau vào chương trình
.......Phần bên trên của hàm .......
n = bangns.Columns.Count
m = bangns.Rows.Count
Found = False

For j = 1 To n
Bangns(m + 1, j) = Bangns(m, j)
Next j
For i = 1 To m
Bangns(i, n + 1) = Bangns(i, n)
Next i

' bay gio chung ta co mot mang hai chieu kich thuoc m x n

For j = 2 To n - 1

......Phần tiếp của hàm.......

Có nghĩa là ta thêm một hàng và một cột vào sau cùng của mảng, hang cột mới thêm vào có giá trị bằng hàng cột sau cùng của mảng.
Sau đó chạy bình thường, như thế là ta có thể nội suy được cả hai chiều lẫn một chiều. Tuy nhiên Bangns là kiểu range, do vậy ta không thể gán giá trị bangns được mà chỉ lấy được giá trị từ bangns mà thôi. Ai có cao kiến gì để có thể dùng thuật toán trên sửa nội suy hai chiều thành nội suy cả 1 chiều và hai chiều.
------------------------
PMXD có ý kiến gì không.
=================================================

thay đổi nội dung bởi: CNPM, 17-11-2004 lúc 12:38 AM
CNPM vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following 5 Users Say Thank You to CNPM For This Useful Post:
club7 (11-05-2011), levanduy (21-01-2011), nqt_forever (25-09-2010), tulongqng (04-06-2012), viet.cons (26-11-2011)
Old 17-11-2004   #4
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default Gửi CNPM

Hàm của bạn và hàm của tôi bản chất là giống nhau, nhưng tôi xin góp ý về cách sử dụng để có thể dùng được cả 1 và 2 chiều cho cùng một hàm:
1- Vòng lặp For của bạn cứ cho chạy từ 1 đến n(hoặc m)
2- Giá trị đầu tiên của mỗi hàng và mỗi cột được lấy làm tiêu chí so sánh. Trường hợp hàng đầu tiên(Hoặc cột đầu tiên) không phải là số(Ví dụ là kí tự) thì ta c tự đánh số cho chúng.

'=======================VÍ DỤ
Sau đây là ví dụ về tra bảng Xác định Các hệ số A,B, D trong tính toán Sức chịu tải của nền đất

Bảng số liệu như sau: (Xem file Đính kèm)

Và trên địa chỉ hàm ta viết:

=trabang([Hang],[Cot],Data!$A$25:$D$49)

Ở ví dụ này, vì tra bảng 1 chiều nên [Hàng]=1 hoặc 2 hoặc 3 tương ứng với việc tìm A,B,D.
Như vậy hàm sẽ tra được cả 1 chiều lẫn 2 chiều
Attached Images
File Type: bmp SCT cua coc.bmp (122.1 KB, 5897 lần tải)
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-11-2004   #5
CNPM
Moderator
 
CNPM's Avatar
 
Tham gia ngày: Oct 2004
Bài gởi: 236
Thanks: 18
Thanked 112 Times in 33 Posts
Send a message via Yahoo to CNPM Send a message via Skype™ to CNPM
Default Nhiệt liệt ủng hộ PMXD mỗi tuần viết một bài VBA

>>> Vẫn không hiểu ý bác PMXD như thế nào. Bác code lại gửi lên cho anh em tham khảo đi.

>>> Thực chất thuật toán của hai hàm PMXDCNPM Viết đều như nhau. Nhưng hai cách viết khác nhau, gửi lên để mọi người tham khảo thôi.

>>> Rất nhiệt liệt hưởng việc bác PMXD mỗi tuần gửi một bài. Nhưng xin góp ý là bác gửi bài dễ thôi (Ví dụ như bài vừa rồi), chứ khó quá thì mọi người đọc chẳng hiểu gì đâu. Mục đích là để giới thiệu với mọi người cách truy xuất, trích dữ liệu trong excel và biết cách sử dụng các hàm VB cũng như hàm trong excel. Ngày trước CNPM cũng làm một ít nhưng không may bị bác Nguyễn Tử Quảng lấy hết lúc nào không biết , Nên giờ chẳng còn file nào cả. Hôm qua thấy bác gửi Function nội suy nên góp vui với bác thế thôi.
---------------------------------------------------------------
---------------------------------------------------------------
Đây là chương trình cắt ảnh từ màn hình, dùng rất hay. Mọi người download về mà dùng.
=================================================
CNPM
CNPM vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-11-2004   #6
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Tôi sẽ cố gắng để mỗi tuần gửi một hàm trong Excel do tôi viết. Những hàm này tôi sẽ Open code và hướng dẫn mọi người cùng sử dụng hàm. Nếu ai biết sâu về VBA thì tham khảo thêm, còn ai biết ít thì cứ dùng thôi, không cần đọc hiểu.
Những dòng mã trong VBA cần chú ý khi quét Virus bằng BKAV của bác Quảng sẽ bị tiêu hết, hãy nén các file này lại rồi Scan là Ok thôi.
Gửi CNPM:
bạn cứ thử dùng hàm trabang của tôi sẽ thấy ngay được việc nội suy 1 hay 2 chiều đều được, chúc vui vẻ nhé.
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-11-2004   #7
Gary killer
Thành viên
 
Tham gia ngày: Sep 2004
Bài gởi: 55
Thanks: 0
Thanked 4 Times in 4 Posts
Default

Cho em hỏi là có phần mềm nào phóng to 1 vùng màn hình lên fullscreen ko ah? Chẳng hạn như khi đang chiếu PowerPoint muốn phóng một vùng lên nhìn cho rõ.

Xin lỗi, em không biết pót bài này vào đâu cả nên pót vào đây, các anh thông cảm.
__________________
Cầu xây xong đã lâu không thấy tôi về đưa dâu....
Gary killer vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-11-2004   #8
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Gửi GK:
Bạn có thể dùng chức năng Zoomin của Visual Studio để làm việc này


Hình như trong diễn đàn có rất ít người quan tâm đến VBA thì phải
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-11-2004   #9
Gary killer
Thành viên
 
Tham gia ngày: Sep 2004
Bài gởi: 55
Thanks: 0
Thanked 4 Times in 4 Posts
Default

Trích:
Nguyên văn bởi PMXD
Gửi GK:
Bạn có thể dùng chức năng Zoomin của Visual Studio để làm việc này


Hình như trong diễn đàn có rất ít người quan tâm đến VBA thì phải
Ko fải đâu anh, rất nhiều người quan tâm đến, mỗi tội là khả năng kiến thức về VBA có hạn nên chỉ dừng ở mức đọc, tham khảo, học tập, hỏi .... chứ chưa đủ trình để pót bài (like me ). Mong các anh tiếp tục phát triển thêm chủ đề này. Hàng tuần vẫn ngóng các hàm excel mới
__________________
Cầu xây xong đã lâu không thấy tôi về đưa dâu....
Gary killer vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-11-2004   #10
huycdc
Trưởng ban Quản trị
 
huycdc's Avatar
 
Tham gia ngày: Aug 2004
Nơi Cư Ngụ: 37 Lê Đại Hành - Hà Nôi
Bài gởi: 2,298
Thanks: 227
Thanked 5,206 Times in 838 Posts
Default

Thay mặt diễn đàn, xin cảm ơn các chú PMXD, CNPM và các thành viên khác đã, đang và sẽ chia sẻ các hàm VBA lên cho các anh em còn chưa biết học tập .
Mỗi tuần được một hàm của PMXD thì quý hoá quá! Còn chú CNPM thì mấy tuần một hàm đấy ?
__________________
Phạm Như Huy - Trưởng ban QT ketcau.com - Cty CP Tư vấn đầu tư và TKXD Việt Nam (CDC). Tel. 04.2.216.217.1; - Email: admin@ketcau.com.
huycdc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following User Says Thank You to huycdc For This Useful Post:
le_win (29-09-2012)
Old 19-11-2004   #11
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Cảm ơn anh Huy đã khích lệ động viên để PMXD tôi phấn khích để tiếp tục công việc post bài, hy vọng anh duy trì chủ đề này trong mỗi tuần.
Sau khi đưa ra hàm nội suy đầu tiên, tôi thấy anh em trong diễn đàn có vài người vẫn thắc mắc về cách sử dụng. Hôm nay, tôi sẽ gửi cho anh em một bảng Excel ví dụ cụ thể để mọi người cùng tham khảo và sử dụng. Mong anh em sử dụng và đóng góp ý kiến.
File Kèm Theo
File Type: zip TraBang.zip (10.2 KB, 2417 lần tải)
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following 11 Users Say Thank You to PMXD For This Useful Post:
club7 (11-05-2011), cuongksxd (22-03-2011), hoquocnam (19-09-2013), khanhcx4 (30-12-2013), ksdong (30-08-2010), kstu89 (17-04-2013), thanhnhadoan (08-01-2013), thanhqn (21-04-2012), tin09x1b (26-05-2012), vietthoiyeu (04-12-2011), xdhoang (14-10-2011)
Old 19-11-2004   #12
CNPM
Moderator
 
CNPM's Avatar
 
Tham gia ngày: Oct 2004
Bài gởi: 236
Thanks: 18
Thanked 112 Times in 33 Posts
Send a message via Yahoo to CNPM Send a message via Skype™ to CNPM
Default To Anh Huy

Anh hỏi khó quá, em sẽ cố gắng nhưng kiếm cho em ít việc làm tạm kiếm sống đã, hihi. Có PMXD rồi, em chuyển sang VBA trong CAD vậy
Có ai cần Sap 9.03 thì liên hệ với tôi nhé, lấy rẻ 2 cốc cafe thôi. Hoặc đến chõ anh Huy lấy cũng được, anh Huy nhểy.
CNPM vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-11-2004   #13
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

To CNPM:
Anh thấy chú cũng hiểu nhiều về VBA đấy, chú cứ post VBA cho AutoCad đi, mảng đó cũng nhiều cái hay lắm. Hiện nay các công việc vẽ vời anh cũng đã viết được khá nhiều bằng VBA for Cad rồi. Nếu có điều kiện chúng ta sẽ trao đổi thêm nhé.
Nhân đây, tôi cũng xin kể một câu chuyện ngoài lề về quá trình tôi tiếp cận với VBA for CAd để anh em Relax.
Ngày đó, khi mới ra trường, trong tay chỉ có chút ít kiến thức cơ bản của trường đào tạo cộng thêm vài kỹ năng lập trình VB. Tôi thiết nghĩ phải làm thế nào tạo cho mình một thế mạnh riêng trong công việc. Và cuối cùng, tôi đã quyết định nghiên cứu về lĩnh vực tự: động thiết kế với AutoCad. Nói như vậy nghe có vẻ ghê gớm chứ thực ra là lập trình để vẽ với AutoCad. Với cách nghĩ như vậy, tôi đã cất công tìm hiểu các phương pháp để thực hiện và tổng kết lại gồm các phương pháp sau:
1. Viết bằng ngôn Lisp: Phương pháp này đơn giản, dùng được cho mọi Version của Cad, dễ học và cũng thuận tiện. Tuy nhiên nó không thể lập được những ứng dụng lớn và còn nhiều hạn chế khác. Do vậy tôi cũng không đi sâu tiếp để nghiên cứu nó.
2. Viết bằng ngôn ngữ C++ để tạo ra các file *.arx: Đây là cách chuyên nghiệp nhất(theo ý kiến của riêng tôi) để viết một ứng dụng chạy trong Cad. Nó cho phép người lập trình can thiệp rất sâu vào các đối tượng của Cad, tốc độ chạy chương trình thì miễn chê. Cũng chính vì vậy, việc học nó cũng như sử dụng thành thạo là rất khó khăn. Tôi đã từng đổ mồ hôi viết một đoạn Arx để vẽ một đường thẳng trong CAd, nghĩ lại vẫn thấy khiếp.
3. Viết bằng VBA(Visual Basic for Application): Cuối cùng thì tôi cũng lựa chọn phương án này vì dù sao VB cũng là công cụ ruột của tôi. Đọc các tài liệu về VBA trong AutoCad tôi đã thấy việc sử dụng nó tương đối thuận tiện, cho phép lập các ứng dụng lớn, tốc độ cũng không đến nỗi nào.
Tuy nhiên, mọi chuyện không chỉ đơn giản như vậy, lí do chính vì thời đó vẫn đang thịnh hành Cad14. Mà phiên bản này chưa được hỗ trợ VBA nhiều, đặc biệt là môi trường lập trình. Do đó, khi tôi lập VBA cho Cad14 tôi phải lập từ bên ngoài và "Điều khiển" Cad chạy từ xa. Tôi đã mất 1 năm(không hề nói sai) để dùng VB điều khiển Cad vẽ một đoạn thẳng có tọa độ từ (0,0,0) đến tọa độ (100,0,0). Nghĩ lại thấy cũng tội nghiệp cho bản thân, giá như ngày đó có Cad2000 thì chắc không mất nhiều thời gian đến vậy(Các bác nên biết rằng VBA chỉ support cho Cad2000 trở lên). Tuy nhiên, đó cũng là bước đánh dấu thời điểm tôi đến với VBA, và cũng chẳng có gì đáng tiếc khi ta bỏ công sức cho sự hiểu biết phải không các bác.
Thôi đến giờ cơm rồi, để lúc khác tiếp tục nhé, ở Viện tôi xuống chậm chân là hết cơm, đói bụng=> Kết cấu không thể bền vững được.
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following 8 Users Say Thank You to PMXD For This Useful Post:
AloneGalaxy (28-05-2014), KhanhbkPRo (26-10-2011), ks.quoctien (21-08-2013), levanduy (13-03-2010), nhen269 (08-05-2010), THANHDONG (15-01-2011), tuanminhx9kt (14-07-2013), xdhoang (14-10-2011)
Old 19-11-2004   #14
ButKim
Thành viên mới
 
Tham gia ngày: Nov 2004
Bài gởi: 4
Thanks: 0
Thanked 0 Times in 0 Posts
Default Chào các bác

Sao cái font tiếng việt nó lỗi quá, Dùng IE thì lúc đánh được tiếng việt lúc lại không đánh được. Dùng các trình duyệt khác như My IE, Mozoilla Fireox thì bó tay vì không đánh được tiếng việt.

Em cũng rất muốn học VBA nhưng trình độ còn hạn chế quá. Em kể cho các bác nghe chuyện em tiếp cận với VBA trong Excel như thế nào nhé. Ngày xưa khi em còn học đại học. Em thường lên thư viện trường mình (ĐHXD) kiếm quyển PC world, trong đó có những ví dụ như hai bác CNPM và PMXD viết, ngày đó tôi đem nó vào góc phòng, rồi quay đi quay lại không thấy ai là xé lấy tờ đó, đút vô túi áo, mang về nhà đánh vô excel và chạy thử. Và dần dần tui cũng học được một ít. Nay thấy trên diễn đàn có mục này hay quá, cảm ơn máy bro đã san sẻ kiến thức của mình cho mọi người.

Thực ra trong diễn đàn có rất ít người post bài, vì những người vừa mới ra trường kinh nghiệm không có nhiều, mặc dù rất thích trang Web nhưng biết post gì bây giờ, chỉ còn biết lẳng lặng chờ các bài viết của bro, đọc và suy ngẫm. Một cách đánh giá "số người quan tâm đến chủ một đề" một cách rất đơn giản đó là đọc số lần truy cập đến chủ đề, số lần tải các file đính kèm. Chứ không phải không có ai nói gì thì đồng nghĩa với việc chủ đề này ít người quan tâm bác PMXD ạ.

Tôi rất thích chuyên mục này và mong các bro post nhiều hơn nữa. Nếu có thế PMXD và CNPM cho em biết tên một số sách viết về VBA trong CAD cũng như trong Excel, có tiếng việt thì tốt quá, còn không thì TA cũng được. Cảm ơn các bác nhiều.
-----------------------
Chúc mọi người vui vẻ.
-----------------------
ButKim vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-11-2004   #15
CNPM
Moderator
 
CNPM's Avatar
 
Tham gia ngày: Oct 2004
Bài gởi: 236
Thanks: 18
Thanked 112 Times in 33 Posts
Send a message via Yahoo to CNPM Send a message via Skype™ to CNPM
Default

Tôi có mỗi quyển Programming VBA with AutoCAD không có sách tiếng việt.
CNPM vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-11-2004   #16
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Sorry mọi người!
Hôm nay đáng ra là ngày tôi Post hàm thứ 2 của VBA trong Excel, nhưng từ sáng đến giờ đi hội thảo Kết cấu thép ở Melia Hotel nên chưa Post được. Sáng ngày mai tôi sẽ Post lên một hàm mới, anh em cố gắng chờ đợi nhé.
Mà mọi người trong diễn đàn sao không có câu hỏi gì cho vấn đề này nhỉ, cả cái bảng Excel tôi Post lên hôm trước anh em có dùng được không? Nếu có ai quan tâm thì lên tiếng nhé, tất cả vì sự phát triển chung thôi mà.
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-11-2004   #17
Gary killer
Thành viên
 
Tham gia ngày: Sep 2004
Bài gởi: 55
Thanks: 0
Thanked 4 Times in 4 Posts
Default

Trích:
Nguyên văn bởi PMXD
Sorry mọi người!
Hôm nay đáng ra là ngày tôi Post hàm thứ 2 của VBA trong Excel, nhưng từ sáng đến giờ đi hội thảo Kết cấu thép ở Melia Hotel nên chưa Post được. Sáng ngày mai tôi sẽ Post lên một hàm mới, anh em cố gắng chờ đợi nhé.
Mà mọi người trong diễn đàn sao không có câu hỏi gì cho vấn đề này nhỉ, cả cái bảng Excel tôi Post lên hôm trước anh em có dùng được không? Nếu có ai quan tâm thì lên tiếng nhé, tất cả vì sự phát triển chung thôi mà.
Em đã dùng thử để làm bảng tra Ktd, kết quả thật mỹ mãn. Cảm ơn anh PMXD nhiều. Ah cho em hỏi hàm "UBound" để làm gì ah? Em có mở file help đọc nhưng trình độ TA hạn hẹp quá nên chưa hiểu hi`hi`...:d
__________________
Cầu xây xong đã lâu không thấy tôi về đưa dâu....
Gary killer vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-11-2004   #18
PMXD
Moderator
 
PMXD's Avatar
 
Tham gia ngày: Sep 2004
Bài gởi: 205
Thanks: 0
Thanked 115 Times in 30 Posts
Default

Hi every body!
Từ hôm Post hàm Excel Nội suy đến bây giờ mới có một người phản hồi kết quả, Dù sao PMXD tôi cũng thấy hài lóng rồi. Hôm nay, như đã hứa, tôi xin đăng một hàm Excel mới phục vụ cho việc tính toán nội lực bản (theo giáo trình BTCT).
'==========================Giải thích các thông số
Tên hàm:
Mban
Các tham số:
P: Lực phân bố trên bản sàn (T/m2)
L1: Chiều dài cạnh 1 (m)
L2: Chiều dài cạnh 2 (m)
Mtrave: Loại Mô men được trả về
Mtrave=1 => M11
Mtrave=2 => M12
Mtrave=3 => M21
Mtrave=4 => M22
Mtrave=5 => M1
Mtrave=6 => M2
(Các giá tri M1, M2, M11, M12, M21, M22 xin xem ở hình vẽ kèm theo)

Thanh1,Thanh2,Thanh3,Thanh4: Thuộc tính dùng để kiểm tra xem có dầm ở các cạnh của bản hay không.Nếu người dùng không vào các tham số này thì hàm sẽ tự hiểu là có dầm.
'===========================Nội dung hàm
Enum Mtrave
TV_M11 = 1
TV_M12 = 2
TV_M21 = 3
TV_M22 = 4
TV_M1 = 5
TV_M2 = 6
End Enum

Function Mban(ByVal P As Double, ByVal L1 As Double, L2 As Double, ByVal Mtrave As Mtrave, Optional Thanh1 = True, Optional Thanh2 = True, Optional Thanh3 = True, Optional Thanh4 = True)


Dim r As Double
Dim TeTa As Double
Dim A1 As Double, B1 As Double, A2 As Double, B2 As Double
Dim M1 As Double, M11 As Double, M12 As Double
Dim M2 As Double, M21 As Double, M22 As Double

Dim MauSo As Double

If L1 > L2 Then
r = L1 / L2

If r >= 1 And r < 1.5 Then
TeTa = 1 + (r - 1) * (0.5 - 1) / (1.5 - 1)
A1 = IIf(Thanh1 = True, 1.2 + (r - 1) * (1.2 - 1) / (1.5 - 1), 0)
B1 = IIf(Thanh3 = True, 1.2 + (r - 1) * (1.2 - 1) / (1.5 - 1), 0)

A2 = IIf(Thanh4 = True, 1 + (r - 1) * (1.8 - 1) / (1.5 - 1), 0)
B2 = IIf(Thanh2 = True, 1 + (r - 1) * (1.8 - 1) / (1.5 - 1), 0)
ElseIf r >= 1.5 And r < 2 Then
TeTa = 0.6 + (r - 1.5) * (0.3 - 0.6) / (2 - 0.5)
A1 = IIf(Thanh1 = True, 1, 0)
B1 = IIf(Thanh3 = True, 1, 0)

A2 = IIf(Thanh4 = True, 0.8 + (r - 1) * (0.5 - 0.8) / (1.5 - 1), 0)
B2 = IIf(Thanh2 = True, 0.8 + (r - 1) * (0.5 - 0.8) / (1.5 - 1), 0)
End If
MauSo = (2 + A1 + B1) * L1 + (2 * TeTa + A2 + B2) * L2
M2 = P * L1 ^ 2 * (3 * L1 - L1) / 12 / MauSo 'He Don vi la Kg-m
M1 = TeTa * M2

M11 = A2 * M2
M12 = B2 * M2
M21 = A1 * M2
M22 = B1 * M2
Else
r = L2 / L1

If r >= 1 And r < 1.5 Then
TeTa = 1 + (r - 1) * (0.5 - 1) / (1.5 - 1)
A1 = IIf(Thanh2 = True, 1.2 + (r - 1) * (1.2 - 1) / (1.5 - 1), 0)
B1 = IIf(Thanh4 = True, 1.2 + (r - 1) * (1.2 - 1) / (1.5 - 1), 0)

A2 = IIf(Thanh1 = True, 1 + (r - 1) * (1.8 - 1) / (1.5 - 1), 0)
B2 = IIf(Thanh3 = True, 1 + (r - 1) * (1.8 - 1) / (1.5 - 1), 0)
ElseIf r >= 1.5 And r < 2 Then
TeTa = 0.6 + (r - 1.5) * (0.3 - 0.6) / (2 - 0.5)
A1 = IIf(Thanh2 = True, 1, 0)
B1 = IIf(Thanh4 = True, 1, 0)

A2 = IIf(Thanh1 = True, 0.8 + (r - 1) * (0.5 - 0.8) / (1.5 - 1), 0)
B2 = IIf(Thanh3 = True, 0.8 + (r - 1) * (0.5 - 0.8) / (1.5 - 1), 0)
End If
MauSo = (2 + A1 + B1) * L2 + (2 * TeTa + A2 + B2) * L1
M1 = P * L1 ^ 2 * (3 * L2 - L1) / 12 / MauSo 'He Don vi la Kg-m
M2 = TeTa * M1
M11 = A1 * M1
M12 = B1 * M1
M21 = A2 * M1
M22 = B2 * M1
End If
Select Case Mtrave
Case TV_M1
Mban = M1
Case TV_M11
Mban = M11
Case TV_M12
Mban = M12
Case TV_M2
Mban = M2
Case TV_M21
Mban = M21
Case TV_M22
Mban = M22
End Select
End Function


'===========================Chúc vui vẻ

To Garry Killer:

Em hỏi anh hàm Ubound nghĩa là gì phải không? Hàm Ubound là hàm trả về số thứ tự của phần tử cuối cùng trong mảng.
Ví dụ, khi ta khai báo mảng Vietanh(0 to 5) thì Ubound(VietAnh)=5
Cũng cần chú ý nếu ta khai báo VietAnh(2 to 5) thì Ubound(VietAnh) cũng =5.
Attached Images
File Type: bmp Noi luc san.bmp (192.4 KB, 3965 lần tải)
PMXD vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
The Following 2 Users Say Thank You to PMXD For This Useful Post:
maithanhlong169 (21-04-2012), minhtriga (05-01-2014)
Old 24-11-2004   #19
niceshot
Thành viên
 
Tham gia ngày: Oct 2004
Bài gởi: 45
Thanks: 0
Thanked 34 Times in 5 Posts
Default Hàm tính toán thép cột chịu nén lệch tâm

Cũng đú làm một hàm tính toán thép cột chịu nén lệch tâm viết từ hồi còn sinh viên.
Giải thích các biến:
momen1 là momen tính toán (tm)
momen2 là momen dài hạn (tm)
axial1 là lực dọc tính toán (t)
axial2 là lực dọc dài hạn (t)
chieurong là bề rộng cột (cm)
chieucao là chiều cao cột (cm)
lopbaove là lớp bảo vệ thép (cm)
chieudai là độ dài của cột dùng để tính lệch tâm (cm)
macbt là mác bêtông 200, 250, 350, 400
macthep là mác thép AI, AII, AIII
muigt là hàm lượng cốt thép giả thiết (%)
Bác nào thử chạy xem. Tôi hỗi xưa test trên cuốn tính toán nhà công nghiệp BTCT thấy cũng đúng.

-----------------------------------------------------------------


Function thepcot(momen1 As Double, momen2 As Double, axial1 As Double, axial2 As Double, chieurong As Double, chieucao As Double, lopbv As Double, chieudai As Double, macbt As Integer, macthep As String, muigt As Double) As Double

Dim hzero, lzero, Ja, Jb, ezero, S, Kdh, Nth, neta, ezerogh, dolechtam, giatri_x, giatri_x_p As Double

If macbt = 200 Then
Rn = 90
anfa = 0.62
Azero = anfa * (1 - 0.5 * anfa)
Eb = 240000
ElseIf macbt = 250 Then
Rn = 110
anfa = 0.58
Azero = anfa * (1 - 0.5 * anfa)
Eb = 265000
ElseIf macbt = 300 Then
Rn = 130
anfa = 0.58
Azero = anfa * (1 - 0.5 * anfa)
Eb = 290000
ElseIf macbt = 350 Then
Rn = 150
anfa = 0.55
Azero = anfa * (1 - 0.5 * anfa)
Eb = 310000
Else
Rn = 200
anfa = 0.62
Azero = anfa * (1 - 0.5 * anfa)
Eb = 240000
End If
Ea = 2100000
If macthep = "AI" Then
Ra = 2100
ElseIf macthep = "AII" Then
Ra = 2700
ElseIf macthep = "AIII" Then
Ra = 3600
Else
Ra = 2700
End If

'Than chuong trinh
hzero = chieucao - lopbv
lzero = chieudai * 0.7
Ja = muigt / 100 * chieurong * hzero * (0.5 * chieucao - lopbv) ^ 2
Jb = chieurong * chieucao ^ 3 / 12
If chieucao / 25 < 2 Then
ezero = 100 * Abs(momen1) / axial1 + 2
Else
ezero = 100 * Abs(momen1) / axial1 + chieucao / 25
End If

If ezero / chieucao < 0.05 Then
S = 0.84
ElseIf ezero / chieucao > 5 Then
S = 0.122
Else
S = 0.11 / (0.1 + ezero / chieucao) + 0.1
End If

If momen1 * momen2 < 0 Then
Kdh = 1 + (-Abs(momen2) * 100 + axial2 * (0.5 * chieucao - lopbv)) / (Abs(momen1) * 100 + axial1 * (0.5 * chieucao - lopbv))
Else
Kdh = 1 + (Abs(momen2) * 100 + axial2 * (0.5 * chieucao - lopbv)) / (Abs(momen1) * 100 + axial1 * (0.5 * chieucao - lopbv))
End If
If Kdh < 1 Then
Kdh = 1
End If

Nth = 6.4 / lzero ^ 2 * (S * Eb * Jb / Kdh + Ea * Ja) / 1000
neta = 1 / (1 - axial1 / Nth)
dolechtam = neta * ezero + 0.5 * chieucao - lopbv

ezerogh = 0.4 * (1.25 * chieucao - anfa * hzero)

giatri_x = axial1 * 1000 / chieurong / Rn

If giatri_x > 2 * lopbv And giatri_x <= anfa * hzero Then
thepcot = axial1 * 1000 * (dolechtam - hzero + 0.5 * giatri_x) / Ra / (hzero - lopbv)

ElseIf giatri_x < 2 * lopbv Then

dolechtam_p = dolechtam - hzero + lopbv
thepcot = axial1 * 1000 * dolechtam_p / Ra / (hzero - lopbv)
Else
If ezero > ezerogh Then
giatri_x = anfa * hzero
thepcot = (axial1 * 1000 * dolechtam - Azero * Rn * chieurong * hzero ^ 2) / Ra / (hzero - lopbv)
Else
giatri_x = 1.8 * (ezerogh - ezero) + anfa * hzero
thepcot = (axial1 * 1000 * dolechtam - Rn * chieurong * giatri_x * (hzero - 0.5 * giatri_x)) / Ra / (hzero - lopbv)

End If
End If
End Function
niceshot vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-11-2004   #20
Gary killer
Thành viên
 
Tham gia ngày: Sep 2004
Bài gởi: 55
Thanks: 0
Thanked 4 Times in 4 Posts
Default

các anh có thể post luôn cả file excel ko? tải về dùng cho đỡ lằng nhằng
__________________
Cầu xây xong đã lâu không thấy tôi về đưa dâu....
Gary killer vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Loading...
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền sử dụng ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Mở

Chuyển đến



Múi giờ GMT. Hiện tại là 04:58 AM.


DIỄN ĐÀN http://ketcau.com/forum NƠI HỘI TỤ CỦA CÁC KỸ SƯ KẾT CÂU VIỆT NAM
WWW.KETCAU.COM - CẦU NỐI CỦA CÁC KỸ SƯ KẾT CẤU CÔNG TRÌNH, ĐỊA KỸ THUẬT VIỆT NAM. DIỄN ĐÀN ĐƯỢC MUA BẢN QUYỀN CỦA JELSOFT ENTERPRISES Ltd. Thiết kế website