صفحه 1 از 3 123 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 22

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

  1. #1


    آخرین بازدید
    2015/03/28
    تاریخ عضویت
    March 2010
    نوشته ها
    113
    امتیاز
    15
    سپاس
    8
    سپاس شده
    17 در 13 پست
    تعیین سطح نشده است

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

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

  2.  

  3. #2


    آخرین بازدید
    2014/07/19
    تاریخ عضویت
    July 2010
    نوشته ها
    15
    امتیاز
    5
    سپاس
    0
    سپاس شده
    6 در 4 پست
    تعیین سطح نشده است

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

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

  4. #3


    آخرین بازدید
    2021/12/05
    تاریخ عضویت
    February 2010
    محل سکونت
    بوشهر
    نوشته ها
    940
    امتیاز
    718
    سپاس
    29
    سپاس شده
    863 در 365 پست
    تعیین سطح نشده است

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

    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. سپاس ها (1)


  6. #4


    آخرین بازدید
    2022/06/28
    تاریخ عضویت
    May 2010
    محل سکونت
    بلژیک
    نوشته ها
    174
    امتیاز
    108
    سپاس
    0
    سپاس شده
    119 در 53 پست
    تعیین سطح نشده است

    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

  7. سپاس ها (1)


  8. #5


    آخرین بازدید
    2 هفته پیش
    تاریخ عضویت
    February 2010
    محل سکونت
    مشهد
    نوشته ها
    435
    امتیاز
    950
    سپاس
    294
    سپاس شده
    881 در 210 پست
    سطح اکسل
    81.00 %

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

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

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

  9. سپاس ها (1)


  10. #6


    آخرین بازدید
    2020/11/02
    تاریخ عضویت
    October 2010
    محل سکونت
    قائمشهر
    نوشته ها
    114
    امتیاز
    54
    سپاس
    150
    سپاس شده
    53 در 27 پست
    تعیین سطح نشده است

    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 ميده
    ميشه راهنمايي كنيد؟

  11. #7


    آخرین بازدید
    2021/12/05
    تاریخ عضویت
    February 2010
    محل سکونت
    بوشهر
    نوشته ها
    940
    امتیاز
    718
    سپاس
    29
    سپاس شده
    863 در 365 پست
    تعیین سطح نشده است

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

    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

  12. سپاس ها (1)


  13. #8


    آخرین بازدید
    2020/11/02
    تاریخ عضویت
    October 2010
    محل سکونت
    قائمشهر
    نوشته ها
    114
    امتیاز
    54
    سپاس
    150
    سپاس شده
    53 در 27 پست
    تعیین سطح نشده است

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

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

  14. #9


    آخرین بازدید
    2021/12/05
    تاریخ عضویت
    February 2010
    محل سکونت
    بوشهر
    نوشته ها
    940
    امتیاز
    718
    سپاس
    29
    سپاس شده
    863 در 365 پست
    تعیین سطح نشده است

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

    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 به ما میدهد

  15. سپاس ها (1)


  16. #10


    آخرین بازدید
    2020/11/02
    تاریخ عضویت
    October 2010
    محل سکونت
    قائمشهر
    نوشته ها
    114
    امتیاز
    54
    سپاس
    150
    سپاس شده
    53 در 27 پست
    تعیین سطح نشده است

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

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


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

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

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

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

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

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

علاقه مندی ها (Bookmarks)

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

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