نمایش نتایج: از شماره 1 تا 10 , از مجموع 10

موضوع: Update textbox with more than one combobox

  1. #1


    آخرین بازدید
    2017/03/01
    تاریخ عضویت
    January 2017
    نوشته ها
    16
    امتیاز
    13
    سپاس
    3
    سپاس شده
    3 در 2 پست
    تعیین سطح نشده است

    Update textbox with more than one combobox

    سلام ، اطلاعات زیر در sheet 1 فایل اکسل قرار دارد.

    I H G F E D C B A
    july
    Production
    June
    Production
    May
    Production
    Apr
    Production
    Mar
    Production
    Feb
    Production
    Jan
    Production
    Month
    Name
    1
    101 95 80 110 105 102 100 January Ali 2
    111 112 100 75 98 96 90 February Mehrdad 3
    74 102 120 127 135 122 120 March Nazanin 4
    68 85 40 43 51 42 35 April Abbas 5
    June 6
    Jly 7

    Column A = cboName
    Column B = cboMonth
    Column C-I = Production / Month

    من میخوام با انتخاب فرد از cboName و ماه از cboMonth ساعت تولید فرد مشخص در ماه معین در تکست باکس txtproduct اتوماتیک گنجانده شود.
    لطفا راهنمائی بفرمایید
    سپاس
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    پاسخ مورد نظر براي اين تاپيك ارسال شده است.

  2.  

  3. #2


    آخرین بازدید
    2023/05/10
    تاریخ عضویت
    January 2017
    محل سکونت
    کرمانشاه
    نوشته ها
    360
    امتیاز
    571
    سپاس
    98
    سپاس شده
    550 در 269 پست
    سطح اکسل
    80.00 %

    سلام
    کد PHP:
    Public Col As Integer
    Private Sub cboName_Change()
        
    Dim EName As String
        Dim Row
    Col As Integer
        EName 
    Me.cboName.text
        
    If EName <> "" Then
            With Application
    .WorksheetFunction
                Row 
    = .Match(ENameSheets("sheet1").Range("A2:A100"), 0)
                
    GetMonthNum (Me.cboMonth.text)
                
    txtproduct.text Sheets("sheet1").Cells(Row 1Col 2)
            
    End With
        End 
    If
    End Sub
    Sub GetMonthNum
    (Month As String)
        
    Select Case Month
            
    Case Jan
                Col 
    1
            
    Case Feb
                Col 
    2
            
    Case Mar
                Col 
    3
            
    Case Apr
                Col 
    4
            
    Case May
                Col 
    5
            
    Case June
                Col 
    6
            
    Case July
    End Sub 
    ..
    اول ماه بعد نام انتخاب شود

  4. سپاس ها (1)


  5. #3


    آخرین بازدید
    2017/03/01
    تاریخ عضویت
    January 2017
    نوشته ها
    16
    امتیاز
    13
    سپاس
    3
    سپاس شده
    3 در 2 پست
    تعیین سطح نشده است

    سلام اقا رسول
    من در فایلم اطلاعات دیگری مثل شماره کارمندی افراد و نوع شیفت در ستونهای دیگه دارم که اونا رو با استفاده از cboName در txtbox های دیگری استفاده میکنم
    کد:
    Private Sub cboName_Change()
        Dim EName As String
        Dim Row As Integer
        EName = Me.cboName.Text
        If EName <> "" Then
            With Application.WorksheetFunction
                Row = .Match(EName, Sheets("sheet1").Range("A2:A100"), 0)
                txtEmployeeNumber.Text = .Index(Sheets("sheet1").Range("B2:B100"), Row)
                txtShift.Text = .Index(Sheets("sheet1").Range("C2:C100"), Row)
            End With
        End If
    End Sub
    چون
    Private Sub cboName_Change()
    دوبار تعریف شده خطا میده
    اگه کد رو جوری بنویسیم که بر اساس cboMonth نوشته بشه مشکل برطرف میشه؟ یعنی اول نام انتخاب بشه بعد ماه
    جدول بالا کامل نبوده و فقط مثالی برای مسئله من هست
    ویرایش توسط mortezataheri : 2017/02/25 در ساعت 18:31

  6. #4


    آخرین بازدید
    2017/03/01
    تاریخ عضویت
    January 2017
    نوشته ها
    16
    امتیاز
    13
    سپاس
    3
    سپاس شده
    3 در 2 پست
    تعیین سطح نشده است

    کد:
    Public Col As Integer
    Private Sub cboName_Change()
        Dim EName As String
        Dim Row, Col As Integer
        EName = Me.cboName.Text
        If EName <> "" Then
            With Application.WorksheetFunction
                Row = .Match(EName, Sheets("sheet1").Range("A2:A100"), 0)
                txtEmployeeNumber.Text = .Index(Sheets("sheet1").Range("B2:B100"), Row)
                txtShift.Text = .Index(Sheets("sheet1").Range("C2:C100"), Row)
                GetMonthNum (Me.cboMonth.Text)
                txtproduct.Text = Sheets("sheet1").Cells(Row + 1, Col + 2)
            End With
        End If
    End Sub
    Sub GetMonthNum(Month As String)
        Select Case Month
            Case Jan
                Col = 1
            Case Feb
                Col = 2
            Case Mar
                Col = 3
            Case Apr
                Col = 4
            Case May
                Col = 5
            Case June
                Col = 6
            Case July
    End Sub
    نظرتون راجع به کد بالا چیه؟
    ابته از این خط اشکال میگیره
    Public Col As Integer

  7. #5


    آخرین بازدید
    2023/05/10
    تاریخ عضویت
    January 2017
    محل سکونت
    کرمانشاه
    نوشته ها
    360
    امتیاز
    571
    سپاس
    98
    سپاس شده
    550 در 269 پست
    سطح اکسل
    80.00 %

    نقل قول نوشته اصلی توسط mortezataheri نمایش پست ها
    سلام اقا رسول
    من در فایلم اطلاعات دیگری مثل شماره کارمندی افراد و نوع شیفت در ستونهای دیگه دارم که اونا رو با استفاده از cboName در txtbox های دیگری استفاده میکنم
    کد:
    Private Sub cboName_Change()
        Dim EName As String
        Dim Row As Integer
        EName = Me.cboName.Text
        If EName <> "" Then
            With Application.WorksheetFunction
                Row = .Match(EName, Sheets("sheet1").Range("A2:A100"), 0)
                txtEmployeeNumber.Text = .Index(Sheets("sheet1").Range("B2:B100"), Row)
                txtShift.Text = .Index(Sheets("sheet1").Range("C2:C100"), Row)
            End With
        End If
    End Sub
    چون
    Private Sub cboName_Change()
    دوبار تعریف شده خطا میده
    اگه کد رو جوری بنویسیم که بر اساس cboMonth نوشته بشه مشکل برطرف میشه؟ یعنی اول نام انتخاب بشه بعد ماه
    جدول بالا کامل نبوده و فقط مثالی برای مسئله من هست
    بله میشود فقط کمی تغییرات جزئی میخواد

  8. #6


    آخرین بازدید
    2017/03/01
    تاریخ عضویت
    January 2017
    نوشته ها
    16
    امتیاز
    13
    سپاس
    3
    سپاس شده
    3 در 2 پست
    تعیین سطح نشده است

    کد:
    Public Col As Integer
    Private Sub cboName_Change()
        Dim EName As String
        Dim Row, Col As Integer
        EName = Me.cboName.Text
        If EName <> "" Then
            With Application.WorksheetFunction
                Row = .Match(EName, Sheets("sheet1").Range("A2:A100"), 0)
                txtEmployeeNumber.Text = .Index(Sheets("sheet1").Range("B2:B100"), Row)
                txtShift.Text = .Index(Sheets("sheet1").Range("C2:C100"), Row)
                GetMonthNum (Me.cboMonth.Text)
                txtproduct.Text = Sheets("sheet1").Cells(Row + 1, Col + 4)
            End With
        End If
    End Sub
    Sub GetMonthNum(Month As String)
        Select Case Month
            Case Jan
                Col = 4
            Case Feb
                Col = 5
            Case Mar
                Col = 6
            Case Apr
                Col = 7
            Case May
                Col = 8
            Case June
                Col = 9
            Case July
      End Sub
    این کد رو که وارد میکنم ار خط اول خطا میگیره ولی با حذف خط اول بدون توجه به انتخاب ماه همواره ارقام ستونی رو که در خط دستور

    کد:
    txtproduct.Text = Sheets("sheet1").Cells(Row + 1, Col + 4)
    قرار دارند تو txtproduct ثبت میکنه به غبارت دیگه case select انجام نمیشه
    ویرایش توسط mortezataheri : 2017/02/25 در ساعت 22:46

  9. #7


    آخرین بازدید
    2023/05/10
    تاریخ عضویت
    January 2017
    محل سکونت
    کرمانشاه
    نوشته ها
    360
    امتیاز
    571
    سپاس
    98
    سپاس شده
    550 در 269 پست
    سطح اکسل
    80.00 %

    خوب دو متد رو باهم ادغام کنید و اون خط اول روهم پاک کنید

    کد:
    کد PHP:
    Private Sub cboName_Change()
        
    Dim EName As String
        Dim Row
    Col As Integer
        EName 
    Me.cboName.Text
        
    If EName <> "" Then
            With Application
    .WorksheetFunction
                Row 
    = .Match(ENameSheets("sheet1").Range("A2:A100"), 0)
                
    txtEmployeeNumber.Text = .Index(Sheets("sheet1").Range("B2:B100"), Row)
                
    txtShift.Text = .Index(Sheets("sheet1").Range("C2:C100"), Row)
                 
    Select Case Me.cboMonth.Text
                    
    Case Jan
                        Col 
    4
                    
    Case Feb
                        Col 
    5
                    
    Case Mar
                        Col 
    6
                    
    Case Apr
                        Col 
    7
                    
    Case May
                        Col 
    8
                    
    Case June
                        Col 
    9
                    
    Case July
                        Col 
    10
                  End Select
                txtproduct
    .Text Sheets("sheet1").Cells(Row 1Col)
            
    End With
        End 
    If
    End Sub 

  10. #8


    آخرین بازدید
    2017/03/01
    تاریخ عضویت
    January 2017
    نوشته ها
    16
    امتیاز
    13
    سپاس
    3
    سپاس شده
    3 در 2 پست
    تعیین سطح نشده است

    کد:
    txtproduct.Text = Sheets("sheet1").Cells(Row + 1, Col) 
    
    متاسفانه همچنان از کلمه col که برای انتخاب ستون ماه است ایراد می گیرد. و اگر بجای آن هر عددی بگذاریم ان را به مثابه شماره ستون فرض کرده و انتخاب ماه از cboMonth بلا اثر است
    ویرایش توسط mortezataheri : 2017/02/26 در ساعت 12:19

  11. #9


    آخرین بازدید
    2023/05/10
    تاریخ عضویت
    January 2017
    محل سکونت
    کرمانشاه
    نوشته ها
    360
    امتیاز
    571
    سپاس
    98
    سپاس شده
    550 در 269 پست
    سطح اکسل
    80.00 %

    نقل قول نوشته اصلی توسط mortezataheri نمایش پست ها
    کد:
    txtproduct.Text = Sheets("sheet1").Cells(Row + 1, Col) 
    
    متاسفانه همچنان از کلمه col که برای انتخاب ستون ماه است ایراد می گیرد. و اگر بجای آن هر عددی بگذاریم ان را به مثابه شماره ستون فرض کرده و انتخاب ماه از cboMonth بلا اثر است
    یک فایل پیوست کنید

  12. سپاس ها (1)


  13. #10


    آخرین بازدید
    2017/03/01
    تاریخ عضویت
    January 2017
    نوشته ها
    16
    امتیاز
    13
    سپاس
    3
    سپاس شده
    3 در 2 پست
    تعیین سطح نشده است

    نقل قول نوشته اصلی توسط rasools13 نمایش پست ها
    یک فایل پیوست کنید
    متاسفانه بدلیل اینکه تغییرات متعددی روی فایل انجام دادم و اونا رو ذخیره نکردم حساب کار از دستم در رفته، اما در نهایت 2 راه حل برای مشکلم پیدا کردم که به اشتراک میزارم
    کد:
       Private Sub cboName_Change()
        Dim EName As String
        Dim RowNum As Long, ColNum As Long
        EName = Me.cboName.Text
        If EName <> "" Then
            With Application.WorksheetFunction
               RowNum = .Match(EName, Sheets("sheet1").Range("A2:A100"), 0)
               
              ColNum = GetMonthNum(Me.cboMonth.Text) + 3
               txtProduct.Value = Sheets("sheet1").Cells(RowNum + 1, ColNum)
            End With
        End If
    End Sub
    
    Private Function GetMonthNum(Mth As String) As Long
        Select Case Mth
            Case "January":  GetMonthNum = 1
            Case "February":  GetMonthNum = 2
            Case "March":  GetMonthNum = 3
            Case "April":  GetMonthNum = 4
            Case "May":  GetMonthNum = 5
            Case "June": GetMonthNum = 6
            Case "July": GetMonthNum = 7
            Case "August":  GetMonthNum = 8
            Case "September": GetMonthNum = 9
            Case "October":  GetMonthNum = 10
            Case "November":  GetMonthNum = 11
            Case "December":  GetMonthNum = 12
        End Select
    End Function
    و راه حل دوم که خلاصه تره اما فقط زمانی که اسامی ماه ها به میلادی باشه جواب میده مثل January"" یا "Jan" . اگر بجای اسم ماه شماره اون نوشته بشه مثل "1 "یا اسامی غیر میلادی مثل "Farvardin" یا "فروردین" کارنمیکنه
    کد:
    Private Sub cboName_Change()
        Dim EName As String
        Dim RowNum As Long, ColNum As Long
        EName = Me.cboName.Text
        If EName <> "" Then
            With Application.WorksheetFunction
               RowNum = .Match(EName, Sheets("sheet1").Range("A2:A100"), 0)
    ColNum = Month(DateValue("1/" & Me.cboMonth.Text & "/2017")) + 3          
     txtProduct.Value = Sheets("sheet1").Cells(RowNum + 1, ColNum)
            End With
        End If
    End Sub

  14. سپاس ها (2)



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

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

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

موضوعات مشابه

  1. عدم نمایش پیغام update
    توسط Haji hadi در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 1
    آخرين نوشته: 2013/10/17, 19:03
  2. update اکسل
    توسط moslemi در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 0
    آخرين نوشته: 2013/01/20, 19:23
  3. آموزش:پيدا كردن داده هاي تغيير كرده در دو فايل شبيه بهم shown update data
    توسط mshahin در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 0
    آخرين نوشته: 2012/08/02, 08:08
  4. update داده های مرتب شده یک ستون بصورت اتوماتیک
    توسط feri-2011 در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 1
    آخرين نوشته: 2012/01/23, 19:02
  5. ComboBox
    توسط esyoo در انجمن فرم ها در ويژوال بيسيك - Forms in VBA
    پاسخ ها: 4
    آخرين نوشته: 2010/09/08, 12:27

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

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

کلمات کلیدی این موضوع

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

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

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