PDA

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



mhg134141
2019/02/06, 13:13
با سلام
با ارسال تصویر زیر خواهشمندم اگر ممکن باشد بفرمایید ایا میتون با ماکرو نویسی در اکسل جستجو در ستونها را بدون نیاز به منو بار و Find انجام داد ؟
مثل تصویر با کلیلک بر روی باکس جستجو با شماره پرونده ، شماره پرونده از کاربر درخواست شود و با وارد کردن شماره پرونده توسط کاربر ، سیستم خودش جستجو را انجام و در صورت وجود اسکرول بر روی همان شماره پرونده توقف کند و اگر موجود نبود پیغام دهد چنین شماره ای وجود ندارد . بسیار ممنون از راهنمایی اساتید .

hadi1980
2019/02/06, 14:35
سلام
يه نکته مهم يادتون باشه که ما اگه از VBA استفاده ميکنيم براي اينه که از ترکيب VB و Application بيشترين بهره‌ رو ببريم و در واقع هيچ الزامي به اين موضوع نيست
مثلا من چند وقت پيش سعي کردم از الگوريتم و (دکمه) سورت براي مرتب کردن داده‌ها استفاده کنم ولي وقتي ديدم اکسل داره طول ميده خب خيلي راحت برنامه سورت رو خودم نوشتم
خلاصه اينکه جوابتون بله است و براحتي ميشه با تبيين الگوريتم اون اين ماکرو رو نوشت
براي جستجو کافيه روي کل داده‌ها با يه if شرط تون رو کنترل کنيد و براي انتخاب و رفتن به سلول نتيجه هم ميتونيد از select استفاده کنيد به همين سادگي
اگه هم هيچي تو ماکرو نويسي بلد نيستيد که بايد فايل بزاريد تا بشه براتون نوشت
موفق باشيد
هادي

mhg134141
2019/02/06, 23:15
سلام آقا هادی از پاسخ و راهنمائی شما متشکر :
بدلیل محرمانه بودن اطلاعات مشتریان ارسال فایل ممکن نیست . اگر لطف کنین یه ماکرو بشرح زیر بنویسید بقیه رو خودم ادیت میکنم .
جستجو در ستون A :
با اجرای ماکرو پنجره ای ظاهر شود و شماره پرونده را از کاربر بپرسد
با دادن شماره پرونده و اینتر روی آن یا کلیک بر روی اوکی ، ماکرو ستون A را select کند و جستجور را انجم دهد در صورت یافتن اسکرول بر روی سلول مورد نظر توقف کند
اگر شماره یافت نشد پنجره دیگری ظاهر شود و پیغام دهد شماره مورد نظر یافت نشد .
سپاسگزارم مسعود

iranweld
2019/02/07, 12:27
با سلام


یک ماکرو ساده برای جستجو در ستون A

چنانچه فرمت سل ستون A تکست میباشد میتوانید دو تا val را در ماکرو ذیل حذف کنید If Val(Range("A" & I)) = Val(TextBox1) Then



Private Sub CommandButton1_Click()

z1 = Cells(Rows.Count, "A").End(xlUp).Row

For I = 2 To z1

If Val(Range("A" & I)) = Val(TextBox1) Then

Range("A" & I).Select

MsgBox "OK"

Exit For

End If

Next

End Sub

mhg134141
2019/02/08, 11:17
سلام و متشکرم .
این ماکرو در فایل پیوستی شما کار میکند اما وقتی در فایل خودم این ماکرو رو مینویسم کار نمیکند و باکسی ظاهر نمیشود که از من داده ای بگیرد . خود ماکرو میرود و در اولین سل خالی توقف و پنجره ok ظاهر میشود .

hadi1980
2019/02/13, 16:17
با سلام


یک ماکرو ساده برای جستجو در ستون A

چنانچه فرمت سل ستون A تکست میباشد میتوانید دو تا val را در ماکرو ذیل حذف کنید If Val(Range("A" & I)) = Val(TextBox1) Then



سلام
يه نکته گفتم شايد براتون جالب باشه
بجاي حذف val من هميشه اينکار رو ميکنم
هر دو طرف تساوي رو با صفر جمع ميکنم اينجوري تکست بطور اتوماتيک به عدد تبديل ميشه البته اگه تکستمون حاوي عدد باشه
خب البته چون اگه تکستمون حاوي تکست باشه با خطا مواجه ميشه خط قبلش هم نوشتيم آن ارور رزيوم تو نکست :)

hadi1980
2019/02/13, 16:26
سلام و متشکرم .
این ماکرو در فایل پیوستی شما کار میکند اما وقتی در فایل خودم این ماکرو رو مینویسم کار نمیکند و باکسی ظاهر نمیشود که از من داده ای بگیرد . خود ماکرو میرود و در اولین سل خالی توقف و پنجره ok ظاهر میشود .
سلام
خب معلومه نبايد اين ماکرو به تنهايي کار کنه
فايل اکسل ايشون شامل يه يوزرفرم هم هست که دکمه اي داره و اين سابروتين به اون دکمه نسبت داده شده
يعني اگه ميخواهيد تو فايلتون اجراش کنيد بايد اون فرم و دکمه هم تعريف بشن

mhg134141
2019/02/14, 00:04
سلام
متشکرم تست میکنم و نتیجه رو به عرض میرسانم .