قراردان مقدار سل در تکست باکس با استفاده از شرط.

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

    • 2019/08/04
    • 13

    [حل شده] قراردان مقدار سل در تکست باکس با استفاده از شرط.

    درود بر شما دوستان عزیز و اساتید محترم.

    دوستان من یه شیت راهنما دارم که تعدادی مهندس و تخصص ویژه هر کدوم توش ثبت شده. یه شیت تعرفه هم دارم که بر اساس تخصص هر مهندس و گروه ساختمان تعرفشون هم متفاوته.
    یه یوزرفرم هم دارم که میخوام وقتی مهندس مربوطه رو انتخاب کردم و گروه ساختمان رو انتخاب کردم بر اساس تخصص مهندس و گروه ساختمان اون تعرفه رو در یه تکست باکس دیگه قرار بده.
    از دو تا حلقه لوپ استفاده کردم ولی جواب نمیده. اگه منو راهنمایی بفرمایید، ممنون میشم.
    سپاس فراوان
    فایل های پیوست شده
  • mrhartsclube

    • 2017/11/15
    • 130
    • 81.00

    #2
    سلام دوست عزیز

    من یه توضیح اجمالی بدم:

    متغیر lastrowName عدد 809 رو بر میگردونه که خونه آخر جدولتون هست و خالی هست، یعنی شما با توجه به جدول فقط باید 52 (از 5 تا 57) تا خونه رو چک کنید نه 804 تا (از 5 تا 809)
    متغیر lastrowSpecialist که همیشه 0 برمیگردونه! درواقع با این کد من توقع داشتم مقدارش فرقی با متغیر lastrowName نکنه ولی بهرحال ستون D هست و مسایل خودش

    واسه همین اصلا باقی کد اجرا نمیشه! یعنی For دوم که اصلا دلیل بودنش خودش سواله (چون بجز تکرار از j هیچ استفاده ای نشده) چون از 5 تا 0 میخواد بره درواقع چون 5 همیشه بزرگتر از 0 هست هیچوقت اجرا نمیشه و فقط 804 بار i اضافه میشه!
    کل کاریه که این برنامه میکنه.

    به اضافه اینکه دلیل اینکه این کد رو در Event ورود کرزر داخل تکست باکس نوشتین هم برام سواله!

    ولی در کل چندتا تیکه کد مینویسم انشاالله به کارتون بیاد، چون من به طور کامل متوجه نشدم چرا کدتون رو اینطور نوشتین و هر خط قراره چکار کنه!

    برای اینکه یه ستون رو سرچ کنید و تا جایی که محتویات داره جلو برین این کد از نظر من معقول تره و به مشکل نمیخوره، مثلا این کد میاد تعداد خونه های پر ستون C از شیت راهنما رو بر میگردونه (از 5 تا 57 میشمره و 52 رو توی MsgBox نشون میده):

    کد PHP:
    rowCounter 5
    While (Sheets("راهنما").Cells(rowCounter"C").Value <> "")
        
    rowCounter rowCounter 1
    Wend
    MsgBox rowCounter 

    دقیقا توی همین While بدون نیاز به نمایش یا استفاده از تعداد سلولهای پر، میتونین شرطاتون رو چک کنید که اگه مثلا نام مهندس با اسم داخل کمبوباکس یکی بود یه کاری که میخواین رو بکنه.
    ورک شیتهاتون خیلی اطلاعات داخلش هست و من دقیقا نمیدونم چی میشه ولی این کد رو پیشنهاد میدم داخل کد Change کمبو باکس گروه ساختمان و مهندس طراح (هردو) بنویسید و قبل از اجرا شدن کد چک کنید که حتما جفت کمبو باکس ها مقدار داشته باشن بعد اجرا بشه:

    کد PHP:
    Dim rowCounterTarrifColumnTarrifRow As Integer
    rowCounter 
    5
    While (Sheets("راهنما").Cells(rowCounter"C").Value <> "")
        
    rowCounter rowCounter 1
        
    If EngListCombo.Value Sheets("راهنما").Cells(rowCounter"C").Value Then
            
    For TarrifColumn 3 To 7
                
    If Sheets("راهنما").Cells(rowCounter"D").Value Sheets("تعرفه").Cells(TarrifColumn"A").Value Then
                    
    For TarrifRow 2 To 3
                        
    If BuildingGroupsBricks.Value Sheets("تعرفه").Cells(2TarrifRow).Value Then
                            BricksTarrif
    .Text Sheets("تعرفه").Cells(TarrifColumnTarrifRow).Value
                        End 
    If
                    
    Next TarrifRow
                End 
    If 
           
    Next TarrifColumn
        End 
    If
    Wend 
    امیدوارم کد به اندازه کافی خوانا باشه
    [CENTER][COLOR=#696969][FONT=lucida console]... [B]Programming [/B]C# - VB.Net - VC++ - ASP.Net - HTML - CSS - JS - AS2 - AutoIt - Pascal - Delphi - PHP - Python - VBA - Etc
    [/FONT][/COLOR][SIZE=2][FONT=lucida console][COLOR=#808080]... 2D & 3D [B]Graphic Designer[/B][/COLOR][COLOR=#ff0000][B]|[/B][/COLOR][COLOR=#808080] 2D & 3D [B]Animator [/B][/COLOR][COLOR=#ff0000][B]|[/B][/COLOR][COLOR=#808080] [B]Game [/B]Designer & [B]Hacker [/B][/COLOR][COLOR=#ff0000][B]|[/B][/COLOR][COLOR=#808080] Data [B]Forensic [/B]Expert [/COLOR][COLOR=#ff0000][B]|[/B][/COLOR][COLOR=#808080] [B]Ethical [/B]Hacker [/COLOR][COLOR=#ff0000][B]|[/B][/COLOR][COLOR=#808080] [B]Pen[/B] Tester

    [/COLOR][/FONT][/SIZE][COLOR=#ff0000][FONT=courier new][SIZE=4][B].: Expert in doing what nobody else can :.[/B][/SIZE][/FONT][/COLOR][/CENTER]

    کامنت

    • heidar76

      • 2019/08/04
      • 13

      #3
      با عرض سلام مجدد. از لطف شما و توضیحاتتون بینهایت سپاسگذارم. واقعا لطف کردید.

      کامنت

      چند لحظه..