سلام میخوام برای یه سلول مقدار پیشفرض بزارم که اگه خودمون دستی بهش مقدار دادیم که همون مقدارو بگیره در غیر اینصورت به صورت پیش فرض برابر بشه با مقدار یه سول دیگه من تازه دارم vb یاد میگیرم اگه فایل ضمیمه کنید ممنون میشم مرسی از لطفتون
مقدار پیش فرض سلول
Collapse
این تاپیک قفل است.
X
X
-
سلام دوست عزيز
اين فايل رو ملاحظه بفرماييد
مقدار پيش فرض رو در سلول a1 وارد كنيد و مقدار را در سلول a2 وارد كنيدفایل های پیوست شده -
ممنون از لطفتون جناب قاسمیان تو نمونه ای که ارسال کردید در صورتی که سلول a2 مفدارش رو پاک کنیم و مقدارش خالی باشه مقدار a1 رو میگیره ولی من میخوام به صورت خودکار هر تغییری در سلول a1 وارد بشه در سلول a2 نیز اعمال بشه یعنی مثلا وقتی a1 برابر با 10 میزاریم a2 هم مقدارش در لحظه 10 بشه مگر اینکه خودمون به a2 مقدار بدیم ممنون از وقتی که میزاریدکامنت
-
ممنون از لطفتون جناب قاسمیان تو نمونه ای که ارسال کردید در صورتی که سلول a2 مفدارش رو پاک کنیم و مقدارش خالی باشه مقدار a1 رو میگیره ولی من میخوام به صورت خودکار هر تغییری در سلول a1 وارد بشه در سلول a2 نیز اعمال بشه یعنی مثلا وقتی a1 برابر با 10 میزاریم a2 هم مقدارش در لحظه 10 بشه مگر اینکه خودمون به a2 مقدار بدیم ممنون از وقتی که میزارید
اگر مقدار سلول a2 رو خالي كرديد چه اتفاقي بيفته؟ خالي بمونه يا مقدار a1 رو بگيره؟کامنت
-
پس من كدها رو ميدم خدمتتون خودتون جايگذاري كنيد
اين كد براي اينكه اگر مقدار رو خالي گذاشتيد خالي بمونه
کد:Private Sub Worksheet_Change(ByVal Target As Range) default_value = Range("A1").Value If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub Range("A2").Value = default_value End Sub
کد:Private Sub Worksheet_Change(ByVal Target As Range) default_value = Range("A1").Value If Not Intersect(Target, Range("A1")) Is Nothing Then Range("A2").Value = default_value ElseIf Not Intersect(Target, Range("A2")) Is Nothing Then If Range("A2") = "" Then Range("A2") = default_value Else Exit Sub End If End Sub
کامنت
-
پس من كدها رو ميدم خدمتتون خودتون جايگذاري كنيد
اين كد براي اينكه اگر مقدار رو خالي گذاشتيد خالي بمونه
کد:Private Sub Worksheet_Change(ByVal Target As Range) default_value = Range("A1").Value If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub Range("A2").Value = default_value End Sub
کد:Private Sub Worksheet_Change(ByVal Target As Range) default_value = Range("A1").Value If Not Intersect(Target, Range("A1")) Is Nothing Then Range("A2").Value = default_value ElseIf Not Intersect(Target, Range("A2")) Is Nothing Then If Range("A2") = "" Then Range("A2") = default_value Else Exit Sub End If End Sub
Dim SchedRecalc As Date
Sub Recalc()
Sheet2.Range("B2").Value = Format(Time, "hh:mm:ss")
Call SetTime
End Sub
Sub SetTime()
SchedRecalc = Now + TimeValue("00:00:01")
Application.OnTime SchedRecalc, "Recalc"
End Sub
اگه من بخوام درون شیت یه لیبل بزارم و کد زیر براش با باز شدن شیت (نه با دبل کلیک بر روی لیبل) اجرا بشه چه جوری باید تغییر کنه
Private Sub Label1_Click()
a:
DoEvents
Label1.Caption = Time
DoEvents
GoTo a:
End Sub
باید کد رو درون Private Sub Worksheet_Activate() بنویسم درسته؟ و اینکه چطور بگم کد پشت لیبل درون شیت اجرا بشهکامنت
-
خیلی ممنون از لطفتون جناب قاسمی یه سوال دیگه داشتم ببخشید وقتتونو زیاد میگیرم قبلا زحمت کشیدید و کد زیر را برای ساعت پویا برام نوشتید فقط همونطور که اشاره کردید برنامرو کند میکنه
Dim SchedRecalc As Date
Sub Recalc()
Sheet2.Range("B2").Value = Format(Time, "hh:mm:ss")
Call SetTime
End Sub
Sub SetTime()
SchedRecalc = Now + TimeValue("00:00:01")
Application.OnTime SchedRecalc, "Recalc"
End Sub
اگه من بخوام به جای استفاده از کد بالا از کد زیر (که به نظر کندیه کمتری محسوس میشه) استفاده کنم باید درون شیت یه لیبل بزارم و کد را داخل اون بنویسم فقط مشکل اینجاست که برای اجرا کردنش باید روی لیبل کلیک کنم ؛ میخوام یه حالتی پیش بیاد که بدون اینکه نیاز به کلیک باشه به صورت خودکار با باز شدن شیت یا فایل مربوطه کد ساعت اجرا بشه خیلی ممنون
Private Sub Label1_Click()
a:
DoEvents
Label1.Caption = Time
DoEvents
GoTo a:
End Sub
فایل های پیوست شدهکامنت
کامنت