PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : [حل شده] کد vba



امین نیما
2015/09/14, 00:03
با سلام به همه دوستان 2 سوال دارم
من فرمول های زیادی در یک برنامه کاری برای حدود 30 نفر از پرسنل نوشتم
اگه بخوام به کمک command button فرمول های نوشته شده در function را در vba بنویسم
دوستان راهنمایی بفرمایند
1-آیا میشه مثل زمانی که از رکورد ماکرو استفاده میکنیم و کد ها رو میبینیم فرمولهای نوشته شده در function را در VBA را ببینیم؟ (چطور میشه فرمولهای استفاده شده در function تغییر داد به زبان VBA آیا نرم افزاری یا سایتی هست برای این کار؟ )
2- این کد در vba چگونه نوشته میشود ( " " ; "IF(AND($E$4:$AI$4<>"*";$E$4:$AI$4<>"×");"D

mch2v
2015/09/14, 11:04
سلام


(چطور میشه فرمولهای استفاده شده در function تغییر داد به زبان VBA آیا نرم افزاری یا سایتی هست برای این کار؟ )

نرم افزار یا سایتی برای این کار فکر نکنم وجود داشته باشه ولی شما برای این کار باید زبان vba رو یاد بگیرید که تو این سایت مطالب زیادی وجود داره و از فروشگاه سایتم میتونید آموزشها رو تهیه کنید


2- این کد در vba چگونه نوشته میشود ( " " ; "IF(AND($E$4:$AI$4<>"*";$E$4:$AI$4<>"×");"D

یه
command button ایجاد کنید و این کد رو داخلش بنویسید.
Dim c As Range
For Each c In Range("e4: ai4")
If c <> "*" And c <> "x" Then
c.Value = "D"
Else
c.Value = ""
End If
Next

Ali Parsaei
2015/09/14, 11:06
سلام،
وقتي ماکرو را ضبط مي کنيد و کدهاي ضبط شده را تماشا مي کنيد در اصل فرمولهايي که نوشته ايد را مي بينيد، فقط يک مقدار متفاوت از آن چيزي است که انتظار داريد،
معمولا" هنگام ضبط ماکرو اگر فرمول نويسي انجام دهيد اکسل کارهاي شما را با روش R1C1 و نسبت به سل فعال کد نويسي مي کند.
فرضا" اين کد:


ActiveCell.FormulaR1C1 = "=R[-2]C[-1]+R[-1]C[-1]"

يعني شما کارهاي زير را در هنگام ضبط ماکرو انجام داده ايد:
در خانه فعال اين فرمول را نوشته ايد:
ابتدا عبارت = (مساوي) را تايپ نموده ايد
سپس خانه اي که رديف آن دو رديف از رديف سل فعال کمتر و ستون آن يک ستون از ستون سل فعال کمتر بوده را انتخاب نموده ايد
سپس عبارت + (به اضافه) را تايپ نموده ايد
سپس خانه اي که رديف آن يک رديف از رديف سل فعال کمتر و ستون آن يک ستون از ستون سل فعال کمتر بوده را انتخاب نموده ايد

براي اينکه فرمولهاي داخل صفحه اکسل را در VBA به کاربريد بايد کد را با عبارت زير شروع کنيد:


Application.WorksheetFunction.

البته تمام فرمولهاي داخل شيت در VBA تعريف نشده اند، مثلا" تا آنجا که من ديدم تابع IF در VBA تعريف نشده، و بايد از دستورات شرطي خود VBA که IF مخصوص به خود را دارد استفاده گردد.
البته يک کار ديگر هم مي توانيد انجام دهيد و اون اينکه با يک دستور در ماکرو به اکسل بگوييد که دقيقا" فرمولي که مي خواهيد را در خانه اي که مي خواهيد تايپ کند، مثلا" اينطوري:


RANGE("A1").VALUE="=هر فرمولي خواستيد اينجا بنويسيد"

با کد فوق فرمول در خانه A1 نوشته مي شود و A1 را به هر خانه ديگري خواستيد تغيير دهيد تا فرمول در آن خانه نوشته شود

امین نیما
2015/09/15, 00:36
با تشکر از دوستان
جناب mch2v , مدیر سایت جناب پارسا

امین نیما
2015/09/15, 00:53
سلام

نرم افزار یا سایتی برای این کار فکر نکنم وجود داشته باشه ولی شما برای این کار باید زبان vba رو یاد بگیرید که تو این سایت مطالب زیادی وجود داره و از فروشگاه سایتم میتونید آموزشها رو تهیه کنید

یه
command button ایجاد کنید و این کد رو داخلش بنویسید.
Dim c As Range
For Each c In Range("e4: ai4")
If c <> "*" And c <> "x" Then
c.Value = "D"
Else
c.Value = ""
End If
Next





با تشکر از راهنمایی شما
این فرمول باید در سلول های e8 الی al8 باید عمل کنه الان فرمول رو که مینویسی هر کجا بخواد اعمال میکنه فرمول را

mch2v
2015/09/15, 10:03
با تشکر از راهنمایی شما
این فرمول باید در سلول های e8 الی al8 باید عمل کنه الان فرمول رو که مینویسی هر کجا بخواد اعمال میکنه فرمول را
ببینید این کد از سلول E4 تا سلول AI4 عمل میکنه و اگه تو سلول دیگه میخواید عمل کنه قسمت قرمز رنگ کد رو به سلول مورد نظر تغییر بدید

For Each c In Range("e4: ai4")