پرفروش ترين
برترين
آخرين محصولات فروشگاه
فایل الکترونیکی آموزش اکسل پیشرفته ۲۰۱۰
آموزش ایجاد فایل چندکاربره با سطح دسترسی مشخص
یوزرفرم پیشرفته -Advanced  User Form
داشبورد (مقدماتی) – Dashboards(Elementary)
ابزارهای اعتبار سنجی و اخطار دهنده
بسته آموزشی userform
مدیریت و کنترل خطا در اکسل
توابع متنی
گرافیک در اکسل
جزوه آموزشی جداول و نمودارهای پاشنه ای
فایل آموزشی نحوه تهیه فرمت عددی دلخواه یا custom number format cell
آموزش ایجاد فایل چندکاربره با سطح دسترسی مشخص
صفحه 1 از 3 123 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 22

موضوع: شناسایی آخرین ردیف اطلاعات

  1. #1


    آخرین بازدید
    28 _ 03 _ 2015
    تاریخ عضویت
    March_2010
    نوشته ها
    113
    امتیاز
    12
    سپاس
    8
    سپاس شده
    14 در 10 پست

    شناسایی آخرین ردیف اطلاعات

    سلام
    یک سوال دارم
    جداولی داریم که مثلا در شیت1 قرار دارند و در شیت 2 یک فرم طراحی کرده ایم که کاربر ما اطلاعات خواسته شده را بدون اشتباه(توسط محدودیت هایی که ایجاد کرده ایم) وارد نماید. و یک کلید ذخیره قرار داده ایم که با زدن آن یک ماکرو فعال شده و این سطر اطلاعات را کات کرده و میبرد در شیت 1 ذخیره میکند. حال سوال اینجاست که این ماکرو را چگونه باید تعریف کرد که این اطلاعات را ببرد و در آخرین ردیف قرار دهد؟
    متشکرم
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.

  2.  

  3. #2


    آخرین بازدید
    19 _ 07 _ 2014
    تاریخ عضویت
    July_2010
    نوشته ها
    15
    امتیاز
    5
    سپاس
    0
    سپاس شده
    6 در 4 پست

    RE: شناسایی آخرین ردیف اطلاعات

    با سلام
    شما می تونید با دستور زیر به یک سطر پائین تر از آخرین رکورد درج شدخ رفته و نهایتاً اطلاعات را پیست نمائید .
    ([Range("h4:h65000").End(xlDown).Offset([1], [0
    هنوز پنجره اي هست براي آنچه نديده ام

  4. #3


    آخرین بازدید
    3 روز پیش
    تاریخ عضویت
    February_2010
    محل سکونت
    بوشهر
    نوشته ها
    931
    امتیاز
    664
    سپاس
    29
    سپاس شده
    810 در 348 پست

    shamsololama به Yahoo ارسال پیام فرستادن پیام با Skype به shamsololama

    RE: شناسایی آخرین ردیف اطلاعات

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

    روش دیگری نیز در اینجا می نویسم که امید وارم مفید واقع شود

    Sub Macro3()
    For Each c In Sheet1.Range("a1:a60000")
    If c = Empty Then
    For i = 0 To 10
    c.Offset(0, i) = Selection.Offset(0, i)
    Next i
    Exit Sub

    در این ماکروزمانی که روی اولین رکورد از سطر مورد نظر قرار دارید و می خواهید آن را انقال بدهید به شیت دیگری (مثلا شیت 1) با اجرای ماکرو از سلی که روی آن قرار داریم تا ده سل روبر را به شیت یک انتقال میدهد که این ده سل می توان با تغییر i که همان مقدار 10 در ماکرو میباشد کنترل کنیم مثلا آن را به For i = 0 To 20 قرار دهیم تا بیست سل را انتقال دهد

    و نحوه انتقال به شیت یک باز هم با تغییر sheet1 می توان هدف را تغییر داد و به شیت دلخواه ببریم
    در این روش و در این ماکرو از سل A1 شروع کرده و به طرف سل A60000 بررسی می کند و به اولین سل خالی که رسید سطر مورد نظر را در آن منتقل می کند که اگر بین رکورد هاستون A سطر خالی نداشته باشیم بعد از آخرین سطر مطالب را می نویسد
    ولی اگر دربین کوردهایمان در ستون A سل خالی داشته باشیم آن را یافته و سطر مورد نظر را در آن انتقال میدهد

    توجه:
    اگر بخواهیم سلهای خالی بین رکورد در ستون A را نادیده بگیریم و همیشه به آخرین سطر اضافه کنیم در کد بالا باید تغییراتی را اعمال کنیم.
    اگر در توضیح و یا کد مشکلی بود درخدمتم

  5. #4


    آخرین بازدید
    31 _ 03 _ 2017
    تاریخ عضویت
    May_2010
    محل سکونت
    بلژیک
    نوشته ها
    175
    امتیاز
    92
    سپاس
    0
    سپاس شده
    103 در 45 پست

    RE: شناسایی آخرین ردیف اطلاعات

    نقل قول نوشته اصلی توسط shamsololama
    با درود فراوان
    با تشکر و سپاس از آقای الماسی عزیز جهت راهنمایی خوبی که کرده اند

    روش دیگری نیز در اینجا می نویسم که امید وارم مفید واقع شود

    Sub Macro3()
    For Each c In Sheet1.Range("a1:a60000")
    If c = Empty Then
    For i = 0 To 10
    c.Offset(0, i) = Selection.Offset(0, i)
    Next i
    Exit Sub

    در این ماکروزمانی که روی اولین رکورد از سطر مورد نظر قرار دارید و می خواهید آن را انقال بدهید به شیت دیگری (مثلا شیت 1) با اجرای ماکرو از سلی که روی آن قرار داریم تا ده سل روبر را به شیت یک انتقال میدهد که این ده سل می توان با تغییر i که همان مقدار 10 در ماکرو میباشد کنترل کنیم مثلا آن را به For i = 0 To 20 قرار دهیم تا بیست سل را انتقال دهد

    و نحوه انتقال به شیت یک باز هم با تغییر sheet1 می توان هدف را تغییر داد و به شیت دلخواه ببریم
    در این روش و در این ماکرو از سل A1 شروع کرده و به طرف سل A60000 بررسی می کند و به اولین سل خالی که رسید سطر مورد نظر را در آن منتقل می کند که اگر بین رکورد هاستون A سطر خالی نداشته باشیم بعد از آخرین سطر مطالب را می نویسد
    ولی اگر دربین کوردهایمان در ستون A سل خالی داشته باشیم آن را یافته و سطر مورد نظر را در آن انتقال میدهد

    توجه:
    اگر بخواهیم سلهای خالی بین رکورد در ستون A را نادیده بگیریم و همیشه به آخرین سطر اضافه کنیم در کد بالا باید تغییراتی را اعمال کنیم.
    اگر در توضیح و یا کد مشکلی بود درخدمتم
    با تشکر از دوست عزیز!
    این روش خوبی است! اما در تعداد سطر بالا مشکل ایجاد خواهد کرد. به نظر من اگر آخرین فیلد رو در متغیری مخفی یا سلولی مخفی نگه داری کنیم راحت تر می باشد و Cpu نیز کمتر اشغال می شود. شما تصور کنید که 10000 رکورد دارین! در این شرایط با ازای هر سطر که اضافه بشه 10000 بار تست خالی بودن فیلد می کنیم! اما اگر آخرین شماره آخرین سطر را ذخیره کنیم این مشکل بوجود نمی آید.
    -------
    http://md6712.com
    جامعه ایده پردازان: http://idekadeh.com

  6. #5


    محصولات کاربر

    کتاب آموزش جامع و پیشرفته اکسل 2010
    آخرین بازدید
    4 هفته پیش
    تاریخ عضویت
    February_2010
    محل سکونت
    مشهد
    نوشته ها
    426
    امتیاز
    887
    سپاس
    252
    سپاس شده
    818 در 183 پست

    mrexcel به Yahoo ارسال پیام

    RE: شناسایی آخرین ردیف اطلاعات

    يك راهي هست كه من براي رفتن به آخرين رديف هميشه از ان استفاده ميكنم ان اين هست
    range(a1).end(xldown().offset(1,0).select
    البته ان قسمتي كه بايد اطلاعات كپي بشه و به صفحه ديگر برود نيز بايد اضافه بشه

  7. #6


    آخرین بازدید
    19 _ 07 _ 2016
    تاریخ عضویت
    October_2010
    محل سکونت
    قائمشهر
    نوشته ها
    114
    امتیاز
    52
    سپاس
    150
    سپاس شده
    51 در 26 پست

    RE: شناسایی آخرین ردیف اطلاعات

    نقل قول نوشته اصلی توسط shamsololama
    با درود فراوان
    با تشکر و سپاس از آقای الماسی عزیز جهت راهنمایی خوبی که کرده اند

    روش دیگری نیز در اینجا می نویسم که امید وارم مفید واقع شود

    Sub Macro3()
    For Each c In Sheet1.Range("a1:a60000")
    If c = Empty Then
    For i = 0 To 10
    c.Offset(0, i) = Selection.Offset(0, i)
    Next i
    Exit Sub

    در این ماکروزمانی که روی اولین رکورد از سطر مورد نظر قرار دارید و می خواهید آن را انقال بدهید به شیت دیگری (مثلا شیت 1) با اجرای ماکرو از سلی که روی آن قرار داریم تا ده سل روبر را به شیت یک انتقال میدهد که این ده سل می توان با تغییر i که همان مقدار 10 در ماکرو میباشد کنترل کنیم مثلا آن را به For i = 0 To 20 قرار دهیم تا بیست سل را انتقال دهد

    و نحوه انتقال به شیت یک باز هم با تغییر sheet1 می توان هدف را تغییر داد و به شیت دلخواه ببریم
    در این روش و در این ماکرو از سل A1 شروع کرده و به طرف سل A60000 بررسی می کند و به اولین سل خالی که رسید سطر مورد نظر را در آن منتقل می کند که اگر بین رکورد هاستون A سطر خالی نداشته باشیم بعد از آ---ین سطر مطالب را می نویسد
    ولی اگر دربین کوردهایمان در ستون A سل خالی داشته باشیم آن را یافته و سطر مورد نظر را در آن انتقال میدهد

    توجه:
    اگر بخواهیم سلهای خالی بین رکورد در ستون A را نادیده بگیریم و همیشه به آ---ین سطر اضافه کنیم در کد بالا باید تغییراتی را اعمال کنیم.
    اگر در توضیح و یا کد مشکلی بود درخدمتم
    سلام
    من اين كد رو عينا وارد كردم اما انجام نميشه
    ارور for without next ميده
    ميشه راهنمايي كنيد؟

  8. #7


    آخرین بازدید
    3 روز پیش
    تاریخ عضویت
    February_2010
    محل سکونت
    بوشهر
    نوشته ها
    931
    امتیاز
    664
    سپاس
    29
    سپاس شده
    810 در 348 پست

    shamsololama به Yahoo ارسال پیام فرستادن پیام با Skype به shamsololama

    RE: شناسایی آخرین ردیف اطلاعات

    نقل قول نوشته اصلی توسط 4017
    نقل قول نوشته اصلی توسط shamsololama
    با درود فراوان
    با تشکر و سپاس از آقای الماسی عزیز جهت راهنمایی خوبی که کرده اند

    روش دیگری نیز در اینجا می نویسم که امید وارم مفید واقع شود

    Sub Macro3()
    For Each c In Sheet1.Range("a1:a60000")
    If c = Empty Then
    For i = 0 To 10
    c.Offset(0, i) = Selection.Offset(0, i)
    Next i
    Exit Sub

    در این ماکروزمانی که روی اولین رکورد از سطر مورد نظر قرار دارید و می خواهید آن را انقال بدهید به شیت دیگری (مثلا شیت 1) با اجرای ماکرو از سلی که روی آن قرار داریم تا ده سل روبر را به شیت یک انتقال میدهد که این ده سل می توان با تغییر i که همان مقدار 10 در ماکرو میباشد کنترل کنیم مثلا آن را به For i = 0 To 20 قرار دهیم تا بیست سل را انتقال دهد

    و نحوه انتقال به شیت یک باز هم با تغییر sheet1 می توان هدف را تغییر داد و به شیت دلخواه ببریم
    در این روش و در این ماکرو از سل A1 شروع کرده و به طرف سل A60000 بررسی می کند و به اولین سل خالی که رسید سطر مورد نظر را در آن منتقل می کند که اگر بین رکورد هاستون A سطر خالی نداشته باشیم بعد از آ---ین سطر مطالب را می نویسد
    ولی اگر دربین کوردهایمان در ستون A سل خالی داشته باشیم آن را یافته و سطر مورد نظر را در آن انتقال میدهد

    توجه:
    اگر بخواهیم سلهای خالی بین رکورد در ستون A را نادیده بگیریم و همیشه به آ---ین سطر اضافه کنیم در کد بالا باید تغییراتی را اعمال کنیم.
    اگر در توضیح و یا کد مشکلی بود درخدمتم
    سلام
    من اين كد رو عينا وارد كردم اما انجام نميشه
    ارور for without next ميده
    ميشه راهنمايي كنيد؟
    با دورد فراوان
    اگر کد را دقیقا همون چیزی که نوشته را در اکسل کپی کرده باشی اجرا نخواهد شد
    چون Next برای حلقه C و End if از قلم افتاده که اگر آن را بنویسید ماکر اجرا خواهد شد .
    بهتر است که متغییر ها نیز تعریف کنیم چون اگر در بالا صفحه Option Explicit نوشته شده باشد تعریف متغییر ها اجباری خواهد بود وگرنه ارور می گیرد
    کد به این صورت
    Sub Macro3()
    Dim c
    Dim i
    For Each c In Sheet1.Range("a1:a60000")
    If c = Empty Then
    For i = 0 To 10
    c.Offset(0, i) = Selection.Offset(0, i)
    Next i
    Exit Sub
    End If
    Next
    End Sub

  9. #8


    آخرین بازدید
    19 _ 07 _ 2016
    تاریخ عضویت
    October_2010
    محل سکونت
    قائمشهر
    نوشته ها
    114
    امتیاز
    52
    سپاس
    150
    سپاس شده
    51 در 26 پست

    RE: شناسایی آ---ین ردیف اطلاعات

    با سلام و تشكر فراوان از استاد
    فقط يه سوال
    دستور c.Offset(0, i باعث چه كاري ميشه؟ c اول چه كاريو انجام ميده؟

  10. #9


    آخرین بازدید
    3 روز پیش
    تاریخ عضویت
    February_2010
    محل سکونت
    بوشهر
    نوشته ها
    931
    امتیاز
    664
    سپاس
    29
    سپاس شده
    810 در 348 پست

    shamsololama به Yahoo ارسال پیام فرستادن پیام با Skype به shamsololama

    RE: شناسایی آ---ین ردیف اطلاعات

    نقل قول نوشته اصلی توسط 4017
    با سلام و تشكر فراوان از استاد
    فقط يه سوال
    دستور c.Offset(0, i باعث چه كاري ميشه؟ c اول چه كاريو انجام ميده؟
    با درود فراوان
    c متغییری است که انتخاب کرده ایم و می توان هر چیز دیگری که برای وی بی مفهوم خاصی نداشته باشد تعریف کرد مثلا می توان بجای c شما b یا T ... استفاده کنید
    که در این کد
    For each c in sheet1.range("A1:A1000")
    c متغییری است که سل های A1 تا A1000 در آن قرار می گیرد
    c.offset(0,1)
    c هرکدام از سل ها که باشد 0یعنی سطر برابر بر همان سل و 1 یعنی یک ستون جلوتر در واقع با offset سلی دیگر را نسبت به مکان C به ما میدهد

  11. #10


    آخرین بازدید
    19 _ 07 _ 2016
    تاریخ عضویت
    October_2010
    محل سکونت
    قائمشهر
    نوشته ها
    114
    امتیاز
    52
    سپاس
    150
    سپاس شده
    51 در 26 پست

    RE: شناسایی آ---ین ردیف اطلاعات

    با سلام و تشكر فراوان از استاد محترم


صفحه 1 از 3 123 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است