Thông báo

Collapse
No announcement yet.

Mỗi tuần một hàm trong Excel!

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • abasa
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Em dự định làm 1 cái combo box khai báo mác BT và liên kết nó với ô chứa cường độ chịu nén Rn, khi mình chọn mác BT, chẳng hạn M200, thì sẽ có Rn ngay. Ai chỉ giùm với!?!

    Leave a comment:


  • PMXD
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Những VBA của tôi khó dùng lắm sao
    Tôi mở chủ đề này để thảo luận về lập trình trong Excel mà. Có thể một số bạn cho rằng các hàm tôi đã Upload lên có thể viết lại bằng các hàm huẩn của Excel, điều đó cũng đúng thôi. Đã có câu nói là "Mọi con đường đều dẫn đến thành Rome mà". Tuy nhiên, nếu có khi nào mà các bạn ko thể dùng hàm chuẩn của Excel đã lập ứng dụng của các bạn thì gọi tôi nhé
    Các chương trình viết bằng VBA khi quét Virus bằng công cụ của anh Nguyễn Tử Quảng thường bị clean luôn. Cái đó muốn khắc phục, các bạn cứ Zip nó lại là ngon lành ngay à. Các chương trình Scan Virus mới hiện nay đều đã tránh được tình trạng này rồi.
    Chúc các bạn một năm mới an khang tịnh vượng, chúc diễn đàn sang năm mới có nhiều phát triển.

    Leave a comment:


  • tdhtkcd
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Nguyên văn bởi ttkh
    Cho em hoi :
    3- Insert 1 Module trong môi trường VBA
    là sao? Em không hiểu lắm.Anh có thể chỉ cụ thề hơn. Em chưa biết gì về cái này lắm.
    Nếu bạn làm việc với VB rồi thì cái này dễ hiểu lắm.Về tham khảo qua VB là bạn sẽ làm được ngay thôi ,đừng ngại

    Leave a comment:


  • daucuchuoi
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Cám ơn PMXD đã viêt nhiều hàm cho Excel. Nhưng thật lòng mà nói, mong PMXD đừng giận, các hàm viết bằng VB rất khó dùng. Mặt khác, các hàm này dễ bị các chương trình diệt virut như BKAV hiểu nhầm nên diệt nghéo luôn.
    Cũng các hàm này có thể viết bằng các hàm chuẩn của Excel.
    Như hàm tra bảng nội suy chỉ cần hàm VLOOKUP hoặc HLOOKUP là được.
    Tôi sẽ dành thời gian viết lại các hàm của PMXD từ VB sang hàm chuẩn của Excel.

    Leave a comment:


  • ttkh
    replied
    Ðề: Mỗi tuần một hàm trong Excel!

    Nguyên văn bởi PMXD
    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
    Cho em hoi :
    3- Insert 1 Module trong môi trường VBA
    là sao? Em không hiểu lắm.Anh có thể chỉ cụ thề hơn. Em chưa biết gì về cái này lắm.

    Leave a comment:


  • maituan
    replied
    Đoạn code này không chạy được vì thiếu khai báo cho các trường hợp mác BT và mác thép.

    Leave a comment:


  • PMXD
    replied
    Tiếp tục post bài

    Chào các bạn!
    Sau một thời gian không đăng thêm hàm VBA nào trên diễn đàn, PMXD tôi thấy không khí có vẻ lại lắng xuống. Hôm nay, để hâm lại không khí trong những ngày đầu năm mới, PMXD tôi xin đăng hàm Tính thép cột theo TCVN để anh em cùng tham khảo.
    '=====================================================
    1- Tên hàm: Facot
    2- Các tham số chính
    M- Mô men (Kgm)
    N- Lực dọc (Kg)
    b- Bề rộng tiết diện (m)
    h- Chiều cao tiết diện (m)
    ao- Chiều dày lớp bảo vệ cốt thép
    l - Chiều dài (thực tế) cột
    Mdh- Thành phần momen dài hạn
    Ndh- Thành phần lực dọc dài hạn
    MBT- Mác bê tông (nếu ko nhập thì giá trị mặc định là 250)
    KieuCotThep- Loại cốt thép (nếu ko nhập thì giá trị mặc định là "AII")
    Kieulienket- Hình thức liên kết cua cột
    = 1 : hai đầu ngàm
    = 2 : hai đầu khớp
    = 3 : 1 đầu ngàm, một đầu khớp
    = 4 : 1 đầu ngàm, 1 đầu tự do
    3- Thuật toán tổng thể của hàm
    - Tính toán các thông số ban đầu
    - Giả thiết giá trị hàm lượng cốt thép (Muy) ban đầu
    - Tính toán giá trị Muy thực tế
    - So sánh, tính lặp cho đến khi Muy giả thiết xấp xỉ Muy tính toán
    - Tính diện tích cốt thép theo giá trị Muy cuối cùng
    - So sánh với diện tích thép tính theo bài toán kéo (nén) đúng tâm
    - Lấy giá trị Max của hai trường hợp

    4- Nội dung của hàm

    Function FaCot(ByVal M As Double, ByVal N As Double, ByVal b As Double, h As Double, _
    ByVal ao As Double, ByVal l As Double, Optional Mdh = 0, Optional Ndh = 0, Optional MBT = 250, Optional KieuCotThep = "AII", Optional KieuLienKet = 1)

    '============================Don vi tinh toan Kg,m
    Dim Lo As Double 'Chieu dai tinh toan cua cau kien(m)
    Dim ho As Double
    Dim Muy As Double, nuy As Double, MuyGt As Double, NuyMin As Double
    Dim Eo As Double, e As Double, eogh As Double, X As Double
    Dim s As Double, Nth As Double
    Dim Ja As Double, Jb As Double
    Dim Phi As Double
    Dim Kdh As Double
    Dim MuyMin As Double

    Dim Rn As Double, Rk As Double, Eb As Double, Ra As Double, Rad As Double, Ea As Double

    Dim Fat As Double, HamLuongCot As Double

    Dim Fadungtam As Double

    If M <> 0 Then Kdh = 1 + Mdh / M

    '==============================Xac dinh chieu dai tinh toan cua cot
    Select Case KieuLienKet
    Case 1 ' Hai dau ngam
    Lo = 0.7 * l
    Case 2 ' Hai dau khop

    Case 3 'Dau ngam dau khop

    Case 4 ' Dau ngam va Dau tu do

    End Select
    '==============================Xac dinh cac thong so cua be tong va thep

    BeTong MBT, Rn, Rk, Eb
    CotThep KieuCotThep, Ra, Rad, Ea

    ho = h - ao
    Phi = PhiUD(Lo, b, "R")
    FaCot = 0: Fat = 0

    '======================
    MuyMin = TimMax(Array(HamLuongCot * 100, MuyMinVa(Lo, b, h, 0)))
    If N = 0 Then
    FaCot = 0: Fat = 0
    ElseIf M = 0 And N < 0 Then
    '================================Tinh toan cau kien chiu nen trung tam tiet dien chu nhat
    N = Abs(N)
    FaCot = ((N / Phi - Rn * b * h)) / Ra
    Fat = ((N / Phi - Rn * b * h)) / Ra
    Muy = 100 * (FaCot + Fat) / (b * ho)
    '==========================================================================
    ElseIf M <> 0 And N < 0 Then
    '==================================Tinh toan cau kien chiu nen lech tam tiet dien chu nhat
    M = Abs(M)
    N = Abs(N)

    '===== Tinh cho truong hop bo qua Momen
    Fadungtam = ((N / Phi - Rn * b * h)) / Ra

    '===============================
    MuyGt = 2 * MuyMin
    Muy = MuyGt
    Do
    MuyGt = (MuyGt + Muy) / 2
    If MuyGt < 0 Then Exit Do
    Jb = b * h ^ 3 / 12
    Ja = 0.01 * MuyGt * b * (h - ao) * (0.5 * h - ao) * (0.5 * h - ao)

    '===================================Tinh toan do lech tam eo
    If b > 0.25 And h / 25 > 0.02 Then
    Eo = (M / N + h / 25)
    ElseIf b > 0.25 And h / 25 < 0.02 Then
    Eo = (M / N + 0.02)
    ElseIf b < 0.25 And h / 25 > 0.015 Then
    Eo = (M / N + h / 25)
    ElseIf b < 0.25 And h / 25 < 0.015 Then
    Eo = (M / N + 0.015)
    End If

    '================================ Tinh he so anh huong den do lech tam
    If Eo < 0.05 * h Then
    s = 0.84
    ElseIf 0.05 * h <= Eo < 5 * h Then
    s = 0.11 / (0.1 + Eo / h) + 0.1
    Else
    s = 0.122
    End If


    Nth = 6.4 * ((s * Jb * Eb / Kdh) + Ea * Ja) / (Lo * Lo)
    nuy = 1 / (1 - (N / Nth))
    If nuy < 0 Then FaCot = "ThiÕu thÐp": Exit Function
    eogh = 0.4 * (1.25 * h - Anpha(MBT) * ho)
    X = N / Rn / b
    If X < Anpha(MBT) * (h - ao) Then
    '====================================Tinh toan lech tam lon

    If X < 2 * ao Then
    FaCot = N * (nuy * Eo - 0.5 * h + ao) / Ra / (ho - ao)
    ElseIf X > 2 * ao And X < Anpha(MBT) * ho Then
    e = nuy * Eo + 0.5 * h - ao
    FaCot = N * (e - ho + 0.5 * X) / (Ra * ho - Ra * ao)
    Else
    GoTo TinhTheoLechTamBe
    End If
    Else
    TinhTheoLechTamBe:
    '=====================================Tinh toan lech tam be
    If nuy * Eo <= 0.2 * ho Then
    X = h - (1.8 + 0.5 * h / ho - 1.4 * Anpha(MBT)) * Eo
    Else
    X = 1.8 * (eogh - Eo) + Anpha(MBT) * ho
    End If
    e = 0.5 * h + nuy * Eo - ao 'Khoang cach tu luc doc den trong tam cot thep chiu keo

    FaCot = ((N * e - Rn * b * X * (ho - 0.5 * X)) / Ra / (ho - ao))
    End If
    '====================================Kiem tra ham luong cot thep
    Muy = 200 * FaCot / (b * ho)
    Loop Until Abs(Muy - MuyGt) < 0.05
    Fat = FaCot
    ElseIf M = 0 And N > 0 Then
    '===================================Tinh toan cau kien chiu keo trung tam
    M = Abs(M)
    N = Abs(N)
    FaCot = 0.5 * N / Ra
    Fat = 0.5 * N / Ra
    Muy = 100 * (FaCot + Fat) / (b * ho)
    ElseIf M <> 0 And N > 0 Then
    M = Abs(M)
    N = Abs(N)
    Eo = M / N
    If Eo <= 0.5 * h - ao Then
    '===================================Tinh toan cau kien chiu keo lech tam be
    Fat = N * (0.5 * h - Eo - ao) / Ra / (ho - ao)
    FaCot = N * (0.5 * h + Eo - ao) / Ra / (ho - ao)
    Fat = TimMax(Array(Fat, FaCot))
    FaCot = TimMax(Array(Fat, FaCot))
    Muy = 100 * (FaCot + Fat) / (b * ho)

    Else
    '==================================Tinh toan cau kien chiu keo lech tam lon
    X = Anpha(MBT) * ho
    Fat = (N * (Eo + 0.5 * h - ao) - Anpha(MBT) * (1 - 0.5 * Anpha(MBT)) * Rn * b * ho * ho) / Ra / (ho - ao)
    FaCot = (N + Anpha(MBT) * Rn * b * ho + Ra * Fat) / Ra
    Fat = TimMax(Array(Fat, FaCot))
    FaCot = TimMax(Array(Fat, FaCot))
    Muy = 100 * (FaCot + Fat) / (b * ho)
    End If
    End If
    FaCot = TimMax(Array(FaCot, Fadungtam))
    If Muy < 1 Then
    Muy = 1
    Fat = Muy * b * ho / 200
    FaCot = Muy * b * ho / 200
    Fat = Fat * 10 ^ 4
    FaCot = FaCot * 10 ^ 4
    Else
    FaCot = FaCot * 10 ^ 4
    Fat = Fat * 10 ^ 4
    End If
    End Function

    Leave a comment:


  • dnl
    replied
    Bac PMXD ơi! Bác oải quá rồi à????

    Leave a comment:


  • dnl
    replied
    Cảm ơn bác PMXD nhiều, em ứng dụng các hàm của bác rất tốt. Nếu có thể bác viết cho anh em hàm tính cột lệch tâm xiên được không?

    Leave a comment:


  • PMXD
    replied
    Ham Excel Thu 4 Va Thu 5

    Chào các anh em trong diễn đàn kết cấu! Hôm nay tôi xin giới thiệu đến các anh em hai hàm siêu nhỏ nhưng khả năng của nó thì không nhỏ chút nào, hơn nữa nó lại rất hay dùng trong khi lập trình. Cũng xin chú ý với mọi người, hai hàm này thuần túy là phục vụ lập trình chứ không dùng trong các bảng tính toán của Excel. Đó là hàm Timmax và hàm Timmin
    '=====================================================
    1- Ý nghĩa của hàm:Tìm giá trị lớn nhất(nhỏ nhất) của các số trong một mảng (mảng có thể có kích thước bất kỳ).
    2- Các tham số trong hàm: Thamso- Đây là mảng của các số thực hoặc số nguyên, số phần tử trong mảng là không giới hạn.
    3- Nội dung chính của hàm
    '====================Hàm Timmax
    Function TimMax(thamso As Variant)
    Dim i As Integer
    TimMax = 0
    For i = 0 To UBound(thamso)
    If thamso(i) > TimMax Then
    TimMax = thamso(i)
    End If
    Next
    End Function

    '=====================Hàm Timmin
    Function TimMin(thamso As Variant)
    Dim i As Integer
    TimMin = thamso(LBound(thamso))
    For i = LBound(thamso) To UBound(thamso)
    If thamso(i) < TimMin Then
    TimMin = thamso(i)
    End If
    Next
    End Function

    '===========Ví dụ về việc sử dụng hàm Timmax và Timmin
    ' Khai bao cac bien
    Dim a as long, b as long, c as long
    Dim Max,Min
    ' Gan cac gia tri cho bien
    a=2:b=3:c=5

    Max=Timmax(array(a,b,c))
    Min=Timmin(array(a,b,c))
    '====================================================
    Đôi điều bình luận về 2 hàm trên:
    Trong quá trình tôi lập trình, hai hàm này xuất hiện với tần suất tương đối lớn, chắc chỉ sau mấy hàm toán học thông thường như +, -, x, : khai căn, lũy thừa, trị tuyệt đối....
    Đây cũng là một trong những kinh nghiệm căn bản nhất khi lập trình: Những vấn đề được xử lý thường xuyên thì nên xây dựng thành một hàm.
    Chúc các bạn thành công

    Leave a comment:


  • ketcaucdc
    replied
    to Việt Anh:
    anh cũng như chú, chẳng đẻ ý đến mấy cái sao vàng đó; chú nhắc anh mới tìm hiểu thì hoá ra nó dùng để̉ chấm điểm bài viết; Sau đó, anh chấm ngày thì thấy nó hiệṇ lên như hình vẽ đính kèm .
    Theo tôi, mọi người thấy bài nào hay thì có thể phê điểm cho bài viết .Càng nhiều người cho điểm thì số lượng sao vàng càng nhiều, điều đó sẽ làm cho các tác giả thấy vui hơn và nhiệt tình viết hơn .
    Nhân tiện đây, tôi cũng đề nghị mọi người sau khi download được những phần mềm hoặc đoạn code hay hay, tiện ích thì cũng nên có ý kiến phản hồi về sự hay, dở và cũng nên có lời CẢM ƠN tác giả hoặc người đã chia sẻ thông tin một chút . Nhiều khi cứ DOWNLOAD "bùm bụp" mà chẳng được lời cảm ơn cũng không được hay lắm !
    Attached Files
    Last edited by ketcaucdc; 07-12-2004, 10:11 AM.

    Leave a comment:


  • PMXD
    replied
    Thắc mắc tí tẹo

    Hôm nay vào Ketcau.com mới để ý kỹ, một số bài trên diễn đàn có mấy ông sao vàng vàng đẹp ghê trên dòng tiêu đề. Nhìn lại bài của mình chẳng thấy ông sao nào, lạ ghê. Anh Huy trả lời giúp em cái nhẩy

    Leave a comment:


  • phu_ho
    replied
    Xin hoan nghênh nhiệt liệt các bác mỗi tuần lại ủng hộ một chương trình Tôi sẽ thử, lúc nào không hiểu gì sẽ nhờ các bác giải thich dùm nhé

    Xin góp ý một chút : cho phần chú thích, ngoài việc giải thích tên biến, các bác nên cho thêm một dòng giải thích cái hàm các bác đang tính (tức là gõ nguyên cái công thức hoặc reference của nó), thì có lẽ dễ theo dõi hơn.

    Leave a comment:


  • PMXD
    replied
    To CNPM:
    Rất cảm ơn CNPM đã góp ý xây dựng cho bài viết của tôi. Tôi sẽ cố gắng giải thích ý nghĩa của các dòng lệnh trong hàm khi post bài để anh em trong diễn đàn dễ dàng tiếp nhận hơn.
    Nhân dây, tôi cũng rất mong anh em nào quan tâm đến VBA, khi đọc các hàm của tôi nếu có chỗ nào khó hiểu thì cứ Post bài để hỏi, tôi sẽ trả lời trong phạm vị kahr năng của tôi.
    Chúc các bạn thành công

    Leave a comment:


  • CNPM
    replied
    Ttvn

    Về vụ TTVN hiện tôi có rất nhiều bài viết về vụ này. Xin các bạn đừng phán xét vội, hãy chờ các tin khác từ www.vnn.vn hoăc www.vnexpress.net. Nếu các bài viết có tính chính trị. Xin anh Huy hãy xóa bó đi. Thanks.

    Leave a comment:

deneme bonusu veren siteler deneme bonusu deneme bonusu veren siteler
bahis siteleri
hd sex video
Mobilbahis
antalya escort bayan
gaziantep escort
gaziantep escort
bonus veren siteler
pinbahis pinbahis dizitune.com
bostanci escort pendik escort
İstanbul Escort
Car Fuck XXX Мужик отчаянно долбит в жопу шмеля sexo gay gratis xxxx
betbonusking.com deneme bonusu
deneme bonusu veren siteler deneme bonusu veren siteler bonus veren siteler
ümraniye escort sancaktepe escort
quixproc.com
Small tits girlfriend fucking pussy xxx com hindi Beatriz is young a new in porn Real adult sex with teen babe xxx
casino siteleri
deneme bonusu veren siteler
alanya escort
mersin escort alanya escort gaziantep escort
deneme bonusu veren siteler deneme bonusu veren siteler
buy.fans
mobilbahis rokubet
bahis siteleri
deneme bonusu veren siteler
bonus veren siteler bonus veren siteler
deneme bonusu bonus veren siteler
deneme bonusu veren siteler
deneme bonusu veren siteler
deneme bonusu
redriverlanes.com
casino siteleri
bodrum escort
streameast
deneme bonusu veren siteler
alanya escort gaziantep escort gaziantep escort gaziantep escort
bahis siteleri
casibom betturkey
Working...
X