ساخت فرم VBA در اکسل(قسمت چهارم)

ساخت فرم VBA در اکسل(قسمت چهارم)

در ساخت فرم VBA در اکسل(قسمت چهارم) قصد داریم با انتخاب هر رکورد از لیست باکس(Listbox) مقادیر موجود در سطر را به ترتیب در تکست باکس های Userform نمایش دهیم لذا در ابتدا نیاز به یک حلقه داریم که ابتدا از اولین رکورد تا آخرین رکورد موجود در لیست باکس را بررسی کند تا رکورد انتخاب شده را تعیین و درمحل دلخواه ما نمایش دهد.

به کدهای VBA زیر دقت کنید:

Dim i As Integer
    For i = 0 To ListBox1.ListCount
        If ListBox1.Selected(i) Then
            TextBox1.Text = ListBox1.List(i, 0)
            TextBox2.Text = ListBox1.List(i, 1)
            TextBox3.Text = ListBox1.List(i, 2)
            ComboBox1.Text = ListBox1.List(i, 3)
            Exit For
            End If
    Next i

توضیحات: در کدهای فوق، ما ابتدا یک حلقه For i .. Next تعریف نمودیم تا از اولین رکورد ( عدد صفر) تا آخرین رکورد(ListCount) لیست باکس را فراخوانی کند. سپس با استفاده از دستور شرطی if رکوردی که انتخاب شده است را شناسایی کردیم و در ادامه یکایک داده های آن رکورد را به ترتیب در تکست باکس های یوزرفرم نمایش دادیم.

سوال: قطعه کدفوق در کدام قسمت از Userform باید درج گردد؟

از آنجایی که قصد داریم با انتخاب هر رکورد از لیست باکس مقادیر آن در تکست باکس های یوزرفرم نمایش داده شود لذا قطعه کد فوق باید در قسمت ListBox1_Click همانند تصویر زیر درج گردد:

ساخت فرم VBA در اکسل(قسمت چهارم)
ساخت فرم VBA در اکسل(قسمت چهارم)

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

در پایان برای شما کدهای وی بی ای این بخش را بصورت یکجا آورده ایم تا در صورت تمایل با راست کلیک کردن برروی Userform1 و انتخاب گزینه View Code بتوانید به سرعت این بخش را به یوزرفرم خود اضافه و آن را فعال نمایید:

Private Sub ListBox1_Click()
Dim i As Integer
    For i = 0 To ListBox1.ListCount
        If ListBox1.Selected(i) Then
            TextBox1.Text = ListBox1.List(i, 0)
            TextBox2.Text = ListBox1.List(i, 1)
            TextBox3.Text = ListBox1.List(i, 2)
            ComboBox1.Text = ListBox1.List(i, 3)
            Exit For
            End If
    Next i

End Sub

حال با انتخاب هریک از رکوردهای ثبت شده در نرم افزار، داده های آن رکورد در Textboxs فرم نمایش داده خواهد شد:

ساخت فرم VBA در اکسل(قسمت چهارم)
ساخت فرم VBA در اکسل(قسمت چهارم)

در پایان امیدواریم ساخت فرم VBA در اکسل(قسمت چهارم) نیز مورد رضایت شما عزیزان و سروران گرامی قرار گرفته باشد لذا در صورت وجود هرگونه انتقاد و پیشنهاد می توانید آن را در قسمت نظرات برای ما ارسال نمایید. با تشکر

پیشنهاد ما به شما

گروه آموزشی اکسل لرن
فیسبوک توییتر گوگل + لینکداین تلگرام واتس اپ کلوب

امتیاز شما به مطلب

دوست داشتم: 153
دوست نداشتم: 132
میانگین امتیازات: 1.16

33 دیدگاه در “ساخت فرم VBA در اکسل(قسمت چهارم)

بسیار عالی از آموزش های مختصر ، مفید و خوبتان
با همین فرمان ادامه دهید
منتظر بخش پنجم هستم

سلام ارادتمندم
تشکر از اینکه وقت گذاشتید و نظر ارسال کردید
اطاعت امر

سلام و خسته نباشید
میخواستم تو صفحه ورد یه دکمه ذخیره ایجاد کنم که هر بار با زدن اون دکمه سند تو یه درایو ذخیره بشه، امکانش هست؟
ممنون میشم کدش رو هم بگذارید.

سلام ارادت
حقیقت آقا مجتبی در این حد به کدهای وی بی در word تسلط ندارم و نمی توانم اظهارنظر کنم. پوزش میطلبم رفیق

برای ثبت پلاک ماشین که از چهار بخش تشکیل میشه از چه ابزاری استفاده کنیم

سلام ، همانند پلاک خودرو به تعداد جایگاه رقام و حروف، از Textbox استفاده کنید.

سلام خدا قوت
آیا امکان دارد بعداز طراحی فرم در اکسل و vba برای آوردن صفحه فرم بدون باز کردن اکسل مستقیم فرم را آورد و اطلاعات را ذخیره کرد؟

سلام و خدا قوت
آیا امکان دارد در فرم تهیه شده با افزودن باتون از فرم پرینتر گرفته شود؟
با تشکر

موضوع دیگه اینکه شیت های من هر کدام نام فارسی دارند وقتی عمل جستجو طبق روش شما انجام میدم ارور 1004میده.

سلام تشکر
از فرم بنظر اینجانب خیر، شما محتوای فرم را به سلول های کاربرگ منتقل کنید و سپس پرینت تهیه کنید که منطقی تر است.

سعی کنید به جای اشاره به نام کاربرگ ها به جایگاه آنها اشاره کنید
worksheets(1) یعنی کاربرگ اول از سمت چپ

سلام خدا قوت
ممنون مشکل تا حدودی حل شد ولی مشکل جدیدم اینه که جستجو من طبق روش شما عدد را پیدا می کنه درصورتی که من میخواهم جستجو براساس متن باشه مثلاً عنوان نامه رو نوشته و در جستجو پیدا کنه
باز هم ممنون از راهنمای شما دوست عزیز

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

سلام ارادت آقا سعید عزیز
بله امکان پذیر است قربان ولی چرا SpinButton ؟
بنظرم کاربردی نیست قربان

با سلام و عرض ارادت خدمت آقا سيد مسعود عزيز
آموزشهاتون همه مصداق «زَكَاةُ الْعِلْمِ نَشْرُه» هستش . اجركم عندالله.
خيلي استفاده كردم و آموزشهاي اكسل برام مفيد بود. يك يوزر فرم ايجاد كردم و قصد دارم اطلاعات يكسري پرونده رو وارد كنم . فقط ميخوام يك كليد جستجو هم تو فرم داشته باشم ، چون تعداد پرونده ها زياده تا بعد از ثبت همه ، بشه تو شون جستجو كرد و پرونده مورد نظر رو پيدا كرد. ضمنا يه سوال ديگه : آيا ميشه يك كليد هم تو فرم تعبيه كرد كه پس از ثبت اطلاعات هر پرونده ، يك شماره هم به هر پرونده بده به عنوان شماره بايگاني؟
ممنون ميشم راهنمايي فرمائيد.

سلام ارادتمندم جناب اسدی عزیز
تشکر میکنم از حضور شما
جناب اسدی حقیقت این مواردی که فرمودید را بنده سابق در پکیج طراحی فرم آموزش دادم : https://b2n.ir/774189
کلید جستجو نیازمند یک حلقه است که یکایک آیتم های آن ستون را با محتوای تکست باکس مقایسه کند و اگر برابر بود ، اطلاعات آن را سطر را داخل تکست باکس ها فراخوانی کند.
حلقه For i … Next i برای این روش پاسخگو است.
در خصوص شماره پرونده نیز از تابع CountA استفاده کنید، یعنی هنگام ثبت ابتدا محتوای ستون را شمارش کند و سپس کدبایگانی را براساس تعداد ثبت شده ها تعیین کند.

قربان ميشه لطفا كد كامل For i…….Next i و تابع CountA , رو برام بنويسيد؟ خيلي شرمنده كه جسارت مي كنم.
و يك سوال ديگه در مورد فراخواني رديف ثبت شده در ليست باكس به تكست باكس يوزرفرم داشتم از خدمتتون ، آيا كدي هست كه بعد از فراخواني ، اگه احيانا اشتباهي در ثبت اطلاعات شده ، بعد از فراخواني ، اون قسمت رو ويرايش و سپس دوباره اطلاعات ويرايش شده ، تو همون رديف دوباره ذخيره بشه بدون اينكه اطلاعات بره به رديف بعدي؟ و دوباره ادامه بديم به ثبت اطلاعات جديد؟

با سلام وتشکر از تدریس زیباتون
چطور میتوان لیست باکس تعریفی بیش از 10ستون داشته باشد
ممنون

سلام خوشحالم که با شما و وبلاگتون آشنا شدم
یه میخوام از یه طریقی با هم در ارتباط باشید چندتا سوال دارم که دوست دارم راهنماییم بدید لطفا اگر پیامم رو دیدید به آی دی تلگرامم پیام بدید @AliMousavi313

سلام و وقت بخیر شما می توانید از گروه پرسش و پاسخ ما در تلگرام استفاده کنید
تنها کافیه لینک گروه را از ربات دریافت کنید
Masoudhosseini_bot

ممنون از زحماتتون . من از شیوه های آموزشی شما لذت میبرم .

سلام امیرخان ممنونم از محبت شما دوست عزیزم. خوشحالم که مورد پسند است.

سلام و وقت بخیر
ممنون از آموزش کامل و بسیار مفید شما
اگر بخواهم در فرم تصویری که درج می کنم با نام کد پرسنلی و در یک فایل مشخص ذخیره شود تا مثلا زمانی که کر پرسنلی را جستجو می کنم تصویر ذخیره شده را نیز نمایش دهد از چه دستوری باید استفاده کنم.
سپاس فراوان از شما

سلام خوبین؟
خواهشمندم سوالات اکسل را در گروه ما مطرح کنید. تا بهتر بتوانیم شمارو راهنمایی کنیم.
دریافت لینک گروه از ربات زیر:
@Masoudhosseini_bot
در قسمت کامنت ها فضای کافی و امکانات برای راهنمایی شما نیست متاسفانه

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

“ActiveSheet.ListObjects.Add(xlSrcRange, ws.Range(StartCell, ws.Cells(Lastrow, Lastcol)), , xlYes).Name = _”Table1

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

درود بر شما استاد گرامی
بسیار سپاسگزارم از نحوه آموزش کاربردی جنابعالی . واقعآ” شیوا مطالب را ارائه می نمائید. از موضوعات آموزشی خصوصا” ساخت فرم VBA در اکسل هم استفاده و هم لذت بردم .
قدردان لطف بی منت شما هستم .

استاد عزیز سلام و عرض ادب
من در فایل آموزش مربوط به لاگین ، فرم لاگین را ایجاد و مراحل را بترتیب ثبت و اجرا کردم اما لاگین نمیشه !!! در صورتیکه فرم رجیستر بدرستی عمل میکنه . دلیلش چی میتونه باشه ؟ در ضمن اون دوگمه exit , register در فرم لاگین موضوعیتی ندارند که وجود داشته باشند .
با سپاس فراوان

سلام و عرض ادب خدمت استاد گرامی
مشکل من در سوال قبلی حل گردید ، اما الان به مشکل جدیدی برخورد کردم و اون هم اینه که زمانی که از فایل خارج و مجددا” وارد میشم پس از لاگین و ورود با پسورد ، وقتی کلید F5 را میزنم فرم ورود اطلاعات ظاهر نمی شود و باکسی ایجاد میشود که بالای اون وشته GO To که باید بنوعی به ارتباط نیاز دارد . لطفا” راهنمائی نمائید .
با تشکر

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *