پرفروش ترين
برترين
آخرين محصولات فروشگاه
فایل الکترونیکی آموزش اکسل پیشرفته ۲۰۱۰
آموزش ایجاد فایل چندکاربره با سطح دسترسی مشخص
یوزرفرم پیشرفته -Advanced  User Form
داشبورد (مقدماتی) – Dashboards(Elementary)
ابزارهای اعتبار سنجی و اخطار دهنده
بسته آموزشی userform
مدیریت و کنترل خطا در اکسل
توابع متنی
گرافیک در اکسل
جزوه آموزشی جداول و نمودارهای پاشنه ای
فایل آموزشی نحوه تهیه فرمت عددی دلخواه یا custom number format cell
آموزش ایجاد فایل چندکاربره با سطح دسترسی مشخص
نمایش نتایج: از شماره 1 تا 8 , از مجموع 8

موضوع: یک تکنیک کاربردی جهت کار با لیست*ها

  1. #1


    آخرین بازدید
    یک روز پیش
    تاریخ عضویت
    January_2012
    محل سکونت
    کاشان
    نوشته ها
    88
    امتیاز
    346
    سپاس
    3
    سپاس شده
    160 در 43 پست

    smartman به MSN ارسال پیام smartman به Yahoo ارسال پیام

    یک تکنیک کاربردی جهت کار با لیست*ها

    با سلام خدمت همه کاربران

    های لایت کردن سطر (ستون) جاری یک لیست در قالب یک تکنیک کاربردی در فایل ضمیمه، نشان داده شده است.

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام:  2014-04-24 08-17-05 ق-ظ.png
مشاهده: 27
حجم:  27.5 کیلو بایت

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام:  2014-04-24 08-23-54 ق-ظ.png
مشاهده: 20
حجم:  25.0 کیلو بایت


    کد PHP:
    Sub Auto_Open()
    On Error Resume Next

    Dim CheckRegistry 
    As String
    CheckRegistry 
    GetSetting(appname:="SigmaPlot"section:="Excel"_
            key
    :="Addin", Default:="0")
            
            
    If 
    Dir(ThisWorkbook.Path "\Sigmaplot.xla") = "" Then
        SPRemoveMenu
        ResetRegistry
    End 
    If

    End Sub
    Sub SPRemoveMenu
    ()
    On Error Resume Next

    Dim spButtonCheck 
    As CommandBarControl
    Dim spCommandbar 
    As CommandBarControl

    Set spCommandbar 
    CommandBars("Worksheet Menu Bar").Controls("Insert")
    Set spCommandbar CommandBars(1).Controls(4)       'add for foreign OS

    For Each spButtonCheck In spCommandbar.Controls
       If spButtonCheck.Caption = "SigmaPlot Graph" Then
            spButtonCheck.Delete
            Application.CommandBars("Standard").Controls(20).Delete
            Application.CommandBars(3).Controls(20).Delete     '
    add for foreign OS
            
    Exit Sub
        End 
    If
    Next

    End Sub
    Sub ResetRegistry
    ()

    Dim CheckRegistry As String

    ' Check the registry for an entry
    CheckRegistry = GetSetting(appname:="SigmaPlot", section:="Excel", _
                           key:="Addin", Default:="0")

    If CheckRegistry = 1 Then
        '
    Set the registry setting for sigmaplot addin
        SaveSetting appname
    :="SigmaPlot"section:="Excel"_
                key
    :="Addin"setting:=0
    End 
    If

    End Sub 
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    ویرایش توسط ~M*E*H*D*I~ : 24 _ 04 _ 2014 در ساعت 09:25

  2. سپاس ها (2)


  3.  

  4. #2


    آخرین بازدید
    01 _ 11 _ 2016
    تاریخ عضویت
    May_2010
    محل سکونت
    بلژیک
    نوشته ها
    175
    امتیاز
    91
    سپاس
    0
    سپاس شده
    102 در 44 پست

    Re: یک تکنیک کاربردی جهت کار با لیست*ها

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

    نقل قول نوشته اصلی توسط m_d6712
    نقل قول نوشته اصلی توسط x
    سلام آقای داوری.
    میشه درباره کد های زیر بیشتر توضیح بدین.هنوز عملکردشون واسم یکم گنگه...:

    کد PHP:
     with
    set
    is Nothing
    xlColorIndexAutomatic
    Intersect 
    .............با تشکر.............
    سلام دوست عزیز.


    1- with عملکرد ساده ای داره. فقط برای کوتاه کردن کد نویسی ازش استفاده می کنن.

    مثلا:
    به جای

    کد PHP:
      Range("B2:P16").Font.Bold False
        Range
    ("B2:P16").Interior.ColorIndex xlColorIndexAutomatic
     Range
    ("B2:P16").Font.color blue 
    برای اینکه از تکرار جلوگیری کنیم میشه بنویسیم:

    کد PHP:
     With Range("B2:P16")
    .
    Font.Bold False
    .Interior.ColorIndex xlColorIndexAutomatic
    .Font.color blue
    End With 

    2- set در زبان ویژوال بیسیک برای نسبت دادن یک شی به شی دیگر استفاده میشه:
    اولا باید فرق شی و متغیر رو بدونی.
    مثلا
    کد PHP:
     dim a as integer 
    خوب این یک متغیر است و به راحتی برای نسبت دادن از یک مساوی استفاده میشه کرد. مثلا
    کد PHP:
     atarget.row 
    اما range یک شی هست. همچنین workbook, worksheet, و row و column. اینها شی هستند که برخی باز شامل شی هایی هم میشوند. مثلا range ممکنه شامل چند row بشه و row ممکنه شامل چند cell بشه. در حالی که range خودش شی ای از شی های worksheet هایی هست که خود این worksheet ها فرزند یک workbook هستش.

    حالا این بحث خیلی مفصلی هست. اما به هر صورت برای نسبت دادن یک شی به یک شی جدید از عبارت set استفاده می کنیم.

    مثلا
    dim a as range خوب این یک شی از نوع range هست
    حالا می گیم
    کد PHP:
    range("A1:A10"
    غلطه
    باید بنویسی:
    کد PHP:
     set a range("A1:A10"
    اگر اینطور عمل کنی. a و
    کد HTML:
      range("A1:A10")
    معنی واحدی میدن.
    یعنی a.intorior.backcolor رنگ پشت زمینه اون منطقه A1 نا A10 رو معنی میده
    کد PHP:
     a.intorior.backcolorblack 

    با این شی ها کارای زیادی میشه کرد. یه مطالعه بکنشون.
    برای پیدا کردن شی مادر یا شی کافیه بنویسی:
    کد PHP:
    dim b as range
    set b 
    a.Parent 
    به این صورت.




    3- is nothing در زبان VB معنی NULL رو میده. یعنی یک شی ای هنوز به شی خاصی نسبت داده نشده است. ببین یک متغیر وقتی تعریف میشه مقدار دهی اولیه میشه. اگر هم نشه به هرحال یک مقدار داخل خودش داره. اما یک شی وقتی تعریف میشه NULL هست. یعنی به هیچ چیزی اشاره نمی کنه. مگر شما به یک شی نسبت بدهیش:

    مثلا:

    dim a as range
    تا الان a یک شی NULL هست.

    باید یکی از دو روش زیر رو انتخاب کنی. بگی a یک شی جدید است یا a یک شی ای هست که الان وجود داره.

    set a = new range به مفهوم اینه که a یک شی جدید است.
    کد HTML:
    set a = range("A1:A10")
    به مفهوم اینه که a همون شی ای است که الان وجود داره و به خونه های A1 تا A10 اشاره داره.


    پس وقتی میگیم if a is nothing then یعنی اگر هنوز a وجود نداره یعنی هیچ جایی واسه a تعریف نشده. این کارو بکن.

    4- xlColorIndexAutomatic نماینده کد رنگ اتوماتیک هست. اینو بجای یک عدد که نمایند رنگ هست میتونی استفاده کنی. البته اگر حافظت خوبه می تونی عدد رو هم حفظ کنی :دی

    5- Intersect دو تا range مختلف رو به عنوان ورودی می گیره و فضای مشترک بین این دو رو برای ما مشخص می کنه. می تونی از این کد برای اینکه بدونی دو range با هم نقطه مشترک دارن یا نه استفاده کنی.



    موفق و موید باشی.
    [hr]





    و اما در مورد خود تاپیک



    نقل قول نوشته اصلی توسط smartman
    با سلام خدمت همه کاربران

    های لایت کردن سطر (ستون) جاری یک لیست در قالب یک تکنیک کاربردی در فایل ضمیمه، نشان داده شده است.

    تکنیک کاربردی1066
    سلام.
    من فایل شمارو دیدم. خیلی خوب بود و زیبا.

    فقط چند نکته که فکر کردم به بهبود فایل شما کمک می کنه.

    همه چیز خوب بنظر میرسه غیر از کند بودن فایل شما.
    ابتدا به نظرم کند رسید. خوب تصمیم گرفتم عوض 550 سطر از عدد 30000 استفاده کنم.
    چه اتفاقی می افتد؟
    فایل بسیار کند میشود.

    1- در ابتدا شما از تابع intersect استفاده کردید که اصلا نیازی نیست. در واقع intersect برای بدست آوردن range ای است که بین دو range ورودی مشترک است. اما هدف شما این نیست. من فکر میکنم که هدفتون این بوده که متوجه بشوید که آیا target درون range مورد نظر هست یا نه؟
    خوب این کار رو با استفاده از target.row و target.column و row و column های اون range تون با 4 عملیات میشه محاسبه کرد. نیازه نیست اگر 30000 هزار ردیف داریم نقاط مشترک همه 30000 تارو بدست بیاوریم که خودش یک فرآیند زمان براست.

    کد PHP:
     2-  Range("A2:H550").Font.Bold False
        Range
    ("A2:H550").Interior.ColorIndex xlColorIndexAutomatic 
    این دو عبارت باز خیلی زیاد محاسبات لازم داره. کافیه سطر و سلولی که تغییر میدهید رو با 2 عدد همیشه در نظر بگیرید. مثلا شماره سطر و ستون مورد نظر رو در خانه هایXY و XX ذخیره کنید. در مرحله بعد فقط نیاز است اون سطر و خونه مورد نظر رو به حالت اول برگردونید.


    این دو نکته را در فایل پیاده سازی کنید. متوجه بهبود خواهید شد.

    موفق باشید.
    ویرایش توسط ~M*E*H*D*I~ : 24 _ 04 _ 2014 در ساعت 09:19

  5. سپاس ها (2)


  6. #3


    آخرین بازدید
    یک روز پیش
    تاریخ عضویت
    January_2012
    محل سکونت
    کاشان
    نوشته ها
    88
    امتیاز
    346
    سپاس
    3
    سپاس شده
    160 در 43 پست

    smartman به MSN ارسال پیام smartman به Yahoo ارسال پیام

    RE: یک تکنیک کاربردی جهت کار با لیست*ها

    جناب استاد داوری
    از حسن توجه و نظر شما و دوستانی که از پاسخ شما تشکر کردند بینهایت سپاس گزارم.
    با اینکه از ابتدا متوجه این مشکل بودم اما دقیقا نمیدونستم که باید چکار کنم.

    یاد یک ضرب المثل افتادم که میگه «املای نانوشته، غلط نداره» خلاصه اینکه با توجه به راهنمایی های شما نتیجتا فایل نهایی به این شکل دراومد.

    در ضمن هر دو فایل با کاربرگهای LTR عملکرد به مراتب بهتری دارند که دلیلشو نمیدونم.


  7. سپاس ها (1)


  8. #4


    آخرین بازدید
    2 ساعت پیش
    تاریخ عضویت
    January_2012
    محل سکونت
    استان اردبیل / شهرستان پارس آباد (مغان)
    نوشته ها
    1,063
    امتیاز
    2371
    سپاس
    1,348
    سپاس شده
    1,841 در 553 پست

    jansiz hayat به Yahoo ارسال پیام

    Re: یک تکنیک کاربردی جهت کار با لیست*ها

    با سلام و تشکر از دوست خوبمون.
    البته هنوز اشکالات ریز و درشتی هم داره که این هم طبیعی هستش.
    یکی از ایرادهاش اینه که وقتی فایل باز میشه ،اگه سطری به غیر از سطری که در هنگام باز شدن فایل فعال است رو انتخاب کنی،سطر قبلی در حالت انتخاب میمونه.
    که با یک کد ساده در رویدادهای مختلف میشه حلش کرد.مثل:
    کد PHP:
    Private Sub Workbook_Open()
    Range("a2:h3000").Interior.ColorIndex xlColorIndexNone
    End Sub 
    ویرایش توسط ~M*E*H*D*I~ : 24 _ 04 _ 2014 در ساعت 09:21

  9. سپاس ها (2)


  10. #5


    آخرین بازدید
    یک روز پیش
    تاریخ عضویت
    October_2011
    محل سکونت
    Sheet1!A1
    نوشته ها
    4,144
    امتیاز
    11536
    سپاس
    4,456
    سپاس شده
    10,918 در 2,943 پست

    RE: یک تکنیک کاربردی جهت کار با لیست*ها

    سلام
    راستش من توضیحات دوستان رو نخوندم و فقط فایل رو دیدم دستمون 2 تا شیت داشت یکی فقط سطر رو هایلایت میکرد یکیم که مثل جدول ضرب بود سطر و ستون رو هایلایت میکرد راستش من این کد رو برداشتم یکم ذسکاری کردم واسه هایلایت کردن ردیف اینطوری اصلا نیاز به انتخاب range نیست سرعتشم بالاست حالا نمیدونم دوستمون چرا به اون صورت عمل کرده به هر حال این هم روشیه
    فايل هاي پيوست شده فايل هاي پيوست شده

  11. سپاس ها (1)


  12. #6


    آخرین بازدید
    3 روز پیش
    تاریخ عضویت
    November_2013
    محل سکونت
    تهران
    نوشته ها
    1,317
    امتیاز
    5598
    سپاس
    2,769
    سپاس شده
    4,365 در 1,180 پست

    داشتم در اينترنت دنبال مطلبي راجع به SelectionChange مي گشتم، به کدي برخوردم جهت BOLD کردن متن سطر فعال، ديدم جالب است گفتم در سايت بهش اشاره کنم، قبلش گفتم بگردم ببينم قبلا" در سايت چيزي راجع به آن آمده يا نه که به اين موضوع برخوردم، واقعا" دوستان قديمي سايت زحمت کشيده اند. حيف است که اين مطالب با کهنه شدن وسط مطالب ديگر گم مي شود، کاش مي شد کاري کرد که به صورتي هميشه در صدر باشند، البته ظاهرا" سايت اين امکان را داراست ولي ما کمتر از آن استفاده مي کنيم. اين مطلب را نوشتم تا شايد به بهانه نوشته من دوباره اين مطلب در صدر قرار گرفته و مورد توجه قرار گيرد.
    اين هم کدي که گفتم (بد نيست پايان اين موضوع اضافه شود):
    کد PHP:
    Dim x As Long
    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
        
    ActiveCell.EntireRow.Font.Bold True
        
    If = Empty Then
            x 
    ActiveCell.Row
        
    ElseIf Not x ActiveCell.Row Then
           Rows
    (x).EntireRow.Font.Bold False
        End 
    If
        
    ActiveCell.Row
    End Sub 
    منبع: http://support.microsoft.com/kb/213193


  13. #7
    علی فاطمی آنلاین نیست.
    مدير تالارمهندسی صنایع و ويژوال بيسيك


    آخرین بازدید
    5 روز پیش
    تاریخ عضویت
    February_2014
    محل سکونت
    تهران
    نوشته ها
    474
    امتیاز
    1049
    سپاس
    2,497
    سپاس شده
    969 در 324 پست

    علی فاطمی به Yahoo ارسال پیام فرستادن پیام با Skype به علی فاطمی
    نقل قول نوشته اصلی توسط ~M*E*H*D*I~ نمایش پست ها
    سلام
    راستش من توضیحات دوستان رو نخوندم و فقط فایل رو دیدم دستمون 2 تا شیت داشت یکی فقط سطر رو هایلایت میکرد یکیم که مثل جدول ضرب بود سطر و ستون رو هایلایت میکرد راستش من این کد رو برداشتم یکم ذسکاری کردم واسه هایلایت کردن ردیف اینطوری اصلا نیاز به انتخاب range نیست سرعتشم بالاست حالا نمیدونم دوستمون چرا به اون صورت عمل کرده به هر حال این هم روشیه
    با سلام این فایل فکر کنم بدلیل قدیمی بودن قابل رویت نیست لطفا اگر در آرشیو موجوده مجددا قرار بدین تا استفاده کنیم
    ممنون

  14. سپاس ها (1)


  15. #8
    M_R_M آنلاین نیست.
    مدير تالار اکسل و بانک اطلاعاتی


    آخرین بازدید
    19 ساعت پیش
    تاریخ عضویت
    February_2011
    محل سکونت
    ســــاوه
    نوشته ها
    1,523
    امتیاز
    5549
    سپاس
    6,348
    سپاس شده
    4,345 در 1,207 پست

    M_R_M به Yahoo ارسال پیام فرستادن پیام با Skype به M_R_M
    نقل قول نوشته اصلی توسط علی فاطمی نمایش پست ها
    با سلام این فایل فکر کنم بدلیل قدیمی بودن قابل رویت نیست لطفا اگر در آرشیو موجوده مجددا قرار بدین تا استفاده کنیم
    ممنون
    تو آرشیوم اینا پیدا کردم خدمت شما
    فايل هاي پيوست شده فايل هاي پيوست شده
    پذیرش نادانی خویش ، اغلب نخستین گامی است که به سوی آموزش بر می داریم



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

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

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

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

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

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

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