ویرایش یک سلول با ماکرو

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • sheikhoo
    • 2014/01/07
    • 8

    ویرایش یک سلول با ماکرو

    سلام دوستانagB:
    کد زیر کد یک ماکرو است برای جستجو و سپس ویرایش یک سلول از یک جدول
    کد PHP:
        Sheets("tran").Select
        X 
    Worksheets("tran").Range("U23").Value
        Range
    ("R26").Select
        Application
    .CutCopyMode False
        Selection
    .Copy
        Sheets
    ("mosafer").Select
        Range
    ("F3").Select
        ActiveCell
    .Offset(X10).Range("A1").Select
        Selection
    .PasteSpecial Paste:=xlPasteValuesOperation:=xlNoneSkipBlanks _
            
    :=FalseTranspose:=False
        Sheets
    ("tran").Select
        Application
    .CutCopyMode False
        ActiveCell
    .Select 
    اما می خوام بدونم مراحل برای انجام این کار به صورت گرافیکی چگونه است:shyB:یعنی استاد توی امتحان ازمون مراحل این کارو می خواد:cryB:
    لطفا کمک کنید
    خیلی ممنون:bigsmileB:
    Last edited by sheikhoo; 2014/01/07, 10:19.
  • Amir Ghasemiyan

    • 2013/09/20
    • 4595
    • 100.00

    #2
    نوشته اصلی توسط sheikhoo
    سلام دوستانagB:
    کد زیر کد یک ماکرو است برای جستجو و سپس ویرایش یک سلول از یک جدول
    کد PHP:
        Sheets("tran").Select
        X 
    Worksheets("tran").Range("U23").Value
        Range
    ("R26").Select
        Application
    .CutCopyMode False
        Selection
    .Copy
        Sheets
    ("mosafer").Select
        Range
    ("F3").Select
        ActiveCell
    .Offset(X10).Range("A1").Select
        Selection
    .PasteSpecial Paste:=xlPasteValuesOperation:=xlNoneSkipBlanks _
            
    :=FalseTranspose:=False
        Sheets
    ("tran").Select
        Application
    .CutCopyMode False
        ActiveCell
    .Select 
    اما می خوام بدونم مراحل برای انجام این کار به صورت گرافیکی چگونه است:shyB:یعنی استاد توی امتحان ازمون مراحل این کارو می خواد:cryB:
    لطفا کمک کنید
    خیلی ممنون:bigsmileB:

    سلام دوست عزيز. منظورتون از گرافيكي چيه؟

    کامنت

    • sheikhoo
      • 2014/01/07
      • 8

      #3
      منظورم اینکه از طریق محیط Excel اینکارو انجام دهم
      مانند
      1.به منوی View می روم و از Macros گزینه ی Record Macro... رو می زنیم
      2.به ورکشیت tran می رویم
      3.نمیدونم چکار کرده
      X = Worksheets("tran").Range("U23").Value
      4.سلول R26 را انتخاب می کنیم
      5.آن را کپی می کنیم
      6.به ورکشیتmosafer می رویم
      7.دیگه بلد نیستم

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

      خیلی ممنون:heart:

      کامنت

      • sheikhoo
        • 2014/01/07
        • 8

        #4
        راستس اینو هم بگم U23 سلولو که مقدار مورد جستجو درونش قرار می گیرد وR26 مقداری است که باید ویرایش شود که در یک Worksheets به نام tran قرار دارند
        و جدولی که باید جستجو و ویرایش روی آن انجام گیرد یک Worksheets به نام mosafer است:D

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4595
          • 100.00

          #5
          نوشته اصلی توسط sheikhoo
          راستس اینو هم بگم U23 سلولو که مقدار مورد جستجو درونش قرار می گیرد وR26 مقداری است که باید ویرایش شود که در یک Worksheets به نام tran قرار دارند
          و جدولی که باید جستجو و ویرایش روی آن انجام گیرد یک Worksheets به نام mosafer است:D
          خب شما كه همه چيزشو ميدونين ديگه. من چي توضيح بدم الان؟

          کامنت

          • Ali Parsaei
            مدير تالارتوابع اکسل

            • 2013/11/18
            • 1521
            • 71.67

            #6
            سلام،
            کد مربوطه اين کار را انجام مي دهد: شيت ترن را انتخاب مي کند - خانه U23 آن را به عنوان X فرض مي کند (يعني مي گويد که هر وقت از اين به بعد نوشتيم X يعني مقدار خانه U23 شيت ترن) - بعد خانه R26 همان صفحه را انتخاب و سپس کپي مي کند - بعد شيت مسافر را انتخاب مي کند - بعد خانه F3 آن صفحه را انتخاب مي کند - حال مي گويد که بايد به اندازه X سطر و 10 ستون از خانه F3 جابجا شد (X که يادتان هست چي بود؟) - بعد فقط مقدار R26 شيت ترن را که کپي کرده بود درون آن مي چسباند - بعد شيت ترن را انتخاب کرده و آخرين خانه اي که موقع ترک شيت فعال بوده را در حالت انتخاب قرار مي دهد.
            فقط فکر کنم در سطر هشتم .Range("A1") اصلا" زيادي نوشته شده.
            ضمنا" فکر کنم دو خط Application.CutCopyMode = False به اين دليل ايجاد شده است که بعد از چسباندن مقدار مربوطه خط چين هاي دور خانه انتخابي اول محو شود.
            فکر کنم اين کد را نتوان فقط توسط ضبط ماکرو ايجاد کرد (به خاطر خط هشتم) البته مطمئن نيستم!
            Last edited by Ali Parsaei; 2014/01/07, 13:22.
            [SIGPIC][/SIGPIC]

            کامنت

            • sheikhoo
              • 2014/01/07
              • 8

              #7
              سلام خیلی ممنونagB:

              خانه U23 آن را به عنوان X فرض مي کند (يعني مي گويد که هر وقت از اين به بعد نوشتيم X يعني مقدار خانه U23 شيت ترن)

              اینو هم چطور می توان با ضبط ماکرو ايجاد کرد؟:confusedB:
              بعد خانه F3 آن صفحه را انتخاب مي کند - حال مي گويد که بايد به اندازه X سطر و 10 ستون از خانه F3 جابجا شد
              اینو هم چطور می توان با ضبط ماکرو ايجاد کرد؟:confusedB:
              ضمنا" فکر کنم دو خط Application.CutCopyMode = False به اين دليل ايجاد شده است که بعد از چسباندن مقدار مربوطه خط چين هاي دور خانه انتخابي اول محو شود.
              فکر کنم اين کد را نتوان فقط توسط ضبط ماکرو ايجاد کرد (به خاطر خط هشتم) البته مطمئن نيستم!
              ولی می گن همشو با ماکرو ضبط کرده:unhappyB:
              نوشته اصلی توسط amir ghasemiyan
              خب شما كه همه چيزشو ميدونين ديگه. من چي توضيح بدم الان؟
              من می خوام بدونم چنتا از کار ها رو چطور با ضبط ماکرو باید انجام داد
              1. X = Worksheets("tran").Range("U23").Value
              2. ActiveCell.Offset(X, 10).Range("A1").Select

              کامنت

              • Ali Parsaei
                مدير تالارتوابع اکسل

                • 2013/11/18
                • 1521
                • 71.67

                #8
                ببخشيد البته من زياد وارد نيستم، تا آنجا که مي دانستم يک چيزهايي نوشتم،
                فکر کنم راجع به Application.CutCopyMode = False اشتباه کرده ام
                [SIGPIC][/SIGPIC]

                کامنت

                • Amir Ghasemiyan

                  • 2013/09/20
                  • 4595
                  • 100.00

                  #9
                  نوشته اصلی توسط علي پارسا
                  سلام،
                  کد مربوطه اين کار را انجام مي دهد: شيت ترن را انتخاب مي کند - خانه U23 آن را به عنوان X فرض مي کند (يعني مي گويد که هر وقت از اين به بعد نوشتيم X يعني مقدار خانه U23 شيت ترن) - بعد خانه R26 همان صفحه را انتخاب و سپس کپي مي کند - بعد شيت مسافر را انتخاب مي کند - بعد خانه F3 آن صفحه را انتخاب مي کند - حال مي گويد که بايد به اندازه X سطر و 10 ستون از خانه F3 جابجا شد (X که يادتان هست چي بود؟) - بعد فقط مقدار R26 شيت ترن را که کپي کرده بود درون آن مي چسباند - بعد شيت ترن را انتخاب کرده و آخرين خانه اي که موقع ترک شيت فعال بوده را در حالت انتخاب قرار مي دهد.
                  فقط فکر کنم در سطر هشتم .Range("A1") اصلا" زيادي نوشته شده.
                  ضمنا" فکر کنم دو خط Application.CutCopyMode = False به اين دليل ايجاد شده است که بعد از چسباندن مقدار مربوطه خط چين هاي دور خانه انتخابي اول محو شود.
                  فکر کنم اين کد را نتوان فقط توسط ضبط ماکرو ايجاد کرد (به خاطر خط هشتم) البته مطمئن نيستم!
                  خط هشتم كه شما فرمودين با دكمه use relative reference ساخته ميشه. يعني در حين ضبط ماكرو به اين مرحله كه رسيديم اين دكمه رو فعال ميكنيم پيمايش رو انجام ميديم و دوباره غير فعال ميكنيم

                  نوشته اصلی توسط sheikhoo
                  سلام خیلی ممنونagB:


                  اینو هم چطور می توان با ضبط ماکرو ايجاد کرد؟:confusedB:

                  اینو هم چطور می توان با ضبط ماکرو ايجاد کرد؟:confusedB:

                  ولی می گن همشو با ماکرو ضبط کرده:unhappyB:

                  من می خوام بدونم چنتا از کار ها رو چطور با ضبط ماکرو باید انجام داد
                  1. X = Worksheets("tran").Range("U23").Value
                  2. ActiveCell.Offset(X, 10).Range("A1").Select

                  اولي رو فكر نكنم بدون كدنويسي بشه با ماكرو درست كرد.شايدم بشه ولي من بلد نيستم
                  دومي رو هم كه الان توضيح دادم


                  نوشته اصلی توسط علي پارسا
                  ببخشيد البته من زياد وارد نيستم، تا آنجا که مي دانستم يک چيزهايي نوشتم،
                  فکر کنم راجع به Application.CutCopyMode = False اشتباه کرده ام
                  نه علي آقا درست نوشتين. فكر نكنم اشتباه كرده باشين

                  کامنت

                  • Ali Parsaei
                    مدير تالارتوابع اکسل

                    • 2013/11/18
                    • 1521
                    • 71.67

                    #10
                    نوشته اصلی توسط amir ghasemiyan
                    نه علي آقا درست نوشتين. فكر نكنم اشتباه كرده باشين
                    امير جان از راهناييهايت خيلي ممنونم، ببخشيد که من بعضي وقتها پا تو کفش بزرگترها مي کنم
                    [SIGPIC][/SIGPIC]

                    کامنت

                    • Amir Ghasemiyan

                      • 2013/09/20
                      • 4595
                      • 100.00

                      #11
                      نوشته اصلی توسط علي پارسا
                      امير جان از راهناييهايت خيلي ممنونم، ببخشيد که من بعضي وقتها پا تو کفش بزرگترها مي کنم
                      خواهش ميكنم علي آقا. بزرگواريد شما. استفاده ميكنيم

                      کامنت

                      • Amir Ghasemiyan

                        • 2013/09/20
                        • 4595
                        • 100.00

                        #12
                        نوشته اصلی توسط علي پارسا

                        ضمنا" فکر کنم دو خط Application.CutCopyMode = False به اين دليل ايجاد شده است که بعد از چسباندن مقدار مربوطه خط چين هاي دور خانه انتخابي اول محو شود.
                        فکر کنم اين کد را نتوان فقط توسط ضبط ماکرو ايجاد کرد (به خاطر خط هشتم) البته مطمئن نيستم!

                        در واقع براي اينكه دقيق تر گفته باشم اين دستور كش اكسل رو خالي ميكنه. يعني محتوياتي كه قصد كپي كردن دارين ديگه كپي نميشن. دكمه Esc اين كار رو انجام ميده

                        کامنت

                        • sheikhoo
                          • 2014/01/07
                          • 8

                          #13
                          دوستان خیلی ممنون از کمکتون
                          فردا امتحان داشتین حالا به علت بارش برف در کرمان امتحان فردا برگزار نمیشه

                          کامنت

                          چند لحظه..