PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : پرسش: شمارش و مقایسه یک محدوده از سلول با سلول های دیگر



eyou
2016/09/06, 08:52
سلام وقت بخیر
لطفا راهنمایی کنید من 8 تا سلول دارم که به این ترتیب می خوام هنگامی که داخلشون اطلاعات وارد شد بشمارم

شرط اول : اگر فقط در سلول شماره 1 اطلاعات وارد شد عدد یک تو یه سلول دیگه ای عدد یک نمایش بده
شرط دوم : اگر در سلول شماره 1 و سلول 2 تا 8 دیتا وارد شد تو یه سلول دیگه ای عدد یک رو نمایش بده
شرط سوم : اگر فقط در سلول 2 تا 8 دیتا وارد شد تو یک سلول دیکه ای عدد یک رو نمایش بده

amir_ts
2016/09/06, 09:12
با سلام
به ترتیب از فرمول های زیر استفاده کنید.


=if(and(a1<>"";countblank(a2:a8)=7);1;"")
=if(countblank(a1:a8)<1;1;"")
=if(and(a1="";countblank(a2:a8)=0);1;"")

eyou
2016/09/06, 11:15
با سلام
به ترتیب از فرمول های زیر استفاده کنید.


=if(and(a1<>"";countblank(a2:a8)=7);1;"")
=if(countblank(a1:a8)<1;1;"")
=if(and(a1="";countblank(a2:a8)=0);1;"")


از راهنماییتون واقعا ممنونم در خصوص شرط دوم و سوم یه توضیح بدم
در خصوص شرط دوم : حتما سلول 1 باید دیتا داشته باشه و از سلول 2 تا 8 یا همشون تکمیل باشه یا ما بینشون خالی هم بمونه در این صورت عدد یک نشون بده الان فرمولی که شما لطف کردید حتما باید همشون تکمیل باشن تا 1 نشون بده
در خصوص شرط سوم : حتما سلول 1 باید خالی باشه و از سلول 2 تا 8 مثل شرط دوم بود عدد 1 نمایش بده

بازم ممنون از راهنماییتون

iranweld
2016/09/06, 11:41
با سلام

فرمول اصلاح شد

شرط دوم


=if(and(a1<>"",countblank(a2:a8)>0,countblank(a2:a8)<7),1,"")

شرط سوم


=if(and(a1="",countblank(a2:a8)>0,countblank(a2:a8)<7),1,"")

eyou
2016/09/06, 12:24
با سلام

فرمول اصلاح شد

شرط دوم


=if(and(a1<>"",countblank(a2:a8)>0,countblank(a2:a8)<7),1,"")

شرط سوم


=if(and(a1="",countblank(a2:a8)>0,countblank(a2:a8)<7),1,"")

واقعا ممنونم کاش می شد 100 بار دکمه تشکر زد
بازم ممنون

eyou
2016/09/06, 12:25
اگر سوال جدیدی داشتم پست جدید بزنم ؟ یا در ادامه این مطلب همینجا می تونم بپرسم ؟؟؟؟

iranweld
2016/09/06, 12:37
اگر سوال جدیدی داشتم پست جدید بزنم ؟ یا در ادامه این مطلب همینجا می تونم بپرسم ؟؟؟؟


اگر در مورد موضوع این پست میباشد همینجا ادامه دهید و اگر موضوع فرق مینماید پست جدید ایجاد کنید

eyou
2016/09/06, 12:57
در رابطه با شرط سوم

=if(and(f8=""؛countblank(g8:m8)>0؛countblank(g8:m8)<7)؛1؛"")

در شرط سوم مشخص شد که اگر در هر یک از سلولهای 2 تا 8 دیتا وارد شد عدد 1 توی سلول دیگه نمایش بده
حالا در این خصوص می خوایم یک شرط دیگه بزاریم که اگر شرایط سوم برقرار بود و عدد یک در سلول مربوطه نشون داد حتما باید از محدوده ده سلول دیگه که مورد نظرمون هست در یکی از سلول ها حتما دیتا وارد بشه اگر نشد پیغام بده و رنگ اون محدوده 10 سلول مورد نظر هم به قرمز تغییر کنه

یعنی اگر داخل سلول A1 عدد 1 بود حتما در محدوده a10:a20 سلول مورد نظر حتما حداقل یک سلولش باید تکمیل بشه در غیر اینصورت پیغام بده و رنگ اون محدوده 10 سلول تغییر کنه
اگر شرط سوم برقرار بود تا زمانی هم که حداقل یکی از اون محدوده 10 تا رو تکمیل نکنه نتونه بره ستون بعدی

بازم ممنون

iranweld
2016/09/06, 13:20
در فایل پیوست دو شرط موجود در سلولهای h1 و h2 در کاندیشنال فرمتینگ اعمال گردید.

در صورتیکه شرط برقرار نباشد سلولها قرمز شده و در صورت برقراری شرط آبی میگردد

12558

eyou
2016/09/06, 13:38
در فایل پیوست دو شرط موجود در سلولهای h1 و h2 در کاندیشنال فرمتینگ اعمال گردید.

در صورتیکه شرط برقرار نباشد سلولها قرمز شده و در صورت برقراری شرط آبی میگردد

12558

واقعا ممنونم از لطفتون منتهی منظورم این نبود منظورم عکس زیر بود
12559

amir_ts
2016/09/06, 17:32
با سلام
فایل پیوستی را ملاحظه کنید.



Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Variant
If Intersect(Target, Range("C2:N2")) Is Nothing Then Exit Sub
If Range("a1").Value = 1 Then

If Target.Application.CountBlank(Range("C2:N2")) < 11 Then
Range("c" & Target.Row, Range("n" & Target.Row)).Interior.ColorIndex = 0
MsgBox " ÔãÇ ãÌÇÒ Èå Ñ ˜ÑÏä í˜ Óáæá ãíÈÇÔíÏ."
Target.Value = ""
Exit Sub

ElseIf Target.Application.CountBlank(Range("c2:n2")) > 11 Then
Range("c" & Target.Row, Range("n" & Target.Row)).Interior.ColorIndex = 3
MsgBox "ÈÇíÏ í˜ Óáæá ÑÇ Ñ ˜äíÏ"
Exit Sub

End If
End If
Range("c" & Target.Row, Range("n" & Target.Row)).Interior.ColorIndex = 0
End Sub

eyou
2016/09/07, 09:34
با سلام
فایل پیوستی را ملاحظه کنید.



Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Variant
If Intersect(Target, Range("C2:N2")) Is Nothing Then Exit Sub
If Range("a1").Value = 1 Then

If Target.Application.CountBlank(Range("C2:N2")) < 11 Then
Range("c" & Target.Row, Range("n" & Target.Row)).Interior.ColorIndex = 0
MsgBox " ÔãÇ ãÌÇÒ Èå Ñ ˜ÑÏä í˜ Óáæá ãíÈÇÔíÏ."
Target.Value = ""
Exit Sub

ElseIf Target.Application.CountBlank(Range("c2:n2")) > 11 Then
Range("c" & Target.Row, Range("n" & Target.Row)).Interior.ColorIndex = 3
MsgBox "ÈÇíÏ í˜ Óáæá ÑÇ Ñ ˜äíÏ"
Exit Sub

End If
End If
Range("c" & Target.Row, Range("n" & Target.Row)).Interior.ColorIndex = 0
End Sub




سلام بازم ممنون
یک سوال در اون محدوده هر چیزی وارد کنم دیگه اخطار نمیده یا فقط باید عدد وارد بشه ؟
چون اطلاعت من عدد هست که باید وارد بشه
سوال دوم هم اینکه حالا میشه گفت اگر در این محدوده مثلا a1:a30 عدد 1 بود یکی از سلول های محدوده a30:a40 باید تکمیل بشه ؟

amir_ts
2016/09/07, 09:46
با سلام



ک سوال در اون محدوده هر چیزی وارد کنم دیگه اخطار نمیده یا فقط باید عدد وارد بشه ؟
چون اطلاعت من عدد هست که باید وارد بشه

مهم نیست فقط باید کاراکتر وارد بشه که خالی نباشه .
برای سوال دوم کد زیر را در شیت دوم قرار دادم ملاحظه کنید.
در صورتی که عدد 1 در محدوده مشخص وارد بشه یک پیغام میده.




Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:A30")) Is Nothing Then Exit Sub
If Target.Value = 1 Then
MsgBox "í˜í ÇÒ Óáæá åÇí ãÍÏæÏå a30:a40 ÈÇíÏ Ê˜ãíá ÔæÏ."
End If
End Sub

eyou
2016/09/07, 10:23
با سلام


مهم نیست فقط باید کاراکتر وارد بشه که خالی نباشه .
برای سوال دوم کد زیر را در شیت دوم قرار دادم ملاحظه کنید.
در صورتی که عدد 1 در محدوده مشخص وارد بشه یک پیغام میده.




Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:A30")) Is Nothing Then Exit Sub
If Target.Value = 1 Then
MsgBox "í˜í ÇÒ Óáæá åÇí ãÍÏæÏå a30:a40 ÈÇíÏ Ê˜ãíá ÔæÏ."
End If
End Sub








12577
حالا این تو ردیف های پایین هم تکرار میشه 60 تا ردیف داره

amir_ts
2016/09/07, 11:14
شیت 3 فایل پیوستی را ملاحظه کنید به محض ورود عدد 1 پیغامی مبنی بر نوشتن عدد یک در محدوده مشخص داده میشود.

eyou
2016/09/07, 12:38
شیت 3 فایل پیوستی را ملاحظه کنید به محض ورود عدد 1 پیغامی مبنی بر نوشتن عدد یک در محدوده مشخص داده میشود.

واقعا ازتون ممنونم که برای من وقت می گذاشتین نمیدونم چطور باید تشکر کنم
الان شما فرمودید که به محض ورود عدد 1 پیغام میده
عدد یک بر اساس فرمول قبلی که فرموده بودید توی اون سلول وارد میشه

=if(and(f8=""؛countblank(g8:m8)>0؛countblank(g8:m8)<7)؛1؛"")

الان فرومول که بر میدارم بطور دستی 1 میزارم پیغام میاد ولی فرمول که میزارم نمیاد

eyou
2016/09/07, 12:45
ببخشید من دونه به دونه سوال میپرسم چون کاری که دارم انجام میدم مرتبت به هم دیگس

amir_ts
2016/09/07, 12:49
ببینید به دلیل اینکه از رویداد change استفاده کردیم باید اون سلول تغییر کنه که دستور اجرا بشه.حالا چون سلول حاوی فرمول داخل تغییر میکنه باید سلول رو انتخاب کنیم تا دستور اجرا بشه.
به خط اول عبارت Selection رو اضافه کنید و بعد بر روی سلولی که عدد یک هست کلیک کنید.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

eyou
2016/09/07, 13:08
ببینید به دلیل اینکه از رویداد change استفاده کردیم باید اون سلول تغییر کنه که دستور اجرا بشه.حالا چون سلول حاوی فرمول داخل تغییر میکنه باید سلول رو انتخاب کنیم تا دستور اجرا بشه.
به خط اول عبارت Selection رو اضافه کنید و بعد بر روی سلولی که عدد یک هست کلیک کنید.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

ارور داد بازم اجرا نشد :min17:

1258012581

amir_ts
2016/09/07, 13:37
شیت 3 را ملاحظه کنید.

eyou
2016/09/07, 14:11
شیت 3 را ملاحظه کنید.

بازم ارور میده
فایل اصلی اکسل براتون ایمیل کردم

12585

eyou
2016/09/07, 14:14
اگر بخوام همین شرط رو برای ردیف های پایینی هم اعمال بشه چکار باید بکنم ؟

amir_ts
2016/09/07, 14:17
بازم ارور میده
فایل اصلی اکسل براتون ایمیل کردم

12585
بدلیل اینکه سلول های q7:q12 رو merge کردید.
از حالت merge خارج کنید و نتیجه را ملاحطه کنید.

eyou
2016/09/07, 14:40
بدلیل اینکه سلول های q7:q12 رو merge کردید.
از حالت merge خارج کنید و نتیجه را ملاحطه کنید.
اگر از حالت merge خارج کنم کل فرم بهم میخوره امتهان کردم بازم نشد

به نظرتون چکار کنم ؟

amir_ts
2016/09/07, 17:40
اگر بخوام همین شرط رو برای ردیف های پایینی هم اعمال بشه چکار باید بکنم ؟


If Intersect(Target, Range("Q7:Q426")) Is Nothing Then Exit Sub



اگر از حالت merge خارج کنم کل فرم بهم میخوره امتهان کردم بازم نشد

به نظرتون چکار کنم ؟
تا حد امکان از merge کردن سل ها باید خودداری کرد اگر اصرار به merge کردن سل دارید باید ازدکمه (Button) برای اجرا استفاده کنید.