کد vba برای save as

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

    • 2014/06/30
    • 55

    پرسش کد vba برای save as

    با سلام و درود
    1)با چه کدی میتونم فایل اکسلمو با نام مقداری که در سلول a1 وارد کردم save as کنم؟
    آدرس جایی که ذخیره میکنه هم همون جایی باشه که فایل اصلیه هست.
    2)فایل من 3 تا شیت داره،حالا اگه بخوام فقط یک شیت از اون فایل save as بشه باید چیکار کنم؟
  • علی فاطمی

    • 2014/02/17
    • 523
    • 51.00

    #2
    با سلام لطفا فایل پیوست رو ملاحظه کنین.
    دو راه براتون نوشتم . راه اول فایل در درایو D و با حذف شیتها و با نامی که در سل b4 در شیت 1 ثبت شده save میشه و راه دوم هم مسیر و هم نام رو می تونین انتخاب کنین . البته من خودم راه دوم رو پیشنهاد می کنم.
    فایل های پیوست شده
    [FONT=tahoma][SIZE=2][B][COLOR=#800080][SIZE=3]در دنیا فقط یک نفر وجود دارد که باید از او بهتر باشید و آن کسی نیست جز گذشته خودتان[/SIZE] [/COLOR][/B][/SIZE][/FONT]


    [CENTER][SIZE=7][FONT=franklin gothic medium][/FONT] [/SIZE]
    [/CENTER]

    کامنت

    • majidartoor

      • 2014/06/30
      • 55

      #3
      ممنون مشکلم حل شد.
      فقط ی سوال دیگه....
      در مورد روش اول که مسیر فایلو درایو d تعیین کردیم آیا میشه فایل اکسلو در یه پوشه از اون درایو ذخیره کنم؟
      یعنی اول ی پوشه با نامی که برابر سلول b5 هست بسازه بعد فایلو درون اون پوشه ذخیره کنه.

      کامنت

      • Amir Ghasemiyan

        • 2013/09/20
        • 4560
        • 100.00

        #4
        نوشته اصلی توسط majidartoor
        ممنون مشکلم حل شد.
        فقط ی سوال دیگه....
        در مورد روش اول که مسیر فایلو درایو d تعیین کردیم آیا میشه فایل اکسلو در یه پوشه از اون درایو ذخیره کنم؟
        یعنی اول ی پوشه با نامی که برابر سلول b5 هست بسازه بعد فایلو درون اون پوشه ذخیره کنه.

        كد رو به اين صورت اصلاح كنيد:

        کد:
        Private Sub CommandButton1_Click()
        Application.DisplayAlerts = False
        Dim filename As String
        filename = Sheet1.Range("b4")
        If Len(Dir("D:\aaa\", vbDirectory)) = 0 Then MkDir "D:\aaa"
        ChDir "D:\aaa"
        ActiveWorkbook.SaveAs filename:= _
        "D:\aaa" + filename + ".XLSM"
        For Each i In Worksheets
            Select Case i.Name
                Case "Sheet1"
                Case Else
                    i.Delete
            End Select
        Next i
        ActiveWorkbook.Close
        Application.DisplayAlerts = True
        
        End Sub
        اگر مشكلتون به طور كامل حل شد تيك سبز پست اول رو بزنين لطفا
        Last edited by Amir Ghasemiyan; 2014/08/21, 11:07.

        کامنت

        • majidartoor

          • 2014/06/30
          • 55

          #5
          دوستان اگه بخوام بعد از save as گرفتن از اکسلم بخوام برگردم به فایل قبلی چه باید کنم؟
          یعنی بعد از save as داخل همون فایل اصلی بمونم...
          Last edited by majidartoor; 2014/08/21, 21:53.

          کامنت

          • ali.b

            • 2014/01/12
            • 798

            #6
            ActiveWorkbook.Close
            این رو حذف کن
            [CENTER]
            [/CENTER]

            کامنت

            • misammisam
              مدير تالار حسابداری و اکسل

              • 2014/04/04
              • 892
              • 64.00

              #7
              وقتی Save As میکنیم فایل دوم باز میشه و فایل اول بسته میشه ، هیچ راهی نداره هر دوتا فایل باز بمونه و فایل اول بسته نشه .

              میخوام که از یه فایل کپی بگیرم ( Save As کنم ) و بعد از فایل اول به فایل دوم یه چند تا سلول رو لینک کنم ، بصورت اتومات ، ولی هر کاری میکنم فایل اول موقع Save As بسته میشه .
              [CENTER][SIGPIC][/SIGPIC]
              [/CENTER]
              [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
              [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
              [/CENTER]
              [/INDENT]

              [/FONT][/FONT][/FONT][/FONT][/FONT]
              [/CENTER]

              کامنت

              • Amir Ghasemiyan

                • 2013/09/20
                • 4560
                • 100.00

                #8
                نوشته اصلی توسط misammisam
                وقتی Save As میکنیم فایل دوم باز میشه و فایل اول بسته میشه ، هیچ راهی نداره هر دوتا فایل باز بمونه و فایل اول بسته نشه .

                میخوام که از یه فایل کپی بگیرم ( Save As کنم ) و بعد از فایل اول به فایل دوم یه چند تا سلول رو لینک کنم ، بصورت اتومات ، ولی هر کاری میکنم فایل اول موقع Save As بسته میشه .
                خب بعد سيو كردن دوباره فايل قبلي رو باز كن بعد لينك كن

                کامنت

                • misammisam
                  مدير تالار حسابداری و اکسل

                  • 2014/04/04
                  • 892
                  • 64.00

                  #9
                  نوشته اصلی توسط amir ghasemiyan
                  خب بعد سيو كردن دوباره فايل قبلي رو باز كن بعد لينك كن
                  راست میگی این میشه ، ولی چون حجم فایل خیلی زیاده میخوام دورش بزنم که فایل هی باز و بسته نشه .
                  کلا این save as هیچ راهی نداره .
                  Last edited by misammisam; 2015/01/08, 03:37.
                  [CENTER][SIGPIC][/SIGPIC]
                  [/CENTER]
                  [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
                  [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
                  [/CENTER]
                  [/INDENT]

                  [/FONT][/FONT][/FONT][/FONT][/FONT]
                  [/CENTER]

                  کامنت

                  • ehn
                    • 2020/09/25
                    • 2

                    #10
                    سلام و درود
                    خسته نباشید
                    من یه سیستمی رو طراحی کردم از دیتابیس کارکنان یعنی یه پنل طراحی کردم که با جستجو شماره پرسنلی کارکنان میتونید اونا رو مرخصی بدید ... انتقالی بدید ولی یه مشکل دارم اونم اینه که سیستم بایگانی ام مشکل داره من میخام وقتی طرف رو مرخصی دادم فرم مرخصی رو تو پوشه با نام خود طرف که در یکی از سلول های فرم مرخصی وجود داره با نام مرخصی مثلا استعلاجی فلانی در پوشه بایگانی فلانی ذخیره کنه امکانش هست؟؟؟
                    از اکسل ۲۰۱۰ استفاده میکنم
                    ممنون میشم راهنمایی کنید من فقط ساخت پوشه با نام یکی از سلول ها رو بلد نیستم

                    کامنت

                    • میثم مقدم نیا

                      • 2017/03/23
                      • 555
                      • 41.00

                      #11
                      نوشته اصلی توسط ehn
                      سلام و درود
                      خسته نباشید
                      من یه سیستمی رو طراحی کردم از دیتابیس کارکنان یعنی یه پنل طراحی کردم که با جستجو شماره پرسنلی کارکنان میتونید اونا رو مرخصی بدید ... انتقالی بدید ولی یه مشکل دارم اونم اینه که سیستم بایگانی ام مشکل داره من میخام وقتی طرف رو مرخصی دادم فرم مرخصی رو تو پوشه با نام خود طرف که در یکی از سلول های فرم مرخصی وجود داره با نام مرخصی مثلا استعلاجی فلانی در پوشه بایگانی فلانی ذخیره کنه امکانش هست؟؟؟
                      از اکسل ۲۰۱۰ استفاده میکنم
                      ممنون میشم راهنمایی کنید من فقط ساخت پوشه با نام یکی از سلول ها رو بلد نیستم
                      با سلام خدمت شما دوست عزیزم
                      فرض کنید فهرستی از اسامی کارکنان در محدوده یک شیت دارید، و حالا می‌خواهید برای هر کدام از آن‌ها یک پوشه ایجاد کنید تا اطلاعات آن‌ها را ثبت کنید .

                      اگر این پوشه‌ها را یکی یکی بسازید ، زمان زیادی را هدر می‌دهد . اما چطور می‌توانید به سرعت این پوشه‌ها را ایجاد کنید ؟

                      ایجاد پوشه براساس مقادیر سلول با کد VBA


                      برای مثال :

                      من یک سری اسامی در یک شیت دارم ، می‌خواهم برای هر یک از آن‌ها یک پوشه ایجاد کنم ، و آن‌ها را در یک مسیر مشخص ذخیره کنم

                      با کد VBA من می‌توانم این کار را انجام دهم .

                      ۱. فایل اکسل را در مسیر مورد نظر ذخیره کنید و محدوده نام ها را ذخیره کنید.

                      Click image for larger version

Name:	001.png
Views:	1
Size:	3.7 کیلو بایت
ID:	138227

                      ۲. کلیدهای Alt + F11 را فشار دهید تا پنجره Microsoft Visual Basic for Applications باز شود .

                      ۳. در پنجره Microsoft Visual Basic for Applications بر رویInsert > Module کلیک کنید و سپس از زیر کد VBA را کپی و در درون پنجره ماژول قرار دهید .

                      کد PHP:
                      Sub MakeFolders()
                      Dim Rng As Range
                      Dim maxRows
                      maxColsrAs Integer
                      Set Rng 
                      Selection
                      maxRows 
                      Rng.Rows.Count
                      maxCols 
                      Rng.Columns.Count
                      For 1 To maxCols
                      r
                      1
                      Do While <= maxRows
                      If Len(Dir(ActiveWorkbook.Path "\" & Rng(r, c), vbDirectory)) = 0 Then
                      MkDir (ActiveWorkbook.Path & "
                      \" & Rng(r, c))
                      On Error Resume Next
                      End If
                      r = r + 1
                      Loop
                      Next c
                      End Sub 

                      ۴. بعد از قرار دادن متن ، کلید F5 را فشار دهید تا آن را اجرا کنید .


                      توجه: به ازای سلول های محدوده انتخاب شده در مسیر فایل اکسل پویشه ایجاد می شود.


                      Click image for larger version

Name:	002.png
Views:	1
Size:	38.0 کیلو بایت
ID:	138228
                      فایل های پیوست شده
                      Last edited by میثم مقدم نیا; 2020/09/29, 11:55.
                      [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

                      کامنت

                      • ehn
                        • 2020/09/25
                        • 2

                        #12
                        نوشته اصلی توسط میثم مقدم نیا
                        با سلام خدمت شما دوست عزیزم
                        فرض کنید فهرستی از اسامی کارکنان در محدوده یک شیت دارید، و حالا می‌خواهید برای هر کدام از آن‌ها یک پوشه ایجاد کنید تا اطلاعات آن‌ها را ثبت کنید .

                        اگر این پوشه‌ها را یکی یکی بسازید ، زمان زیادی را هدر می‌دهد . اما چطور می‌توانید به سرعت این پوشه‌ها را ایجاد کنید ؟

                        ایجاد پوشه براساس مقادیر سلول با کد VBA


                        برای مثال :

                        من یک سری اسامی در یک شیت دارم ، می‌خواهم برای هر یک از آن‌ها یک پوشه ایجاد کنم ، و آن‌ها را در یک مسیر مشخص ذخیره کنم

                        با کد VBA من می‌توانم این کار را انجام دهم .

                        ۱. فایل اکسل را در مسیر مورد نظر ذخیره کنید و محدوده نام ها را ذخیره کنید.

                        [ATTACH=CONFIG]21700[/ATTACH]

                        ۲. کلیدهای Alt + F11 را فشار دهید تا پنجره Microsoft Visual Basic for Applications باز شود .

                        ۳. در پنجره Microsoft Visual Basic for Applications بر رویInsert > Module کلیک کنید و سپس از زیر کد VBA را کپی و در درون پنجره ماژول قرار دهید .

                        کد PHP:
                        Sub MakeFolders()
                        Dim Rng As Range
                        Dim maxRows
                        maxColsrAs Integer
                        Set Rng 
                        Selection
                        maxRows 
                        Rng.Rows.Count
                        maxCols 
                        Rng.Columns.Count
                        For 1 To maxCols
                        r
                        1
                        Do While <= maxRows
                        If Len(Dir(ActiveWorkbook.Path "\" & Rng(r, c), vbDirectory)) = 0 Then
                        MkDir (ActiveWorkbook.Path & "
                        \" & Rng(r, c))
                        On Error Resume Next
                        End If
                        r = r + 1
                        Loop
                        Next c
                        End Sub 

                        ۴. بعد از قرار دادن متن ، کلید F5 را فشار دهید تا آن را اجرا کنید .


                        توجه: به ازای سلول های محدوده انتخاب شده در مسیر فایل اکسل پویشه ایجاد می شود.


                        [ATTACH=CONFIG]21701[/ATTACH]



                        ازتون خیلی ممنونم که سریع پاسخگو بودید
                        اداره ما به گونه ایه که برای بابگانی هی باید سیو از بزنی و اسم طرف رو سیو کنی مثلا مرخصی فلانی من میخام وقتی به طرف مرخصی دادم ... مرخصی رو سیو کنه به طور اتوماتیک در پوشه به نام طرف اگه پوشه وجود نداشت مثلا نام پوشه رو از سلول b5,v8 بگیره و مرخصی رو با نام طرف که در سلول n2 هست ذخیره کنه
                        همچین چیزی ممکنه؟؟؟

                        کامنت

                        چند لحظه..