اکسل می تواند محلی برای ذخیره اطلاعات و دادههای سازمان شما باشد و البته در بسیاری از موارد برای ذخیره داده ها در یک شیت اکسل شاید ترجیح دهید که ابتدا اطلاعات توسط کاربر تایپ شود و سپس با زدن یک دکمه آن اطلاعات در یک شیت اکسل ذخیره شوند.
دلایل استفاده از فرم ورود اطلاعات در اکسل:
1- نحوه چیدمان دلخواه فرم
2- بررسی کردن اطلاعات توسط گزینه هایی مانند Data Validation
3- ثبت اطلاعات به صورت یک لیست (جدول) در اکسل برای گزارش گیری
اشتباه عمده کاربران اکسل در طراحی فرم
بسیاری از کاربران اکسل برای ساخت فرم "ورود اطلاعات" از user formها در VBA استفاده می کنند که به نظر نگارنده این انتخاب الزاما بهترین نیست و البته استفاده از یک شیت اکسل به مراتب میتواند گزینه بهتری باشد.
(یک نمونه فرم ساخته شده در محیط VBA اکسل)
استفاده از userform کار را به مراتب سخت و پیچیده می کند:
1- فرم های VBA به مراتب به کد نویسی بیشتری احتیاج دارند. مثلا برای ساخت یک کمبو باکس .
2- از دست دادن ده ها امکانات اکسل مانند فرمول نویسی اضافی / تست داده ها با توابع اکسل/ onditional formatting
اصول کلی ساخت فرم ورود اطلاعات در اکسل
فرض کنید که قرار است اطلاعت فرم بالا را در لیست زیر کپی کنید:
1- آنچه را که می خواهید کپی کنید ابتدا به صورتی ساده با فرمول نویسی در یک سطر در کنار هم بیاروید تا کار کپی آنها ساده شود.
2- محل سلول خالی در لیست مرجع را که قرار است اطلاعات را در آنجا کپی کنید، با فرمول COUNTA بیابید.
3- از کد VBA که در فایل پیوست مشاهده می کنید استفاده کنید تا اطلاعات را در شیت مرجع PASTEVALUE نمایید.
به روزرسانی مقاله (فرودین 97)
در کامنتها بسیاری از کاربران سوال کرده بودند که چطور میتوان فرم را پس از ورود اطلاعات خالی کرد . (یعنی مقادیر قبلی پاک شود)
برای اینکار کافی است که در انتهای کد، از متد ClearContents استفاده کنید که در فایل اکسل پیوست، این نکته اضافه شده است.
محافظت از دادههای اصلی
یکی از مزایای ساخت فرم ورود اطلاعات در اکسل آن است که دادههای اصلی (دیتابیس) ما توسط کاربر در دسترس نباشد و کاربر فقط بتواند ثبت را انجام دهد.
برای فهم این موضوع از یک مثال واقعی که در یکی از دورههای فرساران مطرح شد استفاده میکنم:
در یک کارخانه سرپرست خط تولید میخواهد که چند تا از اپراتورهایش دادههایی را ثبت کنند اما ممکن است یکی از آنها به اشتباه دادههای قبلی را دستکاری کند.
برای اینکار کافی است که قبل از ثبت دادهها در برنامه، پسورد شیت دادههای اصلی برداشته شود و سپس دادهها ثبت شوند و سپس پسورد بر روی شیت مجدد فعال شود. این کار توسط کد زیر انجام میشود.
نکته: پسورد شیت دیتابیس اصلی ما (که نامش آن List است) را salam قرار داده شده است و باید در هنگام ذخیره کردن فایل این شیت را با این پسورد protect کنیم.
Sub Copy2List()
Sheets("List").Unprotect "salam"
x = Sheets("Form").Range("L1").Value
Sheets("Form").Range("M1:S1").Copy
Sheets("List").Cells(x, 1).PasteSpecial xlPasteValues
Sheets("List").Protect "salam"
End Sub
شما هم تجربه یا دیدگاه خود را بنویسید:
سوال شما کمی اشتباه است.
این دو چیز رابطه سلسله مراتبی دارند و همیشه به هم مربوط هستند.
ماژول یعنی یک صفحه خالی (مثل صفحه پاورپوینت) که در آنجا برنامه (ماکرو) را تایپ می کنیم.
سلام
اگر بخوایم از این فرم برای اینکه در دو شیت جداگانه ذخیره کنیم چکار کنیم
مثلا اکر دختر باشد تو شیت دختران و اگر پسر باشد در شیت پسران
ساده است . با دستور IF:
If Range("A1") = "Female" Then
Sheets("ListFemale").Cells(x, 1).PasteSpecial xlPasteValues
ElseIf Range("A1") = "Male" Then
Sheets("ListMale").Cells(x, 1).PasteSpecial xlPasteValues
End If
سلام
میشه بگین چطور میتوان یه دکمه پرینت نیز کنار ثبت تماس اضافه کرد؟
خیلی ساده است. لطفا مقاله های آموزش رکورد ماکرو را ببینید.