اصلاح حرف ي فارسي

Collapse
X
 
  • زمان
  • نمایش
Clear All
new posts
  • Ali Parsaei
    مدير تالارتوابع اکسل

    • 2013/11/18
    • 1518

    اصلاح حرف ي فارسي

    با سلام و ارادت خدمت تمام اساتيد گرامي،
    در مباحث مطرح شده قبلي در سايت کدي براي جايگزيني حرف "ى" با "ي" مطرح شده بود به شکل زير:
    کد PHP:
    Activesheet.Cells.Replace What:=Chr(236), Replacement:=Chr(237), LookAt:=xlPartSearchOrder _
            
    :=xlByRowsMatchCase:=FalseSearchFormat:=FalseReplaceFormat:=False 
    با توجه به اينکه کد مذکور براي شيت فعال نوشته شده، آيا امکان دارد راهنمايي بفرماييد که اگر بخواهم اين عمل براي کل فايل اعمال گردد کد را با چه عبارتي بايد آغاز کنم؟
    sigpic
  • Amir Ghasemiyan

    • 2013/09/20
    • 4476

    #2
    نوشته اصلی توسط علي پارسا
    با سلام و ارادت خدمت تمام اساتيد گرامي،
    در مباحث مطرح شده قبلي در سايت کدي براي جايگزيني حرف "ى" با "ي" مطرح شده بود به شکل زير:
    کد PHP:
    Activesheet.Cells.Replace What:=Chr(236), Replacement:=Chr(237), LookAt:=xlPartSearchOrder _
            
    :=xlByRowsMatchCase:=FalseSearchFormat:=FalseReplaceFormat:=False 
    با توجه به اينکه کد مذکور براي شيت فعال نوشته شده، آيا امکان دارد راهنمايي بفرماييد که اگر بخواهم اين عمل براي کل فايل اعمال گردد کد را با چه عبارتي بايد آغاز کنم؟
    سلام دوست عزيز
    فكر كنم فقط كافيه activesheet رو از ابتداي كدتون حذف كنيد. يعني اينطوري:
    کد:
    Cells.Replace What:=Chr(236), Replacement:=Chr(237), LookAt:=xlPart, SearchOrder _
            :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    کامنت

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

      • 2013/11/18
      • 1518

      #3
      حذف کردم، ولي نشد! باز هم فقط روي شيت فعال عمل مي کند.
      کد را يک بار داخل يک ماژول auto_open نوشتم و يک با هم داخل THIS WORKBOOK ولي باز هم نشد.
      sigpic

      کامنت

      • Amir Ghasemiyan

        • 2013/09/20
        • 4476

        #4
        نوشته اصلی توسط علي پارسا
        حذف کردم، ولي نشد! باز هم فقط روي شيت فعال عمل مي کند.
        کد را يک بار داخل يک ماژول auto_open نوشتم و يک با هم داخل THIS WORKBOOK ولي باز هم نشد.
        من خودم امتحان كردم، شد. بدون مشكل انجام داد.
        احتمال داره كاركتري كه شما گذاشتين با كاركتر «ي» توي شيتتون فرق داشته باشه. من بررسي كردم. «ي» عربي با كد اسكي 63 شناخته ميشه نه 236. اين رو امتحان بفرماييد ببينيد بازم مشكل برقراره؟

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4476

          #5
          اگر باز هم جواب نگرفتين يك حلقه تعريف كنيد كه همه شيت ها رو يكي يكي بگرده. يعني يه چيزي مثل اين:

          کد:
          Dim a As Worksheet
          For Each a In Worksheets
              Cells.Replace What:=Chr(63), replacement:=Chr(237), LookAt:=xlPart, SearchOrder _
              :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
          Next a

          کامنت

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

            • 2013/11/18
            • 1518

            #6
            ممنون از راهنمايي که کرديد، ولي مشکل حل نشد، با تعريف حلقه هم حل نشد، البته همين مقدار که راهنمايي کرديد کافي است و متشکرم، بقيه اش را خودم مي گردم و مشکلش را پيدا مي کنم.
            فقط مي توانيد چک بفرماييد که فايل پيوست روي کامپيوتر شما جواب مي دهد يا نه؟ روي کامپيوتر من که فقط شيت فعال را تغيير مي دهد، مي خواهم بدانم اشکال از کامپيوتر يا آفيس نباشد، اگر از اين مطمئن شوم بقيه اش را خودم پي گيري خواهم کرد.
            فایل های پیوست شده
            sigpic

            کامنت

            • Amir Ghasemiyan

              • 2013/09/20
              • 4476

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

              فایل های پیوست شده

              کامنت

              • ~M*E*H*D*I~

                • 2011/10/19
                • 4374

                #8
                چرا این همه دردسر

                به راحتی روی تب شیت راست کلیک کنید select all رو بزنید بعد از ctrl+h استفاده کنید تمام شیت ها اصلاح میشه

                sigpic

                کامنت

                • Amir Ghasemiyan

                  • 2013/09/20
                  • 4476

                  #9
                  نوشته اصلی توسط ~M*E*H*D*I~
                  چرا این همه دردسر

                  به راحتی روی تب شیت راست کلیک کنید select all رو بزنید بعد از ctrl+h استفاده کنید تمام شیت ها اصلاح میشه
                  راه هاي رسيدن به خدا بسيار است

                  کامنت

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

                    • 2013/11/18
                    • 1518

                    #10
                    در رابطه با همين موضوع يک اختلال عجيب در اکسل کشف کردم که در مورد حروف فارسي خيلي نگرانم کرد، اگر اينطور باشد بايد به خيلي چيزها شک کرد! لطفا" فايل پيوست را بررسي و نظر دهيد.
                    فایل های پیوست شده
                    Last edited by Ali Parsaei; 2014/02/13, 18:56.
                    sigpic

                    کامنت

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

                      • 2013/11/18
                      • 1518

                      #11
                      نوشته اصلی توسط علي پارسا
                      در رابطه با همين موضوع يک اختلال عجيب در اکسل کشف کردم که در مورد حروف فارسي خيلي نگرانم کرد، اگر اينطور باشد بايد به خيلي چيزها شک کرد! لطفا" فايل پيوست را بررسي و نظر دهيد.
                      جهت اطلاع عرض کنم که من بررسي کردم و ديدم که يک سري کاراکترهاي خاص هستند که براي تابع code تعريف شده نيستند، از جمله همين حرف "ی" مدل سوم که در فايل ضميمه اخيرم فرستاده ام. براي تمام اين کاراکترها تابع ياد شده شماره 63 را بر مي گرداند (يعني همان کد کاراکتر علامت سوال انگليسي)، تعدادي از اين کاراکتر ها را مي توانيد در قسمت insert - symbol - special caracters مشاهده کنيد.
                      در نتيجه اگر در صفحه کليدي براي درج حرف "ي" از همين "ی" مذکور استفاده شده باشد متني که با آن صفحه کليد تايپ شده اگر بخواهد با فرمول نويسي به صورت فوق اصلاح شود با مشکل مواجه خواهد شد.
                      sigpic

                      کامنت

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

                        • 2013/11/18
                        • 1518

                        #12
                        يک نکته درباره اون حرف "ى" که گفتم کد آن 63 است:
                        اول اين بحث يک کد vba ياد شده جهت اصلاح حروف، اگر در آن کد بشود به جاي (chr(236 عبارت "ى" درج گردد (توجه کنيد که اين ى همان بايد باشد که کد 63 دارد) مشکل حل است. يعني مي توان کد را به گونه اي تنظيم کرد که همه آن "ى" هاي غير استاندارد در صفحه را تعويض کند.
                        به همين خاطر من در يک سل آن "ى" با کد 63 را نوشته و از آن کپي گرفتم، بعد در موقع نوشتن کد vba آن را در محل مورد نظر paste کردم. ولي مشاهده کردم که مفسر vba قادر به تشخيص آن نبود و به جايش علامت: "?" را درج مي کند.
                        خوب ..... از يک روش ديگر رفتم، اول آن "ى" را کپي و سپس از طريق find and replace امتحان کردم ببينم اصلا" با آن روش مي تواند "ى" هاي غير استاندارد را تعويض کند؟ ديدم کاملا" درست عمل مي کند.
                        حالا آمدم همين عمليات find and replace را در يک ماکرو ضبط کردم ببينم چه مي شود.
                        find and replace من در هنگام ضبط ماکرو کار کرد، ولي خود ماکرو کار نکرد.
                        نتيجه اينکه در عمليات find and replace کامپيوتر در پشت صحنه حرف "ى" را به گونه اي دارد کد دهي (تفسير) مي کند که کاملا" آن را مي توان از ديگر حروف متمايز کرد. ولي وقتي همين عمليات مي خواهد به زبان vba برگردانده شود و ذخيره گردد ديگر براي مفسر vba قابل فهم نبوده و يک جوري آن را تغيير مي دهد.
                        البته بحث در اين باره در حوزه تخصص دوستاني است که رشته آنها کامپيوتر است.
                        ولي گفتم شايد عرايض عاميانه اينجانب هم به درد عوام در حد خودم بخورد، يا بابي باز شود که دوستان متخصص هم چيزي اگر در چنته دارند بفرمايند تا ما هم در حد درک خود بهره مند شويم، زيرا تا آنجا که من ديده ام اين اختلاف حروف فارسي براي خيلي از کاربران در زمينه هاي مختلف دردسر ساز مي باشد.
                        Last edited by Ali Parsaei; 2014/04/27, 15:20.
                        sigpic

                        کامنت

                        • Amir Ghasemiyan

                          • 2013/09/20
                          • 4476

                          #13
                          ممنون علي جان

                          يك نكته رو بايد خدمتتون عرض كنم و اون اينكه غير از chr عبارتهاي ديگه اي هم داريم chrw و chrb كه هر كدوم قواعد خاص خودشون رو دارن. به احتمال زياد سرچ اكسل از chrw كمك ميگيره ولي بايد بررسي بشه

                          کامنت

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

                            • 2013/11/18
                            • 1518

                            #14
                            باز هم يک چيز ديگه،
                            windows من xp است و براي ويرايش صفحه کليد فارسي ام از نرم افزار traylayout استفاده مي کنم.
                            فايل ضميمه را نگاه کنيد، از دو روش براي ورود حرف "ى" به صفحه استفاده کرده ام.
                            وقتي traylayout من روشن است در هر دو مورد حرف وارده داراي کد 237 است ولي وقتي خاموش است از طريق ورود با textbox حرف وارده داراي کد 63 و از طريق ورود با inputbox حرف وارده داراي کد 237 است!!! در صورتي که در هر دو مورد يک کليد را روي صفحه کليد فشار داده ام!!! يعني تفسيرگر vba اکسل وقتي اطلاعات را از textbox ميگيرد يک جور تفسير مي کند و وقتي از inputbox مي گيرد يک جور ديگر؟؟؟!!!
                            اين "ى" هم معضلي شده براي من، ديونم کرده! پيشنهاد مي کنم اصلا" يک تالار به نام "ي" تشکيل دهيم.
                            خودمونيم من هم ول کن اين حرف "ى" نيستم. راستش يک فايل درست کردم و همه جوره روي اصلاح حروفش کار کردم، بعد روي کامپيوتر دوستم که traylayout نداشت امتحان کردم ديدم به! فکر اينجاش رو نکرده بودم! مثل اين بود که آب سرد سرم بريزند!
                            فایل های پیوست شده
                            sigpic

                            کامنت

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

                              • 2013/11/18
                              • 1518

                              #15
                              نوشته اصلی توسط علي پارسا
                              باز هم يک چيز ديگه،
                              windows من xp است و براي ويرايش صفحه کليد فارسي ام از نرم افزار traylayout استفاده مي کنم.
                              فايل ضميمه را نگاه کنيد، از دو روش براي ورود حرف "ى" به صفحه استفاده کرده ام.
                              وقتي traylayout من روشن است در هر دو مورد حرف وارده داراي کد 237 است ولي وقتي خاموش است از طريق ورود با textbox حرف وارده داراي کد 63 و از طريق ورود با inputbox حرف وارده داراي کد 237 است!!! در صورتي که در هر دو مورد يک کليد را روي صفحه کليد فشار داده ام!!! يعني تفسيرگر vba اکسل وقتي اطلاعات را از textbox ميگيرد يک جور تفسير مي کند و وقتي از inputbox مي گيرد يک جور ديگر؟؟؟!!!
                              اين "ى" هم معضلي شده براي من، ديونم کرده! پيشنهاد مي کنم اصلا" يک تالار به نام "ي" تشکيل دهيم.
                              خودمونيم من هم ول کن اين حرف "ى" نيستم. راستش يک فايل درست کردم و همه جوره روي اصلاح حروفش کار کردم، بعد روي کامپيوتر دوستم که traylayout نداشت امتحان کردم ديدم به! فکر اينجاش رو نکرده بودم! مثل اين بود که آب سرد سرم بريزند!
                              فهميدم، اشکال مربوط به فونت مي شود، textbox فايل فوق فونتش روي فونت tahoma تنظيم است، ولي inputbox فکر کنم بر حسب arial عمل مي کند. پس وقتي traylayout روشن است يک يکسان سازي در فونتها اعمال مي کند، ولي وقتي خاموش است اين اتفاق نمي افتد. ....... اين هم داستاني شد، ..... مشکل من اينجا است که مي خواهم فايلي داشته باشم که به هر کسي دادم صرف نظر از اينکه ويژگي هاي کامپيوتر فرد چي باشد، درست عمل کند، به اين ترتيب بايد هم خودم حواسم را جمع کنم و هم مثلا" فونتها را هم با فايل به شخص ارائه دهم تا نصب کند.
                              حتما" ديده ايد که اگر ما برنامه اي را باز مي کنيم و فونت آن در کامپيوتر ما نيست کامپيوتر حتي المقدور آن را نشان مي دهد ولي با فونتهاي ديگر مشابه آن.
                              sigpic

                              کامنت

                              Working...