با سلام خدمت همراهان سایت آی تی سواد
در این مقاله ، از رویداد change کاربرگ برای انتقال اطلاعات از یک شیت به شیت دیگر ، بر اساس شرط خاص استفاده خواهیم کرد.
شیت اصلی من حاوی مقادیر نام ، کشور، شهر و… می باشد من میخواهم بر اساس مقدار ستون تایید ، اطلاعات افرادی که تایید نشده اند بصورت خودکار به شیت دیگر انتقال پیدا کند.
انتقال اطلاعات اکسل به شیت دیگر بصورت خودکار بر اساس شرط خاص
۱. کلیدهای Alt + F11 را فشار دهید تا پنجره Microsoft Visual Basic for Applications باز شود .
۲. در پنجره Microsoft Visual Basic for Applications از قسمت Project بر روی شیت موردنظرتان دابل کلیک کنید
۳. سپس مانند تصویر زیر رویداد Worksheet_Change را انتخاب کنید.
۴. سپس کد زیر را وارد کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Private Sub Worksheet_Change(ByVal Target As Range) 'Declaring variables Dim i, Lastrow As Long 'Execute code if value in seventh column is changed If Target.Column = 7 Then 'Getting the row number of last cell Lastrow = Sheets("main").Range("A" & Rows.Count).End(xlUp).Row 'Deleting any previous data from "NotEligibleData" sheet Sheets("not").Range("A2:I600").ClearContents 'Looping from tenth row to last row For i = 2 To Lastrow 'If value in G column of the row is "Not" then copy the row to destination sheet If Sheets("main").Cells(i, "G").Value = "NOT" Then Sheets("main").Cells(i, "G").EntireRow.Copy Destination:=Sheets("not").Range("A" & Rows.Count).End(xlUp).Offset(1) End If Next i End If End Sub |
از این به بعد در صورتی که داده هر ردیف ستون تایید به مقدار NOT تغییر یابد ، مقادیر آن بصورت خودکار به شیت not منتقل می شود.
ترجمه شده از سایت www.extendoffice.com
ممنون از همراهی شما کاربران عزیز آی تی سواد
اشتراک گذاری
سلام
میشه دلیل اینکه بعد از درج کد و ذخیره، وقتی فایل اکسل می بندیم و باز می کنیم چرا کد پاک شده و باز باید از ابتدا کد نویسی بشه؟
سلام
باید فایل رو با فرمت xlsm ذخیره کنید(فایل حاوی کدنویسی با این فرمت هستند)
سلام
برای ورود اطلاعات به یک شیت یوزر فرم توسط vba ساختم چطور می شود از طریق همان یوزفرم اطلاعات را به شیت دیگری ارسال کرد
سلام
در ادامه کدهای خودتون از کد ذکر شده در این آموزش کمک بگیرید
سلام من با همین فایل بالای جابعالی و همان کد نویسی انجام دادم ولی اجرا نمی شود لطفا راهنمایی فرمایید
سلام
به نام شیت ها در کد و شیت ها در فایل خودتان دقت کنید
سلام . با تشکر از جناب محمود خانی ؛ با توجه به اینکه کلمه NOT در کدهای VBAبا حروف بزرگ نوشته شده است ، در هنگام نوشن این کلمه در جدول هم باید با حروف بزرگ آنرا تایپ کنید تا درست شود.
درود
سلام وقت شما بخیر
ممنون بابت اموزش
من کد رو وارد کردم و اوکی شد
فقط یه سوال
اگر بخوایم در صورت تغییر بقیه سلول ها، ردیفی که کپی شده در یه شیت دیگه هم تغییر کنه باید چکار کنیم
مثلا در ستون مربوطه نوشتیم not و ردیف رفته به شیت not
حالا در main یه ستون دیگه رو تغییر میدیم. میخوام این تغییر در شیت not هم خودکار اعمال بشه
ممنون میشم راهنمایی کنید
سلام وقت بخیر
باید کدی بنویسید که با هر تغییر در شیت اصلی داده های شیت اصلی رو با داده شیت دوم مقایسه کند و در صورت تغییر ،در شیت دوم اعمال شود
فقط با اینکار فشار زیاد به سیستم میاد
سلام
من یک دیتا بیس دارم، با کمک توابع، در یک شیت جدید خروجی خاصی را تعریف کرده ام که گاهی چند صفحه میشه و سربرگ صفحه اول هم با صفحات دیگه فرق دارد. این ها را انجام داده ام ولی برای اینکه همین صفحات خروجی را بخوام به کارفرما بدم که باید با همان فرمت تعریف شده ولی بدون تابع و بصورت دیتای خام در خروجی باشد، آیا راهی وجود دارد که بدون کپی پیست و… بتونم یک کپی از صفحه خروجی اکسلم با فرمت اکسل بدم؟
سلام بله
با تغییر کد قسمت paste
میتوانید نوع past کردن را بر رو فقط داده قرار دهید