درج خودکار عدد بعدی در سیستم ارسال نامه

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

    • 2016/04/02
    • 15

    [حل شده] درج خودکار عدد بعدی در سیستم ارسال نامه

    سلام دوستان. من یه فایل اکسل دارم که در واقع برای ثبت نامه های ارسالیم هست. اما یه مشکلی دارم. ساده میگم که اساتید متوجه بشن. ببینید فرمت ثبت نامه ها به صورت d1-1000 (برای نامه های ارسالی به دفتر شماره یک) و d2-1000 (برای نامه های ارسالی به دفتر شماره دو هست) . با زیاد شدن تعداد نامه ها مشکلی که پیش اومده اینه که مثلا آخرین شماره نامه به دفتر شماره یک رسیده به d1-1561 و آخرین شماره نامه به دفتر شماره دو رسیده به d2-2110 . حالا هر بار که میخوام مثلا برا دفتر شماره یک نامه ای بفرستم باید برم فیلترش کنم و ببینم آخرین شماره دفتر شماره یک چنده که من شماره بعدیشو بزنم. اینو در ابعاد سی تا دفتر تصور کنید که خیلی وقت گیر میشه. حالا اساتید راهنمایی کنید که چیکار کنم که وقتی توی یه سلول مینویسم d1 توی سلول کناری آخرین شماره مربوط به d1 رو برام نمایش بده ؟ ( وای سرویس شدم از بس تایپ کردم)
  • Javid Mokhtari
    مدير تالار ويژوال بيسيك

    • 2012/01/16
    • 1212
    • 73.00

    #2
    نوشته اصلی توسط bidariii
    سلام دوستان. من یه فایل اکسل دارم که در واقع برای ثبت نامه های ارسالیم هست. اما یه مشکلی دارم. ساده میگم که اساتید متوجه بشن. ببینید فرمت ثبت نامه ها به صورت d1-1000 (برای نامه های ارسالی به دفتر شماره یک) و d2-1000 (برای نامه های ارسالی به دفتر شماره دو هست) . با زیاد شدن تعداد نامه ها مشکلی که پیش اومده اینه که مثلا آخرین شماره نامه به دفتر شماره یک رسیده به d1-1561 و آخرین شماره نامه به دفتر شماره دو رسیده به d2-2110 . حالا هر بار که میخوام مثلا برا دفتر شماره یک نامه ای بفرستم باید برم فیلترش کنم و ببینم آخرین شماره دفتر شماره یک چنده که من شماره بعدیشو بزنم. اینو در ابعاد سی تا دفتر تصور کنید که خیلی وقت گیر میشه. حالا اساتید راهنمایی کنید که چیکار کنم که وقتی توی یه سلول مینویسم d1 توی سلول کناری آخرین شماره مربوط به d1 رو برام نمایش بده ؟ ( وای سرویس شدم از بس تایپ کردم)
    با سلام.

    لطفا یک نمونه از فایل رو پیوست کنین تا بهتر راهنماییتون کنیم.
    [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
    بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

    شرکت در دوره:
    [/FONT][/SIZE]
    [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
    [/B][/FONT][/SIZE]
    [/CENTER]
    [/INDENT]
    [/FONT]

    کامنت

    • mohammad_ashooryan

      • 2014/08/13
      • 480
      • 80.00

      #3
      با سلام
      فایل پیوست رو ببینید.
      daftar.xlsx
      با انتخاب نوع دفتر از ستون a و کپی فرمول ستون b (کشیدن فرمول سلول بالا به سلول پایین)به جواب میرسید.
      فقط دقت کنید که فرمولش به صورت آرایه ای بوده، یعنی بعد از نوشتن فرمول، به جای اینتر، همزمان کلیدهای کنترل و شیفت و اینتر استفاده شده.

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #4
        با سلام

        از کدنویسی هم میتوانید برای این کار استفاده کنید

        کد PHP:
        Public MAX1MAX2 As Long

        Private Sub Worksheet_Change(ByVal Target As Range)

        Z1 Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row 1

        If Not Intersect(TargetMe.Range("A1:A" Z1)) Is Nothing Then


        TEST


        Z1 
        Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row 1


        If ActiveCell "d1-" Then

        ActiveCell
        .Offset(, 1) = MAX1


        ElseIf ActiveCell "d2-" Then

        ActiveCell
        .Offset(, 1) = MAX2

        End 
        If

        End If

        End Sub

        Sub TEST
        ()

        Z2 Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row

        MAX1 
        1
        MAX2 
        1

        For 1 To Z2

        If Range("A" I) = LCase("D1-") And Range("B" I) >= MAX1 Then

        MAX1 
        Range("B" I) + 1

        ElseIf Range("A" I) = LCase("D2-") And Range("B" I) >= MAX2 Then

        MAX2 
        Range("B" I) + 1

        End 
        If



        Next


        End Sub 
        فایل های پیوست شده

        کامنت

        • Javid Mokhtari
          مدير تالار ويژوال بيسيك

          • 2012/01/16
          • 1212
          • 73.00

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

          ارائه میشه.

          ولی به این مورد باید توجه داشت ما در زمینه پاسخگویی به کاربران دو بحث مجزای "توابع اکسل" و "vba" داریم که روش

          پاسخگوئی را نیاز کاربر مشخص میکنه و سعی ما بر این است که ساده ترین روش ممکن رو به کاربر (حدالمقدور با توابع خود

          اکسل) ارائه بدیم.مگر اینکه خود کاربر عنوان کند که از طریق توابع میخواهد یا vba.
          [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
          بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

          شرکت در دوره:
          [/FONT][/SIZE]
          [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
          [/B][/FONT][/SIZE]
          [/CENTER]
          [/INDENT]
          [/FONT]

          کامنت

          • bidariii

            • 2016/04/02
            • 15

            #6
            نوشته اصلی توسط jansiz hayat
            با سلام.

            لطفا یک نمونه از فایل رو پیوست کنین تا بهتر راهنماییتون کنیم.
            بفرمایید این یک نمونه کوچیک شده از فایل من . حالااگه فایل رو باز کنید میبینید مثلا من میخوام در دریف خالی بعدی یه نامه بزنم از ha به ma (مثل ردیف 379 که شماره نامه 1055 رو داره) . الان باید برم توی نامه هام بگردم ببینم آخرین شماره ma (در اینجا 1055) چنده که من شماره بعدی یعنی 1056 رو بزنم. من فرمولی میخوام که وقتی توی سلول g7 تایپ میکنم ma توی سلول i7 آخرین شماره مربوط به نامه های ارسالی به ma به علاوه یک ( یعنی 1056) رو بهم بده. یا اگه تایپ کنم so آخرین شماره so به علاوه یک یعنی (1008) رو بهم بده) . ممنون از لطف دوستان
            فایل های پیوست شده

            کامنت

            • bidariii

              • 2016/04/02
              • 15

              #7
              نوشته اصلی توسط mohammad2060
              با سلام
              فایل پیوست رو ببینید.
              [ATTACH]11009[/ATTACH]
              با انتخاب نوع دفتر از ستون a و کپی فرمول ستون b (کشیدن فرمول سلول بالا به سلول پایین)به جواب میرسید.
              فقط دقت کنید که فرمولش به صورت آرایه ای بوده، یعنی بعد از نوشتن فرمول، به جای اینتر، همزمان کلیدهای کنترل و شیفت و اینتر استفاده شده.
              دوست عزیز ممنون. این فایل پیوستی شما دقیقا کاری رو میکنه که من میخوام ازین بابت ممنون . اما یه سوال با ذکر این مسئله که من کاربر نیمه مبتدی هستم . چطور باید این فرمول شمارو کپی کنم توی فایل اصلی خودم که همین کار رو بکنه؟ چون با کپی پیست نمیشه و ارور #value میده . من یه نمونه از فایلم رو در پست بالا گذاشتم ممنون میشم روی اون راهنماییم کنید

              کامنت

              • amir_ts

                • 2015/03/17
                • 1247

                #8
                با سلام
                این فایل رو هم ببینید اگر فایل اصلیتون به این صورت باشه فکر میکنم با این فرمول آرایه ای (بدون آرایه هم میشه نوشت) به جواب مورد نظرتون برسید.(در فرمول های آرایه ای به جای inter باید بعد از نوشتن فرمول کلید ctrl+shift+inter رو با هم بفشارید.)

                کد PHP:
                =max((g3:g8=g13)*(i3:i8))+
                فایل های پیوست شده
                [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

                کامنت

                • bidariii

                  • 2016/04/02
                  • 15

                  #9
                  نوشته اصلی توسط amir_ts
                  با سلام
                  این فایل رو هم ببینید اگر فایل اصلیتون به این صورت باشه فکر میکنم با این فرمول آرایه ای (بدون آرایه هم میشه نوشت) به جواب مورد نظرتون برسید.(در فرمول های آرایه ای به جای inter باید بعد از نوشتن فرمول کلید ctrl+shift+inter رو با هم بفشارید.)

                  کد PHP:
                  =max((g3:g8=g13)*(i3:i8))+
                  ممنون دوست عزیز. اما این چیزی نیست که من میخوام . دوستمون mohammad 2060 توی پست دوم یه فایل پیوستی گذاشت که کاملا خوب عمل میکرد اما نمیدونم چطور فرمولش رو منتقل کنم به فایل خودم که ارور نده و درست کار کنه. فایل خودم رو هم که گذاشتم پس لطفا راهنماییم کنید

                  کامنت

                  • mohammad_ashooryan

                    • 2014/08/13
                    • 480
                    • 80.00

                    #10
                    سلامهمون فرمول پست دوم رو توی فایل اصلیتون اعمال کردم.برای سلول پایینی فرمول رو بصورت drag & drop کپی کنید.یعنی بعد از قرار گرفتن موس در گوشه سمت چپ و پایین سلول i7 وقتی که شکل موس به صورت + پررنگ دراومد اون رو بکشید به سمت پایین (سلول i8
                    Book1 (6).xlsx
                    Last edited by mohammad_ashooryan; 2016/04/03, 09:49.

                    کامنت

                    • bidariii

                      • 2016/04/02
                      • 15

                      #11
                      نوشته اصلی توسط mohammad2060
                      سلامهمون فرمول پست دوم رو توی فایل اصلیتون اعمال کردم.برای سلول پایینی فرمول رو بصورت drag & drop کپی کنید.یعنی بعد از قرار گرفتن موس در گوشه سمت چپ و پایین سلول i7 وقتی که شکل موس به صورت + پررنگ دراومد اون رو بکشید به سمت پایین (سلول i8
                      [ATTACH]11018[/ATTACH]

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

                      کامنت

                      چند لحظه..