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

موضوع: کمک برای نوشتن ماکرو

  1. #1

    آخرین بازدید
    14 _ 09 _ 2016
    تاریخ عضویت
    August_2011
    نوشته ها
    3
    امتیاز
    0
    سپاس
    0
    سپاس شده
    0 در 0 پست

    Lightbulb کمک برای نوشتن ماکرو

    سلام به دوستان عزیز و بزرگوارم
    امیدوارم در هرجا که هستین موفق و پیروز باشید.
    حقیقتش من از ماکرونویسی حتی یک ذره هم سر در نمیارم
    ولی درخواستی داشتم که هرکدوم از دوستان عزیز زحمت بکش و در زمانی که فرصت دارن ، برام انجامش بدن،واقعا به من منت گذاشتن.
    درخواستم این بود، فرض کنید در sheet 1 یک ستون اسم داریم و در مقابلش هم نمره ای،حالا یه ماکرو اینکارو انجام بده که در sheet 2 بیاد از هر اسم فقط یکیش رو بنویسه و در مقابلش هم جمع اعدادی روبروی همون اسم در شیت1 رو بگذاره
    در ضمن ممکنه به شیت1 اسامی جدید با نمرات جدید هم اضافه بشه که با هربار باز کردن برنامه،اسامی جدید و جمع نمرات اونها ، در شیت2 بصورت خودکار، نمایان بشن
    برای تفهیم بهتر 2تا عکس ضمیمه هست که کمک میکنه.

    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.

  2.  

  3. #2


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

    RE: کمک برای نوشتن ماکرو

    شما برای این کار نیاز به ماکرو ندارید دوست عزیز: با فرمول های اکسل به راحتی می توانید این کار را انجام دهید!
    شما باید از تابع SUM در شیت دوم برای جمع زدن اعداد داخل شیت اول استفاده کنید.

  4. #3
    komeilex
    مهمان

    RE: کمک برای نوشتن ماکرو

    سلام به تو. راستش منم تو این کار زیاد حرفه ای نیستم ولی کاری رو که خواستی برات انجام دادم و امیدوارم راهنمایی من کمکت کنه.
    آقا به طور کلی ماکرو در حد ابتدایی چیزی جز ضبت کردن انجام یه کار و اجرای کل اون کار با یک کلید میان بر نیست!برای این کار بعد از فعال کردن تب developer از منوی اکسل آپشن گزینه ضبت ماکرو رو از گوشه پایینی سمت چپ صفحه انتخاب می کنی و بعد از وارد کردن نام ماکرو و کلید میان بر ok می کنی. از این به بعد هر کاری کنی به عنوان ماکروی مورد نظر ذخیره میشه. برای پایان ذخیره همون دکمه پایین گوشه سمت چپ رو انتخاب کن.
    واما برای سوال تو.
    بعد از وارد کردن اسامی و نمرات، محدوده اسامی رو انتخاب کن و اونهارو تو شیت 2 کپی کن. از تب data گزینه remove duplicate رو انتخاب کن تا اسامی تکراری حذف بشن. بعد با ابزار considolate از همون تب data کاری که میخوای رو انجام بده. یادت باشه تو تمام این مراحل داری کارتو با ماکرو ضبت می کنی تا بعد از اتمام نیاز نداشته باشی برای داده های جدید تمام این مراحل رو انجام بدی و کلید میانبری که تعریف کردی کل کارو برات انجام بده. موفق باشی

  5. #4


    محصولات کاربر

    داشبورد (مقدماتی)
    جداول محوری - Pivot table
    کتاب آموزش جامع و پیشرفته اکسل 2010
    آخرین بازدید
    3 هفته پیش
    تاریخ عضویت
    March_2010
    محل سکونت
    تهران
    نوشته ها
    2,053
    امتیاز
    4455
    سپاس
    2,518
    سپاس شده
    4,043 در 1,239 پست

    khakzad به Yahoo ارسال پیام

    RE: کمک برای نوشتن ماکرو

    سلام
    شما میتونید اول فیلتر کنید و در advanced filter گزینه uniqe records رو بزنید.به این ترتیب از هر مورد یکی برای شما فیلتر میشود.به این ترتیب لیست شما آماده هست.
    بعد با استفاده از فرمول sumif این کار رو انجام میدید.که range و sumrange رو از لیست اولیه و criteria رو از لیست ثانویه انتخاب میکنید
    فایل نمونه رو براتون گذاشتم
    سوالی بود در خدمتم[hr]
    در مورد سوال دوم هم همونطور که فرمودند ماکرو رو ضبط می کنید.
    هم میتونید برای هربار اجرا شدن، ماکرو رو run کنید.هم اینکه کدی هست که ماکروها را در زمان های خاص بصورت خودکار و بدون نیاز به run کردن ماکرو اجرا میکنه.
    اگر مایل بودبد کد رو میگم[hr]
    موقع ضبط ماکرو به آدرس دهی در فرمول ها دقت کنید که بعدا در صورت افزایش تعداد رکوردها مشکلی پیش نیاد
    موفق باشید
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: xlsx sumif.xlsx اطلاعات (11.1 کیلو بایت, 10 نمایش)

  6. #5


    آخرین بازدید
    09 _ 11 _ 2014
    تاریخ عضویت
    July_2014
    نوشته ها
    25
    امتیاز
    16
    سپاس
    3
    سپاس شده
    6 در 5 پست

    سلام
    من ی ماکرو نوشتم در مورد اینکه دوتا ستون رو با هم مقایسه کنه ..مثلا در اینجا A رو با G مقایسه کنه و بعد اگر مثلا اولین کد خونه G در A وجود داشت در ستون کنار G درست در مقابل همون کد که مقایسش کرد بنویسه T و اگر نبود هم بنویسهF
    اما اجرا نمیشه نمیدونم چرا میشه بگین کد درسته؟اروری که میده در مورد اینه که ماکرو غیرفعاله چجوری باید فعالش کنم؟
    Sub samp()
    Dim i As Integer
    Dim j As Integer
    For i = 2 To 12952
    For j = 2 To 11498
    If Cells(7, i).Value = Cells(1, j).Value Then
    Cells(8, i).Value = "T"
    Else
    Cells(8, i).Value = "f"
    End If
    Next j
    Next i

    End Sub

  7. #6


    آخرین بازدید
    تاریخ عضویت
    January_2014
    نوشته ها
    613
    امتیاز
    1391
    سپاس
    497
    سپاس شده
    968 در 318 پست

    ورژن افیس شما چنده؟
    فایل رو باید با پسوند xlsm ذخیره کنید که با save as امکان پذیره
    برای افیس 2007 باید تو تنظیمات ماکرو رو فعال کنی
    بهترین آدم های زندگی ، کسانی هستند
    که وقتی کنارشان بنشینی
    چای ات سرد و دلت گرم میشود


  8. #7


    آخرین بازدید
    09 _ 11 _ 2014
    تاریخ عضویت
    July_2014
    نوشته ها
    25
    امتیاز
    16
    سپاس
    3
    سپاس شده
    6 در 5 پست

    بله ممنونم فعالش کردم اما وقتی اجراش میکنم انگار تو لوپ میفته اصلا هیچ کاری نمیکنه میشه ی نگاهی به کدی که نوشتم بندازین؟جاییش اشتباهه؟
    ممنون

  9. #8


    آخرین بازدید
    28 _ 07 _ 2014
    تاریخ عضویت
    July_2014
    نوشته ها
    20
    امتیاز
    43
    سپاس
    0
    سپاس شده
    33 در 16 پست

    سلام،
    اولا" که اگر براي ستون A و G مي خواهيد عمل شود سطر و ستونها را جابجا نوشته ايد، بعدش هم شايد چون حدود 11 تا 12 هزارتا خانه مد نظرتون است هنگ مي کند! ولي فکر کنم کلا" کدنويسيتون غلط باشد.
    به نظر من اصلا" دو تا متغيير نبايد تعريف کنيد (البته تا اونجا که من از توضيحاتتان درک کردم) من يک کد براي بيست رديف ستون A با يک متغيير نوشتم بينيد به درد مي خورد:
    کد:
    Sub Macro1()Dim i As Integer
    For i = 2 To 20
    If Application.WorksheetFunction.CountIf(Range("a1:a20"), Cells(i, 7).Value) > 0 Then
    Cells(i, 8).Value = "T"
    Else
    Cells(i, 8).Value = "f"
    End If
    Next i
    End Sub
    بعد شما بايد 20 را به 11498 تغيير دهيد
    البته گفتم که: اگر سوالتان را درست فهميده باشم!
    من فرض را بر اين گرفته ام که هر خانه از G2 تا G12952 را مي آيد در ستون A در محدوده A2 تا A11498 مي گردد، اگر مشابه داشت T وگرنه F را در خانه بغلي مي نويسد.
    يعني A2 تا A11498 ثابت است و ديگر احتياج به تعريف متغيير براي آن نيست.
    ویرایش توسط K1P : 28 _ 07 _ 2014 در ساعت 17:15

  10. سپاس ها (1)


  11. #9


    آخرین بازدید
    08 _ 02 _ 2016
    تاریخ عضویت
    June_2014
    محل سکونت
    در کنار یگانه دوست، در دیار اصفهان
    نوشته ها
    46
    امتیاز
    107
    سپاس
    69
    سپاس شده
    97 در 31 پست

    Juliet به Yahoo ارسال پیام
    نقل قول نوشته اصلی توسط victoria_1370 نمایش پست ها
    سلام
    من ی ماکرو نوشتم در مورد اینکه دوتا ستون رو با هم مقایسه کنه ..مثلا در اینجا A رو با G مقایسه کنه و بعد اگر مثلا اولین کد خونه G در A وجود داشت در ستون کنار G درست در مقابل همون کد که مقایسش کرد بنویسه T و اگر نبود هم بنویسهF
    اما اجرا نمیشه نمیدونم چرا میشه بگین کد درسته؟اروری که میده در مورد اینه که ماکرو غیرفعاله چجوری باید فعالش کنم؟
    Sub samp()
    Dim i As Integer
    Dim j As Integer
    For i = 2 To 12952
    For j = 2 To 11498
    If Cells(7, i).Value = Cells(1, j).Value Then
    Cells(8, i).Value = "T"
    Else
    Cells(8, i).Value = "f"
    End If
    Next j
    Next i

    End Sub
    درود دوست عزیز

    اینطور که من متوجه شدم شما در ستونی مثلاً B مقادیری دارین که میخواهین چک کنین ببینین هر کدام از سلول های این ستون برابر با یکی از سلول های ستون دیگه مثلاً A هست یا نه. اگر این رو بخواهین یه اشتباه دارین تو کدتون
    وقتی از تابع Cells استفاده میکنین، آرگومان اول شماره سطر و آرگومان دوم شماره ستون هست، درحالیکه شما شماره سطر ها رو ثابت و شماره ستون ها رو متغیر در نظر گرفتین (شمارنده حلقه)

    فایل نمونه ای گه براتون گزاشتم مقادیر 10 سطر اول ستون های A و B رو قیاس میکنه، میتونین محدوده رو به هر جا که دلتون میخواد تغییر بدین، کافیه اعداد ثابت جایگزین شن. به این صورت که محدوده سطر هاتون سقف حلقه ها میشن و شماره ستون نمایش نتیجه هم جای عدد سه میاد، 2 و 1 هم ستون هایی که با هم قیاس میشن. متغیر ها رو تغییر ندین.
    کد:
    Private Sub cmd_Click()
    
        Dim i, j As Integer
    
        For i = 1 To 10
            For j = 1 To 10
    
                If Cells(i, 2).Value = Cells(j, 1).Value Then
                    Cells(i, 3).Value = "TRUE"
                    Exit For
                Else
                    Cells(i, 3).Value = "FALSE"
                End If
    
            Next j
        Next i
    
    End Sub
    به اضافه اینکه وقتی فایل xlsm یعنی فایل اکسلی که کد VBA داره رو باز میکنین، اکسل پیغامی در یک کادر زرد رنگ بهتون میده با عنوان Security Warning اون رو با دکمه Enable Content فعال کنین، ضمناً قبل از این دکمه هم فایل رو که باز میکنین ممکنه لازم باشه دکمه Enable Editing رو هم بزنین.

    ====================

    یه موضوع دیگه، فکر میکنم بهتر بود به جای ارسال پاسخ به این تاپیک (که مال سه سال پیشه)، خودتون یک سؤال رو شروع میکردین، به نظرم برای همگون بودن با قوانین انجمن عزیز در این مورد از یکی از مدیران گرام مشورت بگیرین، به هر صورت نظر قطعی با اون هاست.

    امیدوارم این کد به دردتون بخوره
    موفق باشین
    فايل هاي پيوست شده فايل هاي پيوست شده
    ویرایش توسط Juliet : 28 _ 07 _ 2014 در ساعت 19:47 دلیل:تکمیل توضیحات
    «زمانيکه با زمانه خويش نساختي و با مسندنشينان و امربران ايشان کنار نيامدي
    و آنچه را
    جاهلان ميگويند، جاهلانه باز نگفتي،
    لاجرم به تبعيد ابدي گرفتار خواهي شد!
    حتي اگر جسمت در کنج منزلي در شهري ساکن باشد؛
    و اگر بر نپذيرفتن، پاي فشردي،

    آواره ات خواهند کرد،
    به زندانت خواهند افکند
    و به دارت خواهند کشيد ...»

  12. سپاس ها (2)


  13. #10


    آخرین بازدید
    28 _ 07 _ 2014
    تاریخ عضویت
    July_2014
    نوشته ها
    20
    امتیاز
    43
    سپاس
    0
    سپاس شده
    33 در 16 پست

    البته اگر مي خواهيد هر خانه با خانه متناظرش مقايسه شود (مثلا" G2 با A2 و G3 با A3 )اون موقع کدتان اينجوري مي شود:
    (البته در اين صورت تو کد اولتون حداقل بايد 12952 با 11498 برابر مي بود! براي همين آدم شک مي کند که منظورتون دقيقا" چيست!)
    کد:
    Sub Macro1()
    Dim i As Integer
    For i = 2 To 20
    If Cells(i, 7).Value = Cells(i, 7).Offset(0, -6).Value Then
    Cells(i, 8).Value = "T"
    Else
    Cells(i, 8).Value = "f"
    End If
    Next i
    End Sub

  14. سپاس ها (2)



صفحه 1 از 2 12 آخرینآخرین

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

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

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

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

نوشتن ماکرو در اکسل

نوشتن ماکرو اکسل2010

اموزش نوشتن ماكرو در اكسل

فركول ماكرو در اكسل

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

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