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

موضوع: دستور if براساس رنگ نوشته های داخل سلول

  1. #1


    آخرین بازدید
    2023/09/10
    تاریخ عضویت
    July 2010
    نوشته ها
    118
    امتیاز
    28
    سپاس
    90
    سپاس شده
    30 در 18 پست
    تعیین سطح نشده است

    دستور if براساس رنگ نوشته های داخل سلول

    سلام
    یه ستونی هست که داخلش مبلغ هست
    برداشت ها با قرمز و واریز ها با رنگ آبی نوشته شده
    میخوام یه ستون اضافه کنم کنار این ستون و واریز و برداشت ها جدا بشن برن توی دو تا ستون
    دستوری میخوام با if بنویسم که چک کنه اگه عدد قرمز بود عدد رو ببره سلول متناظر ستون کناری مثلا اگه a12 هست ببره b12
    فقط توی قسمت شرطش موندم چطوری رنگ رو چک کنم؟
    ضمنا اینکه مثلا کد همون رنگ رو چطوری بدست بیارم؟(اینو از لحاظ پرسیدم چون توی چند تا فایلی که دارم همه ابی و قرمز هستن ولی ممکنه کد ابی این فایل با اون یکی فرق کنه چطوری میشه این مشکل رو حل کرد؟)
    با تشکر
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.

  2.  

  3. #2


    آخرین بازدید
    2020/11/06
    تاریخ عضویت
    March 2015
    محل سکونت
    تهران
    نوشته ها
    1,248
    امتیاز
    2327
    سپاس
    600
    سپاس شده
    2,238 در 1,001 پست
    تعیین سطح نشده است

    با سلام
    این کد را امتحان کنید...
    در صورتی که در ستون A رنگ عدد قرمز باشد به ستون B منتقل میشود.
    رنگ ها رو هم با تغییر عدد 3 مشاهده کنید.
    کد:
    Sub test() Dim i As Integer For i = 1 To 100 If Range("a" & i).Font.ColorIndex = 3 Then Range("a" & i).Offset(, 1) = Range("a" & i) Range("a" & i).Offset(, 1).Font.ColorIndex = 3 Range("a" & i) = "" End If Next End Sub
    ای برادر تو همه اندیشه ای

  4. سپاس ها (4)


  5. #3


    آخرین بازدید
    2023/08/17
    تاریخ عضویت
    March 2015
    محل سکونت
    آمل
    نوشته ها
    3,343
    امتیاز
    11575
    سپاس
    1,885
    سپاس شده
    8,165 در 3,011 پست
    تعیین سطح نشده است

    با سلام

    در فایل پیوست کد هر رنگ در ستون C درج میگردد سپس با سورت کردن میتوانید داده های مختلف را سورت نمایید

    کد PHP:
    Sub test()

    z1 Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row

    For 2 To z1

    Range
    ("c" i) = Range("b" i).Font.ColorIndex

    Next

    End Sub 
    فايل هاي پيوست شده فايل هاي پيوست شده

  6. سپاس ها (2)


  7. #4


    آخرین بازدید
    2023/12/18
    تاریخ عضویت
    August 2014
    نوشته ها
    524
    امتیاز
    504
    سپاس
    1
    سپاس شده
    468 در 301 پست
    سطح اکسل
    94.67 %

    یه نمونه بفرستید
    بخش امضاء :

    کد:
    Sub Macro()
    ActiveCell = "IY" & Right(Application.Name, 5)
    With ActiveCell.Characters(Start:=2, Length:=1).Font
    .Name = "Webdings"
    .Color = 255
    End With
    End Sub

  8. #5


    آخرین بازدید
    2023/09/10
    تاریخ عضویت
    July 2010
    نوشته ها
    118
    امتیاز
    28
    سپاس
    90
    سپاس شده
    30 در 18 پست
    تعیین سطح نشده است

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

    خودم یه سری کارا کردم ولی یه جاهایی گیر دارم
    مثلا برا مرتب سازی در نظر بگیرید تعداد سطر های هر ماه متفاوت هست ماکرویی که خودم record کردم همون محدوده ای که این جدول مقدار داره رو مرتب میکنه و توی یه فایل دیگه مشکل ساز میشه
    با تشکر
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: xlsx Meli.xlsx اطلاعات (18.6 کیلو بایت, 14 نمایش)

  9. #6


    آخرین بازدید
    2020/11/06
    تاریخ عضویت
    March 2015
    محل سکونت
    تهران
    نوشته ها
    1,248
    امتیاز
    2327
    سپاس
    600
    سپاس شده
    2,238 در 1,001 پست
    تعیین سطح نشده است

    با سلام
    این کد کارهای مورد نیاز شما را انجام میده....
    فقط به دلیل حذف ستون یک بار از کد ها در شیت استفاده کنید.
    کد:
    Sub test() Dim i, lr As Integer lr = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row Application.ScreenUpdating = False Columns("B:B").Select ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B1"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("b2:E283") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Columns("E:E").Select Selection.Insert Shift:=xlToRight For i = 1 To lr If Range("d" & i).Font.ColorIndex = 3 Then Range("d" & i).Offset(, 1) = Range("d" & i) Range("d" & i).Font.ColorIndex = 0 Range("d" & i).Offset(, 1).Font.ColorIndex = 3 Range("d" & i) = "" End If Next Columns("C:C").Select Selection.Delete Shift:=xlToLeft Columns("B:B").ColumnWidth = 13 Application.ScreenUpdating = True Range("a1").Select End Sub
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar Meli.rar اطلاعات (25.0 کیلو بایت, 8 نمایش)
    ای برادر تو همه اندیشه ای

  10. سپاس ها (2)


  11. #7


    آخرین بازدید
    2023/08/17
    تاریخ عضویت
    March 2015
    محل سکونت
    آمل
    نوشته ها
    3,343
    امتیاز
    11575
    سپاس
    1,885
    سپاس شده
    8,165 در 3,011 پست
    تعیین سطح نشده است

    در فایل پیوست با استفاده از پیوت تیبل به دو روش گزارشگیری شده است.
    در فایل دوم با استفاده از فرمول جداسازی انجام شده است
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: xls Meli.xls اطلاعات (87.5 کیلو بایت, 15 نمایش)
    • نوع فایل: xls Meli 2.xls اطلاعات (128.5 کیلو بایت, 10 نمایش)
    ویرایش توسط iranweld : 2016/11/26 در ساعت 19:44

  12. سپاس ها (2)


  13. #8


    آخرین بازدید
    2023/09/10
    تاریخ عضویت
    July 2010
    نوشته ها
    118
    امتیاز
    28
    سپاس
    90
    سپاس شده
    30 در 18 پست
    تعیین سطح نشده است

    سلام
    با توجه به راهنمایی دوستان و اون چیزی که تو ذهن خودم بود تقریبا مشکل حل شد
    چیزی که من میخواستم ماکرویی هست که تو فایل پیوست شده نوشتم و با Ctrl+h اجرا میشه
    فقط با اینکه توی خط اول کد زیر رو نوشتم
    Application.ScreenUpdating = False
    بازم یکم کند هست و با اینکه تعداد سطر ها خیلی زیاد نیست ولی کند اجرا میشه
    قبلش که اون کد نبود کلا چند ثانیه اکسل فریز میشد (الانم میشه ولی یکم کمتر هست)

    راهی داره سریعتر اجرا بشه؟ مثلا کد بهینه تر بشه؟
    با تشکر
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar Meli.rar اطلاعات (21.8 کیلو بایت, 12 نمایش)


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

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

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

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

  1. [حل شده] دستور شرطی
    توسط razemana در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 1
    آخرين نوشته: 2016/06/07, 23:49
  2. دستور if برای کاربر
    توسط ayubtanha در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 3
    آخرين نوشته: 2016/03/14, 00:17
  3. [حل شده] عدم اجرای دستور
    توسط pishraw در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 1
    آخرين نوشته: 2016/01/09, 10:37
  4. [حل شده] دستور تايپ نام سطر يا ستون در دستورات اكسل
    توسط azno در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 1
    آخرين نوشته: 2015/11/22, 16:27

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

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

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

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

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