كسر از شيت هاي مورد نظر توسط ماكرو

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • مائده

    • 2015/04/25
    • 72

    [حل شده] كسر از شيت هاي مورد نظر توسط ماكرو

    با سلام به اساتيد محترم

    تو فايل پيوست ارسالي تو شيت فرم آ نام بعضي از شيت ها را در ستون b مينويسيم و تعداد سفارش را در ستون c*مينويسيم.
    كليد ثبت سفارش ميزنيم ماكرو بره تو شيت هايي كه نامشون رو نوشتيم و به تعداد سفارش به نسبت تعداد لازم در ستون e از موجودي هر رديف در ستون f كسر كنه.

    حالا اگه موجودي شيت ها به نسبت تعداد سفارش كمتر بود و نتونست كسر كنه يه پيغامي بده كه اون شيت شده حتي يك رديفش موجوديش كمتره.

    ممنون استاتيدي كه اين ماكرو ميدونه راهنماييم كنه
    فایل های پیوست شده
  • abootorab

    • 2014/10/17
    • 351

    #2
    نوشته اصلی توسط مائده
    با سلام به اساتيد محترم

    تو فايل پيوست ارسالي تو شيت فرم آ نام بعضي از شيت ها را در ستون b مينويسيم و تعداد سفارش را در ستون c*مينويسيم.
    كليد ثبت سفارش ميزنيم ماكرو بره تو شيت هايي كه نامشون رو نوشتيم و به تعداد سفارش به نسبت تعداد لازم در ستون e از موجودي هر رديف در ستون f كسر كنه.

    حالا اگه موجودي شيت ها به نسبت تعداد سفارش كمتر بود و نتونست كسر كنه يه پيغامي بده كه اون شيت شده حتي يك رديفش موجوديش كمتره.

    ممنون استاتيدي كه اين ماكرو ميدونه راهنماييم كنه
    با درود
    دوست عزیز سوالتون نامفهومه!!!
    1. اینکه شما بعد از زدن کلید ثبت سفارش یک یوزرفرم ظاهر میشه و شما نگفتین هنگام ظاهر شدن یوزرفرم خواسته هاتون انجام بشه یا با فشردن کلید ثبت نهایی درون یوزرفرم و یا....!!!
    2. راستش بنده از توضیحاتی که دادین اصلا سر در نیاوردم!! مثلا: "به تعداد سفارش به نسبت تعداد لازم در ستون e از موجودي هر رديف در ستون f كسر كنه" یا "نتونست كسر كنه يه پيغامي بده كه اون شيت شده حتي يك رديفش موجوديش كمتره"

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

    کامنت

    • مائده

      • 2015/04/25
      • 72

      #3
      نوشته اصلی توسط abootorab
      با درود
      دوست عزیز سوالتون نامفهومه!!!
      1. اینکه شما بعد از زدن کلید ثبت سفارش یک یوزرفرم ظاهر میشه و شما نگفتین هنگام ظاهر شدن یوزرفرم خواسته هاتون انجام بشه یا با فشردن کلید ثبت نهایی درون یوزرفرم و یا....!!!
      2. راستش بنده از توضیحاتی که دادین اصلا سر در نیاوردم!! مثلا: "به تعداد سفارش به نسبت تعداد لازم در ستون e از موجودي هر رديف در ستون f كسر كنه" یا "نتونست كسر كنه يه پيغامي بده كه اون شيت شده حتي يك رديفش موجوديش كمتره"

      لطف کنید سوالتون رو با دقت بیشتر و توضیح واضح تر به همراه یک مثال بیان کنید تا دوستان بهتر و سریعتر بتونن شما رو راهنمایی کنند.
      با سلام
      با فشردن كليد ثبت نهايي در يوزرفرم تغييرات در شيت ها اعمال بشه.

      مثلا:
      ما در فايل اكسل بي نهايت تعداد شيت كه هر كدام اطلاعات يه پكيج هست داريم.در شيت form.A* در ستون B نام بعضي از شيت ها را مينويسيم و در ستون C تعداد كه ميخوايم از پكيج هر شيت كسر كنيم مي نويسيم و وقتي كليد ماكرو ثبت سفارش ميزنيم و در نهايت ثبت نهايي رو فشار ميديم برنامه ماكرو بره تو شيت هايي كه اسمشون رو نوشتيم و كسر كنه.
      طريقه كسر كردن هم:
      مثلا ما نام شيت 000 را در فرم آ نوشتيم و تعداد درخواستي كسر شده 3 تا پكيج هست.پس برنامه بره تو شيت 000 به نسبت تعداد لازم (3) تا از موجودي هر رديف كسر كنه
      كه ميشه تعداد لازم رديف يك 9.موجودي 45 بعد اجرا ماكرو موجودي بشه 18
      رديف دو موجوديشه بشه 13
      رديف سه بشه18
      رديف چهار بشه 27
      براي بقيه شيت ها هم كه اسمشون رو تو فرم آ نوشتيم اين تغييرات تو كل رديف ها اجرا بشه
      اگه هم يكي از رديف ها موجوديش(منفي)شد يه پيغامي يا تغيير رنگي داشته باشه.
      اميدوارم توضيحاتي كه دادم واضح بوده باشه و دوستان راهنمايي كنن

      کامنت

      • abootorab

        • 2014/10/17
        • 351

        #4
        نوشته اصلی توسط مائده
        با سلام
        با فشردن كليد ثبت نهايي در يوزرفرم تغييرات در شيت ها اعمال بشه.

        مثلا:
        ما در فايل اكسل بي نهايت تعداد شيت كه هر كدام اطلاعات يه پكيج هست داريم.در شيت form.A* در ستون B نام بعضي از شيت ها را مينويسيم و در ستون C تعداد كه ميخوايم از پكيج هر شيت كسر كنيم مي نويسيم و وقتي كليد ماكرو ثبت سفارش ميزنيم و در نهايت ثبت نهايي رو فشار ميديم برنامه ماكرو بره تو شيت هايي كه اسمشون رو نوشتيم و كسر كنه.
        طريقه كسر كردن هم:
        مثلا ما نام شيت 000 را در فرم آ نوشتيم و تعداد درخواستي كسر شده 3 تا پكيج هست.پس برنامه بره تو شيت 000 به نسبت تعداد لازم (3) تا از موجودي هر رديف كسر كنه
        كه ميشه تعداد لازم رديف يك 9.موجودي 45 بعد اجرا ماكرو موجودي بشه 18
        رديف دو موجوديشه بشه 13
        رديف سه بشه18
        رديف چهار بشه 27
        براي بقيه شيت ها هم كه اسمشون رو تو فرم آ نوشتيم اين تغييرات تو كل رديف ها اجرا بشه
        اگه هم يكي از رديف ها موجوديش(منفي)شد يه پيغامي يا تغيير رنگي داشته باشه.
        اميدوارم توضيحاتي كه دادم واضح بوده باشه و دوستان راهنمايي كنن
        با درود
        دوست عزیز با تغییر فرمول ستون G در کلیه شیتها و یکی دو خط کدنویسی و همچنین با استفاده از Conditional Formating درخواست شما انجام شد. فایل ضمیمه رو مشاهده بفرمایید.
        امیدوارم درست متوجه منظورتون شده باشم.
        فایل های پیوست شده

        کامنت

        • مائده

          • 2015/04/25
          • 72

          #5
          نوشته اصلی توسط abootorab
          با درود
          دوست عزیز با تغییر فرمول ستون G در کلیه شیتها و یکی دو خط کدنویسی و همچنین با استفاده از Conditional Formating درخواست شما انجام شد. فایل ضمیمه رو مشاهده بفرمایید.
          امیدوارم درست متوجه منظورتون شده باشم.

          با سلام
          استاد گرامي با تشكر فراوان از شما بابت حل شدن موضوع كسر كردن.

          ممكنه در شيت فرم آ زماني كه ما نام شيتها را بي نهايت وارد ميكنيم و تعداد شيت مينويسيم
          مثلا: تعداد شيت رديف 2 يه عدد وارد ميكنيم يه مسيج باكس اجرا بشه با yes يا no كه اگه ما كليد yes مسيج باكس زديم و پنجره بسته شد كسر بشه اگه no* زديم و پنجره بسته شد عدد نوشته شده در تعداد سفارش همون رديف پاك بشه و از همون شيت كسر نكنه.
          اين مسيج باكس با نوشيتن هر عددي در ستون c*شيت فرم آ اجرا بشه


          ممنون اين مسئله را كه از بروز خطا بخش توليد در نوشتن اعداد ممكنه رخ بده حل شه

          کامنت

          • abootorab

            • 2014/10/17
            • 351

            #6
            نوشته اصلی توسط مائده
            با سلام
            استاد گرامي با تشكر فراوان از شما بابت حل شدن موضوع كسر كردن.

            ممكنه در شيت فرم آ زماني كه ما نام شيتها را بي نهايت وارد ميكنيم و تعداد شيت مينويسيم
            مثلا: تعداد شيت رديف 2 يه عدد وارد ميكنيم يه مسيج باكس اجرا بشه با yes يا no كه اگه ما كليد yes مسيج باكس زديم و پنجره بسته شد كسر بشه اگه no* زديم و پنجره بسته شد عدد نوشته شده در تعداد سفارش همون رديف پاك بشه و از همون شيت كسر نكنه.
            اين مسيج باكس با نوشيتن هر عددي در ستون c*شيت فرم آ اجرا بشه


            ممنون اين مسئله را كه از بروز خطا بخش توليد در نوشتن اعداد ممكنه رخ بده حل شه
            با درود
            دوست عزیز طبق معمول بصورت کامل و دقیق متوجه منظورتان نشدم!!
            اما تا جایی که فهمیدم خدمتتون عرض کنم که تغییراتی که در فایل شما داده شده بر اساس تغییر فرمول های ستون G شیتهای شما انجام شده و نه توسط vb. و این یعنی رابطه مستقیم ستون G شیتهای مورد نظرتون با مقادیری که در ستونهای B و C شیت form.a وارد میکنید و به این دلیل نمیتوانید تعیین کنید که مقدار ستون C در form.a در سایر شیتها تاثیرگذار باشد یا خیر.

            به عبارت ساده تر تحت هر شرایطی مقادیر ستون C در شیت form.a در ستون G سایر شیتهای مربوطه اعمال و کسر میشود مگر اینکه روش دیگری برای کسر مقادیر در برنامه شما استفاده شود. شما باید در پستهای قبلیتون چنین موردی رو بیان میکردید!!

            کامنت

            • مائده

              • 2015/04/25
              • 72

              #7
              نوشته اصلی توسط abootorab
              با درود
              دوست عزیز طبق معمول بصورت کامل و دقیق متوجه منظورتان نشدم!!
              اما تا جایی که فهمیدم خدمتتون عرض کنم که تغییراتی که در فایل شما داده شده بر اساس تغییر فرمول های ستون G شیتهای شما انجام شده و نه توسط vb. و این یعنی رابطه مستقیم ستون G شیتهای مورد نظرتون با مقادیری که در ستونهای B و C شیت form.a وارد میکنید و به این دلیل نمیتوانید تعیین کنید که مقدار ستون C در form.a در سایر شیتها تاثیرگذار باشد یا خیر.

              به عبارت ساده تر تحت هر شرایطی مقادیر ستون C در شیت form.a در ستون G سایر شیتهای مربوطه اعمال و کسر میشود مگر اینکه روش دیگری برای کسر مقادیر در برنامه شما استفاده شود. شما باید در پستهای قبلیتون چنین موردی رو بیان میکردید!!

              با سلام
              ضمن تشكر دوباره بابت حل مسئله كسر شدن
              فقط بخش توليد ميخواد زماني كه در شيت فرم آ در ستون c يه عددي مينويسه از يه طريقي متوجه كسر شدن از شيت مورد نظر بشه و دوباره نياد كسر كنه.
              اساتيد محترم چه راه حلي مناسبي براي حل اين مسئله هست

              کامنت

              چند لحظه..