چگونگی ساخت فرم و آدرس دهی سلول ها به کمک کد نویسی vba " (تقاطع ستون و ردیف مورد نظر)

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

    • 2018/04/11
    • 18
    • 15.00

    [حل شده] چگونگی ساخت فرم و آدرس دهی سلول ها به کمک کد نویسی vba " (تقاطع ستون و ردیف مورد نظر)

    با تشکر از مرحمت و لطف دوستان عزیز
    سئوالی پیرامون " ساخت فرم و آدرس دهی سلول ها در vba " داشتم که امیدوارم در رسیدن به پاسخ آن بنده را مساعدت نماید.
    اگر در عنوان ستون a1 کد کالا و عنوان ستون های بعدی b:g تاریخ یک هفته منظور شود، فرمی ساختم تا ورود اطلاعات را با سه پارامتر (1. مشخص کردن تاریخ 2. کد کالا 3. تعداد فروش رفته) بتوانم ثبت نمایم، حال برای آدرس دهی سلولی که از تقاطع کد کالا و تاریخ مورد نظر باید به دست آید و سپس مقدار پارامتر سوم در آن ثبت شود چگونه باید عمل نمایم ؟
    نمونه ای را جهت روشنتر شدن مسئله پیوست می کنم، لطفا در کد نویسی این فرم بنده را راهنمایی نمایید سپاسگزارم

    [ATTACH=CONFIG]16832[/ATTACH]
    فایل های پیوست شده
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    سلام دوست عزیز
    من این کد رو که قبلا تقدیم کرده بودم

    با یکسری تغییرات کوچیک مجدد براتون میفرستم

    کد:
    Private Sub Btn_Save_Click()
    Dim tarikh As String
    tarikh = DTPicker1.Value
    code_kala = TextBox1.Value
    forush = TextBox2.Value
    
    
    For Each cel In Range("B4:H4")
        If tarikh = cel.Value Then c = cel.Column: Exit For
    Next cel
    
    
    For Each cel In Range("A5:A54")
        If code_kala = cel.Text Then R = cel.Row: Exit For
    Next cel
    
    
    If Not (IsEmpty(c) Or IsEmpty(R)) Then Cells(R, c) = CInt(forush)
    
    
    End Sub

    کامنت

    • qaribeh216

      • 2018/04/11
      • 18
      • 15.00

      #3
      نوشته اصلی توسط Amir Ghasemiyan
      سلام دوست عزیز
      من این کد رو که قبلا تقدیم کرده بودم

      با یکسری تغییرات کوچیک مجدد براتون میفرستم

      کد:
      Private Sub Btn_Save_Click()
      Dim tarikh As String
      tarikh = DTPicker1.Value
      code_kala = TextBox1.Value
      forush = TextBox2.Value
      
      
      For Each cel In Range("B4:H4")
          If tarikh = cel.Value Then c = cel.Column: Exit For
      Next cel
      
      
      For Each cel In Range("A5:A54")
          If code_kala = cel.Text Then R = cel.Row: Exit For
      Next cel
      
      
      If Not (IsEmpty(c) Or IsEmpty(R)) Then Cells(R, c) = CInt(forush)
      
      
      End Sub
      سلام جناب قاسمیان عرض ادب
      پاسخ شما را قبلا تست کردم و نتیجه حاصل نشده بود و در همان تاپیک جهت بررسی مجدد شما پیام گذاشتم، چون خیلی زمان برد و پاسخی نرسید
      فکر کردم شاید به خاطر مشغله زیاد فرصت بررسی مجدد برایتان مقدور نباشد از این رو باز مجدد مزاحم شدم تا بلکه دوستان دیگر به داد بنده برسند
      ولی خرسندم از این که باز محبت فرمودید به بررسی مجدد این تاپیک، تغییرات جدید در کد ارسال شده شما کار کرد و جواب داد در شرایطی که (البته به توصیه دوستان(mokaram)) مجبور شدم Date picker را حذف و آن را به تکس باکس تغییر بدم و تاریخ را به صورت دستی وارد کنم
      Click image for larger version

Name:	1.jpg
Views:	1
Size:	99.8 کیلو بایت
ID:	134117
      تغییر به textbox
      Click image for larger version

Name:	2.jpg
Views:	1
Size:	137.3 کیلو بایت
ID:	134118

      بودن Date picker در فرم ضمن سهولت ورود اطلاعات، احتمال خطا را هم کمتر می کند
      1. آیا می توان فرم را با شرایط قبلی رفع اشکال کرد و لازم به تغییر دادن در نوع باکس نباشیم؟
      2. در صورتی که پارامتر سوم قبلا مقدار دهی شده باشد، فرم آن را با ورود تاریخ و کد داده شده کنترل کرده و مقدار وارد شده را در تکس باکس سوم نمایش دهد، در صورت ثبت به کاربر آلارم داده و با تایید کاربر برای ویرایش آن عمل ثبت را انجام دهد
      3. اگر برای تاریخی قبلا ستونی در نظر گرفته نشده باشد فرم به صورت اتوماتیک یک ستون جدید برای آن تاریخ اضافه کند
      ما مخلص تمامی بچه محله آقا امام رضا (ع) هم هستیم، نایب الزیاره ما باشید
      دم همه اکسل ایرانیها گرم
      Last edited by qaribeh216; 2018/07/18, 12:34.

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #4
        با سلام
        در فایل پیوست یکسری تغییرات ایجاد شده است لطفا بررسی کنید
        فایل های پیوست شده
        Last edited by iranweld; 2018/07/18, 13:14.

        کامنت

        • iranweld

          • 2015/03/29
          • 3341

          #5
          نمایش پیغام در صورتی که سل مورد نظر حاوی دیتا از قبل باشد
          فایل های پیوست شده

          کامنت

          • Amir Ghasemiyan

            • 2013/09/20
            • 4598
            • 100.00

            #6
            نوشته اصلی توسط qaribeh216
            سلام جناب قاسمیان عرض ادب
            پاسخ شما را قبلا تست کردم و نتیجه حاصل نشده بود و در همان تاپیک جهت بررسی مجدد شما پیام گذاشتم، چون خیلی زمان برد و پاسخی نرسید
            فکر کردم شاید به خاطر مشغله زیاد فرصت بررسی مجدد برایتان مقدور نباشد از این رو باز مجدد مزاحم شدم تا بلکه دوستان دیگر به داد بنده برسند
            ولی خرسندم از این که باز محبت فرمودید به بررسی مجدد این تاپیک، تغییرات جدید در کد ارسال شده شما کار کرد و جواب داد در شرایطی که (البته به توصیه دوستان(mokaram)) مجبور شدم Date picker را حذف و آن را به تکس باکس تغییر بدم و تاریخ را به صورت دستی وارد کنم
            [ATTACH=CONFIG]16839[/ATTACH]
            تغییر به textbox
            [ATTACH=CONFIG]16840[/ATTACH]

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

            1- date picker براي شمسي مناسب نيست. اگر تاريخ هاتون رو ميلادي كنيد ميتونين بهتر از اين ابزار استفاده كنيد

            2- بله ميشه. كدش رو تقديم ميكنم

            3- اين مورد رو هم لحاظ ميكنم تو فايل پيوست
            فایل های پیوست شده

            کامنت

            • qaribeh216

              • 2018/04/11
              • 18
              • 15.00

              #7
              نوشته اصلی توسط Amir Ghasemiyan

              1- date picker براي شمسي مناسب نيست. اگر تاريخ هاتون رو ميلادي كنيد ميتونين بهتر از اين ابزار استفاده كنيد

              2- بله ميشه. كدش رو تقديم ميكنم

              3- اين مورد رو هم لحاظ ميكنم تو فايل پيوست
              ضمن سپاس فراوان تصویر را ملاحظه فرمایید
              Click image for larger version

Name:	3.jpg
Views:	1
Size:	88.1 کیلو بایت
ID:	134123

              کامنت

              • Amir Ghasemiyan

                • 2013/09/20
                • 4598
                • 100.00

                #8
                نوشته اصلی توسط qaribeh216
                ضمن سپاس فراوان تصویر را ملاحظه فرمایید
                [ATTACH=CONFIG]16846[/ATTACH]

                فايل رو اصلاح كردم. ملاحظه بفرماييد
                فایل های پیوست شده

                کامنت

                • Amir Ghasemiyan

                  • 2013/09/20
                  • 4598
                  • 100.00

                  #9
                  فايل با آخرين تغييرات مورد نظر به پيوست تقديم حضور مي گردد.
                  فایل های پیوست شده

                  کامنت

                  • qaribeh216

                    • 2018/04/11
                    • 18
                    • 15.00

                    #10
                    نوشته اصلی توسط Amir Ghasemiyan
                    فايل با آخرين تغييرات مورد نظر به پيوست تقديم حضور مي گردد.
                    ضمن تشکر از حسن نظر عزیزان انجمن (iranweld و mokaram) لازم است از زحمات بیدریغ جناب آقای مهندس امیرخان قاسمیان در حل این مسئله کمال قدردانی را بنمایم که انصافا صاحب نظران نشان و لوح تقدیمی ایشان را به شایستگی و لیاقت منظور کرده اند
                    برای ایشان و دوستان این مجموعه درجات بالای علمی را آرزومندم

                    کامنت

                    چند لحظه..