ماکرو برای ذخیره اکسل با فرمت تکست

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • mom_2008

    • 2018/08/14
    • 19

    [حل شده] ماکرو برای ذخیره اکسل با فرمت تکست

    با سلام و وقت بخیر
    دوستان من ماکرویی لازم دارم که ازداده های اکسل ستون fرنج f6تا f2005کپی تهیه کند با این شرایط:1-اگر سلولی دراین رنج خالی باشد حذف شود وکپی نشود 2-اطلاعات کپی شده در فایل نوت پد ذخیره بشه و پسوند این فایل از مقدار درج شده در سلول e4باشد وازکاربر محل ذخیره فایل سوال شود واگر مقدور باشد یک فایل اکسل جدید باز بشه واطلاعا ت ستون f از سلول f7تا جایی که مقادیر وارد شده و سلول ها دیگر خالی نیستند در سلول a1 تا a .. ذخیره شود
    فایل اکسل پیوست [ATTACH]17456[/ATTACH]
    نمونه فایل نوت پد با کدینگ ansiکه به عنوان خروجی لازم دارم
    [ATTACH]17457[/ATTACH]
    پسوند فایل نوت پد حتما از سلول e4گرفته شده باشد
    با تشکر
  • shariflotfi

    • 2016/09/26
    • 27
    • 82.00

    #2
    تابع BackupTxtData در فايل پيوست رو اجرا كنيد
    فایل های پیوست شده

    کامنت

    • mom_2008

      • 2018/08/14
      • 19

      #3
      نوشته اصلی توسط shariflotfi
      تابع BackupTxtData در فايل پيوست رو اجرا كنيد
      خیلی خیلی ممنون دوست عزیز لطف بزرگی در حق من فرمودین
      خواستم اگر امکانش باشه بفرمائید برای تغییر محدوه کپی پیست (بدون تغییر سایر شرایط )کدوم بخش های دستور را بایستی تغییر بدهم مثلا شروع محدوده پرینت (سلول e5(یا اینکه شروع محدوده پرینت از دوتا سلول باشه یعنی دوتا ستون کپی بشه(ستون eوستون f)
      باتشکر

      کامنت

      • shariflotfi

        • 2016/09/26
        • 27
        • 82.00

        #4
        براي تغيير محدوده مي تونين براحتي رنج مورد نظر رو تغيير بدين مثل :
        کد HTML:
        Range("E6:F" & last_row)
        براي انتقال دو سلول كنار هم در دو ستون به فايل txt بسته به اينكه در نظر داشته باشيد محتواي سلولها تو خط جداگانه باشن يا در يك رديف قضيه متفاوته. اگه بخواين هر سلول تو يه خط جديد منتقل بشه همين كد بالا كار مي كنه ولي اگه بخواين محتواي سلولهاي هر رديف با يه فاصله از هم تو يه خط از فايل txt باشن. بهتره حلقه for رو از رديف مثلا6 شروع كنيد تا last_row و توي چاپ محتواي سلولها اين عبارت رو بياريد:
        کد:
            For r = 6 To last_row
        کد:
                If Trim(Cells(r, "E").Value) <> "" And Trim(Cells(r, "F").Value) <> "" Then
                    Print #1, Trim(Cells(r, "E").Value) & "   " & Trim(Cells(r, "F").Value)
                End If
        [LEFT]    Next[/LEFT]

        کامنت

        • mom_2008

          • 2018/08/14
          • 19

          #5
          نوشته اصلی توسط shariflotfi
          براي تغيير محدوده مي تونين براحتي رنج مورد نظر رو تغيير بدين مثل :
          کد HTML:
          Range("E6:F" & last_row)
          براي انتقال دو سلول كنار هم در دو ستون به فايل txt بسته به اينكه در نظر داشته باشيد محتواي سلولها تو خط جداگانه باشن يا در يك رديف قضيه متفاوته. اگه بخواين هر سلول تو يه خط جديد منتقل بشه همين كد بالا كار مي كنه ولي اگه بخواين محتواي سلولهاي هر رديف با يه فاصله از هم تو يه خط از فايل txt باشن. بهتره حلقه for رو از رديف مثلا6 شروع كنيد تا last_row و توي چاپ محتواي سلولها اين عبارت رو بياريد:
          کد:
              For r = 6 To last_row
          کد:
                  If Trim(Cells(r, "E").Value) <> "" And Trim(Cells(r, "F").Value) <> "" Then
                      Print #1, Trim(Cells(r, "E").Value) & "   " & Trim(Cells(r, "F").Value)
                  End If
          [LEFT]    Next[/LEFT]
          استاد گرامی بی نهایت ممنونم
          من با توجه به دستورات شما فایل اکسل جهت واریز حقوق بانک ملت طراحی کردم درفایل جدید فقط تهیه فایل تکست دیده شده و تهیه فایل اکسل جدید را حذف کردم ممنون میشوم اگر نگاهی بهش بندازین ودر صورت لزوم اصالحات رو انجام بدینBook970725.rar

          کامنت

          • shariflotfi

            • 2016/09/26
            • 27
            • 82.00

            #6
            فايل داراي داده نيست. ظاهر امر كه درسته بايد با داده هم چك كنين. نمونه ماكرويي كه براتون فرستادم رو بطور مشابه پياده كنيئ. مثلا در انتهاي تابع دو دستور زير رو فراموش كردين كه بنويسين :
            کد:
               Application.DisplayAlerts = True
               Application.ScreenUpdating = True

            کامنت

            چند لحظه..