أعتقد أن الحل المشار إليه لحجم الاسطوانة الرأسية وليست الأفقية
بالنسبة للأفقية
نصف القطر في الخلية A2
ارتفاع السائل في الخلية B2
طول الاسطوانة في الخلية C2
وهذه معادلة الحجم
=C2*(ACOS((A2-B2)/A2)*A2^2-(A2-B2)*SQRT(2*A2*B2-B2^2))
بالتوفيق
المنتدى تعليمي في المقام الأول
لذا يفضل وضع ما انتهيت إليه وتحديد نقطة أو اثنتين تقف أمامك في تطوير برنامجك
وبإذن الله تجد المساعدة من الجميع كل حسب ظروفه
فليس مهمة الموقع تصميم برامج جاهزة للعملاء لأن ساعتها ستكون بمقابل مادي
بالتوفيق
يمكنك وضع جميع ملفات الاكسل المطلوب تحويلها في مجلد باسم xls بنفس مسار الملف الذي به هذا الكود
وإنشاء مجلد باسم csv بنفس مسار الملف الذي به هذا الكود
واستدعاء الاجراء Mas_Xls2Csv
Sub Mas_Xls2Csv()
Dim xObjWB As Workbook
Dim xStrEFPath As String
Dim xStrEFFile As String
Dim xStrSPath As String
Dim xStrCSVFName As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
xStrEFPath = ThisWorkbook.Path & "\xls\"
xStrSPath = ThisWorkbook.Path & "\csv\"
xStrEFFile = Dir(xStrEFPath & "*.xls*")
Do While xStrEFFile <> ""
Set xObjWB = Workbooks.Open(Filename:=xStrEFPath & xStrEFFile)
xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".") - 1) & ".csv"
xObjWB.SaveAs Filename:=xStrCSVFName, FileFormat:=xlCSVUTF8
xObjWB.Close savechanges:=False
xStrEFFile = Dir
Loop
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "Done by mr-mas.com"
End Sub
بالتوفيق
أعتقد أنه لا يوجد حدث في الاكسل يسمى عند ادخال كلمة مرور خاطئة في vbe
كما أن حذف الموديولات يتطلب إعدادات خاصة في الماكرو
trust access to the vba project object model
ولا ينصح باستعمال هذه الخاصية إلا لمن يعرف التعامل معها وليس للعملاء مثلا
بالتوفيق
يمكنك استعمال هذه المعادلة في الخلية B2
=IF(A2="","لايوجد رقم","الرقم "&IF(COUNTIF(C:C,A2)>0,"","غير ")&"موجود")
وهذه في D2
=IF(C2="","لايوجد رقم","الرقم "&IF(COUNTIF(A:A,C2)>0,"","غير ")&"موجود")
بالتوفيق
تحتاج فقط إلى ضبط عرض الأعمدة سواء في خصائص العنصر أو بالكود التالي
Private Sub UserForm_Activate()
CM_ListFind.ColumnWidths = "40,80,200,110,80,80,80"
End Sub
مع تحريك العناوين الموجودة فوق القائمة
ويفضل جعل محاذاة القائمة يمين وليس توسيط
بالتوفيق
أعتقد لابد من وضع نسبة من الاثنين حتى يمكن الحصول على الثانية
لأن خلية النسبة داخلة في معادلة العمود I التي يتم حساب الخلية G11 بناء على مجموع العمود i
مع وضع g11 على شكل رقم وليس معادلة
وهذا جهدي المتواضع فيما يخص هذه الطريقة وقد أوضحت فيها:
* حساب مجموع العمود i في الخلية (i11) في حالة معرفة G11
* حساب النسبة في حالة معرفة القيمة المقابلة في i
بالتوفيق
ves.xlsx
يمكنك استعمال هذه المعادلة في الخلية m6 وسحب المعادلة لأسفل
=IF(L6>6,0,IF(L6>5,0.5,IF(L6>4,0.4,IF(L6>3,0.3,1))))*K6
مع مراعاة الفاصلة أو الفاصلة المنقوطة حسب اعدادات جهازك
بالتوفيق
إن كان ناتج هذه المعادلة مرجع نطاق مثل A1
فيمكن استعمال هذه المعادلة
=HYPERLINK("#"&CELL("address",INDIRECT("data!"&IFERROR(VLOOKUP(H11;DATA!A3:AQ252;43;FALSE);VALUE(("0"))))),"click here")
ويمكن تغيير نص الرابط click here إلى أي نص مرغوب
بالتوفيق