ایجاد لیست کشویی

aghil.m

Member
با سلام خدمت دوستان و اساتید گرامی
ینده برای کار خودم و راحتی کارم یک فرم برای خودم ساختم که اطلاعات رو بین نزدیک به 50 شیت ذخیره میکنه
یعنی اینکه فایل من 50شیت داره و برای ذخیره اطلاعاتم بدلیل ندونستن درست زبان vb و چون برای اولین بارم هست که دارم فرم تو این زمینه درست میکنم مجبور به گذاشتن commandbottom برای هر صفحه گذاشتم که فرمم رو از ریخت انداخته
حالا سوالی که از دوستان دارم این هستش که
1- چطور میتونم این اسامی شیت هارو دو یه لیست کشویی یا هر لیستی که شما ها بهتر راحش رو بلدید بزارم که با انتخاب هر کدوم از اسم ها تو همون صفحه ذخیره بشه
2- چطور فرم جستجوم رو از یک صفحه به تمام صفحات گسترش بدم و برام توی تمامی صفحات جستجو انجام بده؟

ممنونتون میشم راهنماییم کنید
 

the_king

مدیرکل انجمن
با سلام خدمت دوستان و اساتید گرامی
ینده برای کار خودم و راحتی کارم یک فرم برای خودم ساختم که اطلاعات رو بین نزدیک به 50 شیت ذخیره میکنه
یعنی اینکه فایل من 50شیت داره و برای ذخیره اطلاعاتم بدلیل ندونستن درست زبان vb و چون برای اولین بارم هست که دارم فرم تو این زمینه درست میکنم مجبور به گذاشتن commandbottom برای هر صفحه گذاشتم که فرمم رو از ریخت انداخته
حالا سوالی که از دوستان دارم این هستش که
1- چطور میتونم این اسامی شیت هارو دو یه لیست کشویی یا هر لیستی که شما ها بهتر راحش رو بلدید بزارم که با انتخاب هر کدوم از اسم ها تو همون صفحه ذخیره بشه
2- چطور فرم جستجوم رو از یک صفحه به تمام صفحات گسترش بدم و برام توی تمامی صفحات جستجو انجام بده؟

ممنونتون میشم راهنماییم کنید
شما دارید با Excel کار می کنید و فرم تون رو داخل همون Microsoft Excel میسازید؟
 

the_king

مدیرکل انجمن
سلام
آره توی اکسل دارم فرمم رو میسازم
توی vb اکسل
ممنونتون میشم راهنماییم کنید
یه ListBox روی فرم قرار بدید واسه خوندن لیست Sheet ها و نمایش دادن اسمشون :
کد:
Private Sub UserForm_Initialize()
    For Each s In Sheets
        ListBox1.AddItem s.Name
    Next
End Sub

یه دکمه هم دارید که قرار فرضا یک مقدار رو در اولین خونه ثبت کنه :
کد:
Private Sub CommandButton1_Click()
    If ListBox1.ListIndex = -1 Then
        MsgBox "please select one of these sheets."
    Else
        Sheets.Item(ListBox1.Text).Activate
        ActiveSheet.Cells(1, 1) = "A"
    End If
End Sub
که اگه Sheet ای انتخاب نشده باشه پیغام خطا بده وگرنه Activate اش کنه که بعدا با ActiveSheet هر بلایی خواستید سر Sheet بیارید.
 

aghil.m

Member
ممنونم از شما که اینجور بهم لطف دارید و وقت میزارید پای سوالای خرده پای بنده
اگر اشکال نداشته باشه فایلم رو میزام که یه نگاه بهش بندازید و توی sheet2 یه سری سوال نوشتم که ممنونت میشم که اونا رو هم یه نگاه بندازی
بازم تشکر میکنم
 

پیوست ها

  • vendor list.rar
    252.4 کیلوبایت · بازدیدها: 8

aghil.m

Member
و یادم رفت بنویسم که به فرم جستجو هم یه نگاه بندازید لطفا و اینکه چطور توی تمام صفحات بتونه برام یه اسم رو پیداکنه
تشکر
 

the_king

مدیرکل انجمن
و یادم رفت بنویسم که به فرم جستجو هم یه نگاه بندازید لطفا و اینکه چطور توی تمام صفحات بتونه برام یه اسم رو پیداکنه
تشکر
شما یه کدی دارید که باهاش در یک sheet خاص hhh جستجو می کنید :
کد:
If fnameflt <> "" Then
    For Each sh In Sheets
        Set RNG = Sheets("hhh").Range("a1:D100")
        For Each CELL In RNG
            If Left(CELL, Len(fnameflt)) = fnameflt Then
                ListBox1.AddItem CELL
                For s = 1 To 10
                    ListBox1.List(ListBox1.ListCount - 1, s - 1) = Cells(CELL.Row, s)
                Next s
            End If
        Next
    Next
End If

یک حلقه For each بیرون اون جستجو اضافه می کنیم تا بجای اینکه جستجو در Sheets("hhh") باشه، در sh باشه که خودش شامل همه شیت ها خواهد بود :
کد:
If fnameflt <> "" Then
    For Each sh In Sheets
        Set RNG = sh.Range("a1:D100")
        For Each CELL In RNG
            If Left(CELL, Len(fnameflt)) = fnameflt Then
                ListBox1.AddItem CELL
                For s = 1 To 10
                    ListBox1.List(ListBox1.ListCount - 1, s - 1) = Cells(CELL.Row, s)
                Next s
            End If
        Next
    Next
End If
 

aghil.m

Member
ممنون علی آقا که وقتت رو در اختیارم میزاری
کد رو توی فومولم گذاشتم ولی بازم اون چیزی که میخواستم نشد و یه جوری جستجو توی تمام صفحات نیست
و اینکه اگر لطف کنی و برای سوالایی که توی فایل نوشتم هم راه حل پیداکنی ممنونت میشم
"
ممنونم از شما که اینجور بهم لطف دارید و وقت میزارید پای سوالای خرده پای بنده
اگر اشکال نداشته باشه فایلم رو میزام که یه نگاه بهش بندازید و توی sheet2 یه سری سوال نوشتم که ممنونت میشم که اونا رو هم یه نگاه بندازی
بازم تشکر میکنم"
ممنون
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
سلام
استاد علی ، نمیدونم چیزی که میگم ، توی این تاپیک درست جاش هست یا نه
یکی از فامیل هام ، یه نرم افزاری میخواد که اولا اطلاعات کالاهای موجود در فروشگاهش رو واردش کنه و بعد هم بتونه بعدا جستجو کنه بر هر اساسی (بر اساس نام و قیمت و ...) و دوما مثلا قیمت یه کالایی رو 15000 تومن خرید ، حالا بتونه ضربدر 20 درصد کنه تا قیمت فروش اش رو بدست بیاره
البته نمیتونه نرم افزار بخره . منم وقت نوشتن برنامه رو براش ندارم . بین نرم افزارهای موجود ، کدوم یکی کارش رو با آسون ترین شکل میتونه حل کنه؟ فکر کنم نرم افزارهای آفیس بتونه . درسته؟ من چون با آفیس اصلا کار نکردم ، چیزی نمییدونم . نمیدونم access برای این کاره یا excel یا چیز دیگه؟
 

aghil.m

Member
سلام
استاد علی ، نمیدونم چیزی که میگم ، توی این تاپیک درست جاش هست یا نه
یکی از فامیل هام ، یه نرم افزاری میخواد که اولا اطلاعات کالاهای موجود در فروشگاهش رو واردش کنه و بعد هم بتونه بعدا جستجو کنه بر هر اساسی (بر اساس نام و قیمت و ...) و دوما مثلا قیمت یه کالایی رو 15000 تومن خرید ، حالا بتونه ضربدر 20 درصد کنه تا قیمت فروش اش رو بدست بیاره
البته نمیتونه نرم افزار بخره . منم وقت نوشتن برنامه رو براش ندارم . بین نرم افزارهای موجود ، کدوم یکی کارش رو با آسون ترین شکل میتونه حل کنه؟ فکر کنم نرم افزارهای آفیس بتونه . درسته؟ من چون با آفیس اصلا کار نکردم ، چیزی نمییدونم . نمیدونم access برای این کاره یا excel یا چیز دیگه؟
سلام سجاد خان
البته عذر خواهی میکنم از محضر اساتید و همچنین علی آقا , چون شما این سوال رو از ایشون پرسیدید
توی مدتی که دنبال یادگرفتن نوشتن همین برنامه ساده برای خودم بودم با سایتهای زیادی سر زدم و فایل های آماده و خط های برنامه آماده برداشتم
برای فروشگاه توی برنامه اکسل برنامه زیاد هست مثل سوپر مارکتها یا انبار داری
و اینکه توی گشت و گذارم توی سایتهای خارجی چند تا برنامه آماده انبار داری توی اکسل پیداکردم که یکیش رو اینجا میزام و امیدوارم بکارت بیاد یا حداقل بشه از برنامه ای که نوشته استفاده کرد
ولی چیزی که هستش این برنامه روی vb پسورد گذاشته که برداشتنش برای شما و دوستان نباید کار وقت گیری باشه و توی سایتی که توی صفحه اصلی فایل هست برنامه های آماده دیگه ای هم هستش که کارائی خوبی دارند
 

پیوست ها

  • Copy of Macro_Excel_Stocks_warehouses.rar
    133.5 کیلوبایت · بازدیدها: 5

aghil.m

Member
با سلام خدمت استاد علی
لطف میکنی سوالهای بنده رو یه نگاه بندازی و اگر امکانش هست یه وقت براشون بزاری
ممنونت میشم
 

aghil.m

Member
سلام
استاد علی ، نمیدونم چیزی که میگم ، توی این تاپیک درست جاش هست یا نه
یکی از فامیل هام ، یه نرم افزاری میخواد که اولا اطلاعات کالاهای موجود در فروشگاهش رو واردش کنه و بعد هم بتونه بعدا جستجو کنه بر هر اساسی (بر اساس نام و قیمت و ...) و دوما مثلا قیمت یه کالایی رو 15000 تومن خرید ، حالا بتونه ضربدر 20 درصد کنه تا قیمت فروش اش رو بدست بیاره
البته نمیتونه نرم افزار بخره . منم وقت نوشتن برنامه رو براش ندارم . بین نرم افزارهای موجود ، کدوم یکی کارش رو با آسون ترین شکل میتونه حل کنه؟ فکر کنم نرم افزارهای آفیس بتونه . درسته؟ من چون با آفیس اصلا کار نکردم ، چیزی نمییدونم . نمیدونم access برای این کاره یا excel یا چیز دیگه؟
سلام سجاد خان
این فایل هم تقریبا اون چیزایی رو که میخواستی داره و هم میشه کم و زیادش کرد
امیدوارم بتونه کمکی بهت کنه
 

پیوست ها

  • how-to-use-classes.rar
    44.4 کیلوبایت · بازدیدها: 4

aghil.m

Member
شما یه کدی دارید که باهاش در یک sheet خاص hhh جستجو می کنید :
کد:
If fnameflt <> "" Then
    For Each sh In Sheets
        Set RNG = Sheets("hhh").Range("a1:D100")
        For Each CELL In RNG
            If Left(CELL, Len(fnameflt)) = fnameflt Then
                ListBox1.AddItem CELL
                For s = 1 To 10
                    ListBox1.List(ListBox1.ListCount - 1, s - 1) = Cells(CELL.Row, s)
                Next s
            End If
        Next
    Next
End If

یک حلقه For each بیرون اون جستجو اضافه می کنیم تا بجای اینکه جستجو در Sheets("hhh") باشه، در sh باشه که خودش شامل همه شیت ها خواهد بود :
کد:
If fnameflt <> "" Then
    For Each sh In Sheets
        Set RNG = sh.Range("a1:D100")
        For Each CELL In RNG
            If Left(CELL, Len(fnameflt)) = fnameflt Then
                ListBox1.AddItem CELL
                For s = 1 To 10
                    ListBox1.List(ListBox1.ListCount - 1, s - 1) = Cells(CELL.Row, s)
                Next s
            End If
        Next
    Next
End If
با سلام خدمت استاد علی
لطف میکنی سوالهای بنده رو یه نگاه بندازی و اگر امکانش هست یه وقت براشون بزاری
ممنونت میشم
 

aghil.m

Member
با سلام خدمت استاد علی
لطف میکنی سوالهای بنده رو یه نگاه بندازی و اگر امکانش هست یه وقت براشون بزاری
ممنونت میشم
با سلام خدمت استاد علی
گزینه سرچ رو تونستم پیداکنم و سوالی که ازتون دارم این هست که چطور میتونم اسامی شیت هام رو توی یک لیست کشویی بزارم که با انتخاب هر کدوم اطلاعاتم توی همون صفحه ذخیره بشه؟؟؟؟؟؟؟؟؟؟؟؟؟
 

the_king

مدیرکل انجمن
با سلام خدمت استاد علی
گزینه سرچ رو تونستم پیداکنم و سوالی که ازتون دارم این هست که چطور میتونم اسامی شیت هام رو توی یک لیست کشویی بزارم که با انتخاب هر کدوم اطلاعاتم توی همون صفحه ذخیره بشه؟؟؟؟؟؟؟؟؟؟؟؟؟
کدشو که بهتون دادم.
 

aghil.m

Member
سلام استاد علی
ممنون که وقتت رو باهام به اشتراک میزاری
این کد میاد اون صفحه ای رو که انتخاب میکنم فعال میکنه و برام لودش میکنه
چیزی که میخوام این هست که بیاد اطلاعات فرم رو توی اون صفحه که از listbox انتخاب میکنم , انتقال بده به آخرین سطر و فرم رو خالی کنه
باز هم ممنونم ازت[/QUOTE]
 

aghil.m

Member
کدشو که بهتون دادم.
سلام استاد علی
ممنون که وقتت رو باهام به اشتراک میزاری
این کد میاد اون صفحه ای رو که انتخاب میکنم فعال میکنه و برام لودش میکنه
چیزی که میخوام این هست که بیاد اطلاعات فرم رو توی اون صفحه که از listbox انتخاب میکنم , انتقال بده به آخرین سطر و فرم رو خالی کنه
باز هم ممنونم ازت
 

the_king

مدیرکل انجمن
سلام استاد علی
ممنون که وقتت رو باهام به اشتراک میزاری
این کد میاد اون صفحه ای رو که انتخاب میکنم فعال میکنه و برام لودش میکنه
چیزی که میخوام این هست که بیاد اطلاعات فرم رو توی اون صفحه که از listbox انتخاب میکنم , انتقال بده به آخرین سطر و فرم رو خالی کنه
باز هم ممنونم ازت
شما در کد تون یکجا داخل sheet فلان دارید مقدار می نویسید، مثلا نوشتید :
کد:
num = Application.WorksheetFunction.CountA(Range("c:c")) + 1
If TextBox1.Text <> Empty Then
Sheets("sheetName").Cells(num, 3).Value = TextBox1.Value
Sheets("sheetName").Cells(num, 4).Value = TextBox2.Value
Sheets("sheetName").Cells(num, 5).Value = TextBox3.Value
Sheets("sheetName").Cells(num, 6).Value = TextBox4.Value
Sheets("sheetName").Cells(num, 7).Value = TextBox5.Value
Sheets("sheetName").Cells(num, 8).Value = TextBox6.Value
Sheets("sheetName").Cells(num, 9).Value = TextBox7.Value
Sheets("sheetName").Cells(num, 10).Value = TextBox8.Value
Sheets("sheetName").Cells(num, 11).Value = TextBox9.Value
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
TextBox7.Value = ""
TextBox8.Value = ""
TextBox9.Value = ""
Else
MsgBox "Error Message"
End If
TextBox1.SetFocus
و گفتم که بجای اون Sheet خاصی که نوشتید بیایید با ActiveSheet کار کنید :
کد:
    If ListBox1.ListIndex = -1 Then
        MsgBox "please select one of these sheets."
    Else
        Sheets.Item(ListBox1.Text).Activate

        num = Application.WorksheetFunction.CountA(Range("c:c")) + 1
        If TextBox1.Text <> Empty Then
        ActiveSheet.Cells(num, 3).Value = TextBox1.Value
        ActiveSheet.Cells(num, 4).Value = TextBox2.Value
        ActiveSheet.Cells(num, 5).Value = TextBox3.Value
        ActiveSheet.Cells(num, 6).Value = TextBox4.Value
        ActiveSheet.Cells(num, 7).Value = TextBox5.Value
        ActiveSheet.Cells(num, 8).Value = TextBox6.Value
        ActiveSheet.Cells(num, 9).Value = TextBox7.Value
        ActiveSheet.Cells(num, 10).Value = TextBox8.Value
        ActiveSheet.Cells(num, 11).Value = TextBox9.Value
        TextBox1.Value = ""
        TextBox2.Value = ""
        TextBox3.Value = ""
        TextBox4.Value = ""
        TextBox5.Value = ""
        TextBox6.Value = ""
        TextBox7.Value = ""
        TextBox8.Value = ""
        TextBox9.Value = ""
        Else
                MsgBox "Error Message"
        End If
        TextBox1.SetFocus

    End If
 

aghil.m

Member
ممنون استاد علی
شما در کد تون یکجا داخل sheet فلان دارید مقدار می نویسید، مثلا نوشتید :
کد:
num = Application.WorksheetFunction.CountA(Range("c:c")) + 1
If TextBox1.Text <> Empty Then
Sheets("sheetName").Cells(num, 3).Value = TextBox1.Value
Sheets("sheetName").Cells(num, 4).Value = TextBox2.Value
Sheets("sheetName").Cells(num, 5).Value = TextBox3.Value
Sheets("sheetName").Cells(num, 6).Value = TextBox4.Value
Sheets("sheetName").Cells(num, 7).Value = TextBox5.Value
Sheets("sheetName").Cells(num, 8).Value = TextBox6.Value
Sheets("sheetName").Cells(num, 9).Value = TextBox7.Value
Sheets("sheetName").Cells(num, 10).Value = TextBox8.Value
Sheets("sheetName").Cells(num, 11).Value = TextBox9.Value
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
TextBox7.Value = ""
TextBox8.Value = ""
TextBox9.Value = ""
Else
MsgBox "Error Message"
End If
TextBox1.SetFocus
و گفتم که بجای اون Sheet خاصی که نوشتید بیایید با ActiveSheet کار کنید :
کد:
    If ListBox1.ListIndex = -1 Then
        MsgBox "please select one of these sheets."
    Else
        Sheets.Item(ListBox1.Text).Activate

        num = Application.WorksheetFunction.CountA(Range("c:c")) + 1
        If TextBox1.Text <> Empty Then
        ActiveSheet.Cells(num, 3).Value = TextBox1.Value
        ActiveSheet.Cells(num, 4).Value = TextBox2.Value
        ActiveSheet.Cells(num, 5).Value = TextBox3.Value
        ActiveSheet.Cells(num, 6).Value = TextBox4.Value
        ActiveSheet.Cells(num, 7).Value = TextBox5.Value
        ActiveSheet.Cells(num, 8).Value = TextBox6.Value
        ActiveSheet.Cells(num, 9).Value = TextBox7.Value
        ActiveSheet.Cells(num, 10).Value = TextBox8.Value
        ActiveSheet.Cells(num, 11).Value = TextBox9.Value
        TextBox1.Value = ""
        TextBox2.Value = ""
        TextBox3.Value = ""
        TextBox4.Value = ""
        TextBox5.Value = ""
        TextBox6.Value = ""
        TextBox7.Value = ""
        TextBox8.Value = ""
        TextBox9.Value = ""
        Else
                MsgBox "Error Message"
        End If
        TextBox1.SetFocus

    End If
ممنون استاد علی
دم شما گرم
خیلی کمکم کردی
و همینجا به نوبه خودم از یه انسان خوب مثل شما تشکر میکنم
این سوالهام رو توی چند تا به اصطلاح انجمن اکسل و برنامه نویسی دیگه هم قبل از این بیان کرده بودم که حتی دریغ از یه جواب سلام چه برسه به اینکه بخوان وقت بزارن پای کمک کردن
به هرحال از شما و بچه های اینجا تشکر میکنم
 

aghil.m

Member
شما در کد تون یکجا داخل sheet فلان دارید مقدار می نویسید، مثلا نوشتید :
کد:
num = Application.WorksheetFunction.CountA(Range("c:c")) + 1
If TextBox1.Text <> Empty Then
Sheets("sheetName").Cells(num, 3).Value = TextBox1.Value
Sheets("sheetName").Cells(num, 4).Value = TextBox2.Value
Sheets("sheetName").Cells(num, 5).Value = TextBox3.Value
Sheets("sheetName").Cells(num, 6).Value = TextBox4.Value
Sheets("sheetName").Cells(num, 7).Value = TextBox5.Value
Sheets("sheetName").Cells(num, 8).Value = TextBox6.Value
Sheets("sheetName").Cells(num, 9).Value = TextBox7.Value
Sheets("sheetName").Cells(num, 10).Value = TextBox8.Value
Sheets("sheetName").Cells(num, 11).Value = TextBox9.Value
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
TextBox7.Value = ""
TextBox8.Value = ""
TextBox9.Value = ""
Else
MsgBox "Error Message"
End If
TextBox1.SetFocus
و گفتم که بجای اون Sheet خاصی که نوشتید بیایید با ActiveSheet کار کنید :
کد:
    If ListBox1.ListIndex = -1 Then
        MsgBox "please select one of these sheets."
    Else
        Sheets.Item(ListBox1.Text).Activate

        num = Application.WorksheetFunction.CountA(Range("c:c")) + 1
        If TextBox1.Text <> Empty Then
        ActiveSheet.Cells(num, 3).Value = TextBox1.Value
        ActiveSheet.Cells(num, 4).Value = TextBox2.Value
        ActiveSheet.Cells(num, 5).Value = TextBox3.Value
        ActiveSheet.Cells(num, 6).Value = TextBox4.Value
        ActiveSheet.Cells(num, 7).Value = TextBox5.Value
        ActiveSheet.Cells(num, 8).Value = TextBox6.Value
        ActiveSheet.Cells(num, 9).Value = TextBox7.Value
        ActiveSheet.Cells(num, 10).Value = TextBox8.Value
        ActiveSheet.Cells(num, 11).Value = TextBox9.Value
        TextBox1.Value = ""
        TextBox2.Value = ""
        TextBox3.Value = ""
        TextBox4.Value = ""
        TextBox5.Value = ""
        TextBox6.Value = ""
        TextBox7.Value = ""
        TextBox8.Value = ""
        TextBox9.Value = ""
        Else
                MsgBox "Error Message"
        End If
        TextBox1.SetFocus

    End If
سلام استاد علی
یه سوال داشتم اگر وقتش رو داشته باشی
این هست که چطور ویرایش بزارم که وقتی یه متن یا شماره تلفن رو اضاف میکنم توی تمامی صفحاتی که اسم همون شرکت یا شخص هست اضاف یا کم بشه؟؟؟؟
ممنونت میشن
 

جدیدترین ارسال ها

بالا