افزودن ردیف به شیت مطابق با فرمتی خاص

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • mobinsaffarpour

    • 2013/05/25
    • 176

    افزودن ردیف به شیت مطابق با فرمتی خاص

    دوستان عزیز سلام

    من یک فایل txt. دارم که بصورت روزانه از طریق کدنوبسی اطلاعات فایل رو وارد اکسل میکنم. فایل اکسل من دارای یک فرمت خاص ( نوشتاری / برداری ) هست و میبایست با توجه به اینکه

    روزانه فایل txt. من آپدیت میشه، ردیف هائی که به فایل اکسل از طریق کد نویسی اضافه میشه، از فرمت ردیف اول برای اونها استفاده بشه . حالا سوال من اینه که از چه طریقی میتونم

    کاری کنم که در زمان اضافه شدن ردیف جدید به فایل اکسل فرمت ردیف اول به مابقی ردیفها اضافه بشه . ضمناً نمونه ای از فایل اکسل رو واسه آشنائی بپیوست قرار دادم . باتشکر از همه
    فایل های پیوست شده
  • iranweld

    • 2015/03/29
    • 3341

    #2
    با سلام
    بر روی یکی از سلولهای دارای دیتا در اکسل قرار بگیرید و کلید ctrl+t را بزنید تا تبدیل به جدول بشه
    امیدوارم منظر شما رو درست فهمیده باشم
    فایل های پیوست شده

    کامنت

    • mobinsaffarpour

      • 2013/05/25
      • 176

      #3
      دوست عزیز سلام و متشکرم از توجه شما

      من باید اینکار رو از طریق vba انجام بدم یعنی میخوام اتوماتیک فرمت ردیف اول به تمامی ردیفهائی که وارد فایل شدند کپی بشه . یعنی اگر 10 تا ردیف بود فقط تا ردیف 10 فرمت

      حفظ بشه . ریز بینانه تر هم میشه، تمامی ردیف های که دارای اطلاعات نوشتاری هستند میبایست دارای فرمت ردیف اول شوند . باتشکر
      Last edited by mobinsaffarpour; 2015/07/06, 15:41.

      کامنت

      • sabertb

        • 2014/04/09
        • 347
        • 45.00

        #4
        نوشته اصلی توسط mobinsaffarpour
        دوست عزیز سلام و متشکرم از توجه شما

        من باید اینکار رو از طریق vba انجام بدم یعنی میخوام اتوماتیک فرمت ردیف اول به تمامی ردیفهائی که وارد فایل شدند کپی بشه . یعنی اگر 10 تا ردیف بود فقط تا ردیف 10 فرمت

        حفظ بشه . ریز بینانه تر هم میشه، تمامی ردیف های که دارای اطلاعات نوشتاری هستند میبایست دارای فرمت ردیف اول شوند . باتشکر
        یه راه دیگه هم هست ، کل رنج زیر جدولتون رو که خالیه مثل فرمت جدول ایجاد کنید و با کاندیشن تعریف کنید تا وقتی این سلول ها خالی است رنگ و کادر ها مخفی بشوند
        فایل های پیوست شده
        Last edited by sabertb; 2015/07/06, 16:04.
        :min10::min18::min13::min22:

        کامنت

        • mobinsaffarpour

          • 2013/05/25
          • 176

          #5
          واقعا مشکرم

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

          کامنت

          • sabertb

            • 2014/04/09
            • 347
            • 45.00

            #6
            نوشته اصلی توسط mobinsaffarpour
            واقعا مشکرم

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

            من فایل شما رو تا آخرین سلول Excel فرمت دهی کردم و کاندیشن دادم حجم فایل خیلی زیاد شده آپلود نمیشه
            Last edited by sabertb; 2015/07/06, 17:51.
            :min10::min18::min13::min22:

            کامنت

            • mobinsaffarpour

              • 2013/05/25
              • 176

              #7
              سلام دوست من

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

              کامنت

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

                • 2013/11/18
                • 1522
                • 71.67

                #8
                سلام،
                با اين ماکرو مي شود به نتيجه رسيد ولي اينکه ماکرو اتوماتيک بعد از آپديت شيت عمل شود را نمي دانم! مگر اينکه در دستور بستن يا باز شدن فايل اجرا گردد!
                کد PHP:
                Sub Macro1()
                Dim C As Range
                For Each C In Range("A4:A1000")
                If 
                <> "" Then
                    Rows
                ("3:3").Select
                    Selection
                .Copy
                    Rows
                (C.Row).Select
                    Selection
                .PasteSpecial Paste:=xlPasteFormatsOperation:=xlNone_
                        SkipBlanks
                :=FalseTranspose:=False
                    Application
                .CutCopyMode False
                End 
                If
                Next
                End Sub 
                [SIGPIC][/SIGPIC]

                کامنت

                • mobinsaffarpour

                  • 2013/05/25
                  • 176

                  #9
                  واقعاً متشکرم آقای پارسا عزیز

                  دقیقاً مطابق با همون چیزی که میخواستم اما یک مورد و یک سوال

                  1 - اگر بین ردیف ها اطلاعاتی وجود نداشته باشه، فرمت رو اعمال نمیکنه و فکر میکنم دلیلش هم این هست که از ستون a شروع بکار میکنه.

                  2 - A4:a1000 چیه ؟

                  باتشکر
                  Last edited by mobinsaffarpour; 2015/07/07, 00:49.

                  کامنت

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

                    • 2013/11/18
                    • 1522
                    • 71.67

                    #10
                    نوشته اصلی توسط mobinsaffarpour
                    واقعاً متشکرم آقای پارسا عزیز

                    دقیقاً مطابق با همون چیزی که میخواستم اما یک مورد و یک سوال

                    1 - اگر بین ردیف ها اطلاعاتی وجود نداشته باشه، فرمت رو اعمال نمیکنه و فکر میکنم دلیلش هم این هست که از ستون a شروع بکار میکنه.

                    2 - a4:a1000 چیه ؟

                    باتشکر

                    بله، ستون a را از خانه a4 تا a1000 بررسي مي کند، اگر در آنها اطلاعات وجود داشت فرمت سطر مربوطه را برابر سطر سوم قرار مي دهد.
                    حالا دقيقا" مشکل چيست؟ اون وسط ها ممکن است سطر خالي داشته باشيد؟ يا اينکه سطر حاوي اطلاعات است ولي اطلاعات در خانه هاي ديگر غير ستون a بوده و ستون a خالي است؟
                    [SIGPIC][/SIGPIC]

                    کامنت

                    • mobinsaffarpour

                      • 2013/05/25
                      • 176

                      #11
                      جناب آقای پارسا

                      باسلام و عرض ادب

                      خدمت شما عرض کنم که دقیقاً هر دو مورد وجود داره :

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

                      2 - امکان اینکه در سلول های دیگر به غیر از ستون a اطلاعات وجود داشته باشه هم زیاد هست.

                      کامنت

                      • mobinsaffarpour

                        • 2013/05/25
                        • 176

                        #12
                        جناب آقای پارسا عزیز

                        میشه لطف کنید و اینکه پست رو تکمیل کنید . /باتشکر و عرض پوزش

                        کامنت

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

                          • 2013/11/18
                          • 1522
                          • 71.67

                          #13
                          از اين کد استفاده کنيد:
                          کد PHP:
                          Dim C As Integer
                          Dim D 
                          As Integer
                          Range("A:K").Find("*"SearchOrder:=xlByRowsSearchDirection:=xlPrevious).Row
                              Rows
                          ("3:3").Select
                              Selection
                          .Copy
                          For 4 To C
                              Rows
                          (D).Select
                              Selection
                          .PasteSpecial Paste:=xlPasteFormatsOperation:=xlNone_
                              SkipBlanks
                          :=FalseTranspose:=False
                          Next D
                          Application
                          .CutCopyMode False
                          Cells
                          (D1).Select 
                          [SIGPIC][/SIGPIC]

                          کامنت

                          • mobinsaffarpour

                            • 2013/05/25
                            • 176

                            #14
                            متشکرم آقای پارسا واقعاً جالب و کاربری خیلی لطف کردید . سپاسگذارم

                            کامنت

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

                              • 2013/11/18
                              • 1522
                              • 71.67

                              #15
                              گفته بوديد تعداد سطرهايتان بالاي 35000 تا ممکن است باشد!
                              چنين محاسباتي با اکسل غير معقول است! ضمن اينکه کد فوق نيز به درد آن نمي خورد و تقريبا" وقت تلف کردن مي باشد!
                              با اين وجود اگر در محدوده خارج ستونهاي A تا K هيچ نوشته يا عبارتي در سلها درج نکرده باشيد از اين کد که فوق العاده سريعتر عمل مي کند مي توانيد استفاده کنيد:
                              (خط اول کد جهت انتخاب محدوده و کل خطهاي بعدي صرفا" جهت فرمت دهي به محدوده انتخابي است)
                              کد PHP:
                              Range(Cells(31), Cells(Selection.SpecialCells(xlCellTypeLastCell).Row11)).Select
                                  With Selection
                              .Interior
                                      
                              .Pattern xlSolid
                                      
                              .PatternColorIndex xlAutomatic
                                      
                              .Color 16777164
                                      
                              .TintAndShade 0
                                      
                              .PatternTintAndShade 0
                                  End With
                                  Selection
                              .Borders(xlDiagonalDown).LineStyle xlNone
                                  Selection
                              .Borders(xlDiagonalUp).LineStyle xlNone
                                  With Selection
                              .Borders(xlEdgeLeft)
                                      .
                              LineStyle xlContinuous
                                      
                              .ThemeColor 1
                                      
                              .TintAndShade = -0.249977111117893
                                      
                              .Weight xlThick
                                  End With
                                  With Selection
                              .Borders(xlEdgeTop)
                                      .
                              LineStyle xlContinuous
                                      
                              .ThemeColor 1
                                      
                              .TintAndShade = -0.249977111117893
                                      
                              .Weight xlThick
                                  End With
                                  With Selection
                              .Borders(xlEdgeBottom)
                                      .
                              LineStyle xlContinuous
                                      
                              .ThemeColor 1
                                      
                              .TintAndShade = -0.249977111117893
                                      
                              .Weight xlThick
                                  End With
                                  With Selection
                              .Borders(xlEdgeRight)
                                      .
                              LineStyle xlContinuous
                                      
                              .ThemeColor 1
                                      
                              .TintAndShade = -0.249977111117893
                                      
                              .Weight xlThick
                                  End With
                                  With Selection
                              .Borders(xlInsideVertical)
                                      .
                              LineStyle xlContinuous
                                      
                              .ThemeColor 1
                                      
                              .TintAndShade = -0.249977111117893
                                      
                              .Weight xlThick
                                  End With
                                  With Selection
                              .Borders(xlInsideHorizontal)
                                      .
                              LineStyle xlContinuous
                                      
                              .ThemeColor 1
                                      
                              .TintAndShade = -0.249977111117893
                                      
                              .Weight xlThick
                                  End With 
                              [SIGPIC][/SIGPIC]

                              کامنت

                              چند لحظه..