backup

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

    • 2018/06/08
    • 331
    • 39.00

    [حل شده] backup

    سلام کدی می خوام برای بک اپگیری فایل اکسل در مسیری که همان فایل اصلی قرار داره لطفا راهنمایی کنید
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    سلام دوست عزيز
    ميتونيد از اين كد استفاده كنيد

    کد:
    Sub SaveWorkbookBackup()
    
    
    Dim AWB As Workbook, BackupFileName As String, BackupFileFormat As String, i As Integer, Ok As Boolean
    
    
    On Error GoTo NotAbleToSave
        
    Set AWB = ActiveWorkbook
    
    
    BackupFileName = AWB.FullName
    
    
    If AWB.Path = "" Then
    
    
        Application.Dialogs(xlDialogSaveAs).Show
        
    Else
        BackupFileFormat = Right(BackupFileName, Len(BackupFileName) - InStrRev(BackupFileName, ".", -1, vbTextCompare))
        BackupFileName = Left(AWB.FullName, Len(BackupFileName) - Len(BackupFileFormat) - 1)
        BackupFileName = BackupFileName & "-Backup-" & Format(Now, "yyyy-mm-dd-h-m") & "." & BackupFileFormat
        Ok = False
        
        With AWB
            .Save
            .SaveCopyAs BackupFileName
            Ok = True
        End With
        
    End If
    
    
    NotAbleToSave:
        Set AWB = Nothing
        If Not Ok Then
            MsgBox "Backup Copy Not Saved!", vbExclamation, ThisWorkbook.Name
        End If
    End Sub

    کامنت

    • kazem1359

      • 2018/06/08
      • 331
      • 39.00

      #3
      سلام استاد ارجمند ممنون از پاسختان
      یک مشکل دارم که اگر اساتید و دوستان عزیز برطرف نمایند خیلی ممنون میشم
      بنده یک فایل اکسل دارم که توسط برنامه XLtoEXE به فایل اجرایی (exe) تبدیل کردم هنگامی که فایل exe را باز می کنم و دکمه بک اپ را می زنم تا یک بک اپ بگیرم (طبق کد بالا) متاسفانه بک اپ نمیگیره اشکال از کجاست؟
      (وقتی از خود فایل اکسل اصلی بک اپ میگیرم درست انجام میشه و بک اپ میده ولی فایل exe را بک اپ نمیده)
      ممنون میشم اشکال کار را بگین

      رمز ورود و محیط vba عدد 1359 هست
      اگر برنامه XLtoEXE رمز خواست عدد 123 هست
      فایلها:

      کامنت

      • مهندس تبریزی

        • 2019/07/10
        • 109
        • 93.00

        #4
        نوشته اصلی توسط amir ghasemiyan
        سلام دوست عزيز
        ميتونيد از اين كد استفاده كنيد

        کد:
        sub saveworkbookbackup()
        
        
        dim awb as workbook, backupfilename as string, backupfileformat as string, i as integer, ok as boolean
        
        
        on error goto notabletosave
            
        set awb = activeworkbook
        
        
        backupfilename = awb.fullname
        
        
        if awb.path = "" then
        
        
            application.dialogs(xldialogsaveas).show
            
        else
            backupfileformat = right(backupfilename, len(backupfilename) - instrrev(backupfilename, ".", -1, vbtextcompare))
            backupfilename = left(awb.fullname, len(backupfilename) - len(backupfileformat) - 1)
            backupfilename = backupfilename & "-backup-" & format(now, "yyyy-mm-dd-h-m") & "." & backupfileformat
            ok = false
            
            with awb
                .save
                .savecopyas backupfilename
                ok = true
            end with
            
        end if
        
        
        notabletosave:
            Set awb = nothing
            if not ok then
                msgbox "backup copy not saved!", vbexclamation, thisworkbook.name
            end if
        end sub

        سلام استاد معظم
        ببخشید دو تا سوال داشتم
        1-اگر بخواهیم فایل بک آپ را در آدرس دیگری مثل
        d:\my-excel\backup-my-excel ذخیره کنیم بایستی چه تغییراتی در کد داده شود
        2-بعد از بک آپ گیری فایل اکسل اصلی بسته شود
        پیشاپیش از راهنمائی تون سپاسگزارم
        [CENTER][SIZE=4][FONT=arial][COLOR=#b22222] :winner2:[/COLOR][COLOR=#000080] فرانسیس بیکن : [/COLOR][COLOR=#0000cd]آنچه مردم را [/COLOR][COLOR=#ff0000]دانشمند [/COLOR][COLOR=#0000cd]می کند ، مطالبی نیست که [/COLOR][COLOR=#800000]می خوانند[/COLOR][COLOR=#0000cd] بلکه چیزهایی است که [/COLOR][COLOR=#800000]یاد می گیرند[/COLOR][COLOR=#b22222] :lamo:[/COLOR][/FONT]
        [/SIZE][/CENTER]

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4598
          • 100.00

          #5
          نوشته اصلی توسط kazem1359
          سلام استاد ارجمند ممنون از پاسختان
          یک مشکل دارم که اگر اساتید و دوستان عزیز برطرف نمایند خیلی ممنون میشم
          بنده یک فایل اکسل دارم که توسط برنامه XLtoEXE به فایل اجرایی (exe) تبدیل کردم هنگامی که فایل exe را باز می کنم و دکمه بک اپ را می زنم تا یک بک اپ بگیرم (طبق کد بالا) متاسفانه بک اپ نمیگیره اشکال از کجاست؟
          (وقتی از خود فایل اکسل اصلی بک اپ میگیرم درست انجام میشه و بک اپ میده ولی فایل exe را بک اپ نمیده)
          ممنون میشم اشکال کار را بگین

          رمز ورود و محیط vba عدد 1359 هست
          اگر برنامه XLtoEXE رمز خواست عدد 123 هست
          فایلها:
          http://s5.picofile.com/file/83748795...older.rar.html
          کد:
          Sub SaveWorkbookBackup()
          Dim AWB As Workbook, BackupFileName As String, BackupFileFormat As String, i As Integer, Ok As Boolean, Path As String
          On Error GoTo NotAbleToSave
          Set AWB = ActiveWorkbook
          BackupFileName = AWB.Name
          [COLOR="#FF0000"]Path = "D:\ExcelIran\"
          سلام دوست عزيز
          ميبينم كه فايلتون خيلي پيشرفت كرده. خيلي خوشحالم كه تونستيد نرم افزار به اين خوبي طراحي كنيد. قطعا در خلال اين پروژه مطالب زيادي ياد گرفتين. خوشحال ميشيم بتونيم از دانشتون استفاده كنيم.
          
          در مورد بك آپ هم بررسي كردم. اين نرم افزار براي اجراي فايل اكسل شما يك فايل تمپرري ايجاد ميكنه. براي اينكه به مشكل نخوريد آدرس رو بايد مطلق بدين. من كد رو براتون تغيير ميدم.
          
          
          If Dir(Path, vbDirectory) = vbNullString Then MkDir (Path)
          If AWB.Path = "" Then
              Application.Dialogs(xlDialogSaveAs).Show
          Else
              BackupFileFormat = Right(BackupFileName, Len(BackupFileName) - InStrRev(BackupFileName, ".", -1, vbTextCompare))
              BackupFileName = Left(BackupFileName, Len(BackupFileName) - Len(BackupFileFormat) - 1)
              BackupFileName = Path & BackupFileName & "-Backup-" & Format(Now, "yyyy-mm-dd-h-m") & "." & BackupFileFormat
              Ok = False
              
              With AWB
                  .Save
                  .SaveCopyAs BackupFileName
                  Ok = True
              End With
          End If
          NotAbleToSave:
              Set AWB = Nothing
              If Not Ok Then
                  MsgBox "Backup Copy Not Saved!", vbExclamation, ThisWorkbook.Name
              End If
          End Sub
          قسمتي كه قرمز كردم ميتونيد آدرس مورد نظر خودتون رو بدين.
          [/COLOR]

          کامنت

          • Amir Ghasemiyan

            • 2013/09/20
            • 4598
            • 100.00

            #6
            نوشته اصلی توسط مهندس تبریزی
            سلام استاد معظم
            ببخشید دو تا سوال داشتم
            1-اگر بخواهیم فایل بک آپ را در آدرس دیگری مثل
            d:\my-excel\backup-my-excel ذخیره کنیم بایستی چه تغییراتی در کد داده شود
            2-بعد از بک آپ گیری فایل اکسل اصلی بسته شود
            پیشاپیش از راهنمائی تون سپاسگزارم
            سلام دوست عزيز
            براي سوال اولتون به پاسخ قبلي مراجعه بفرماييد. براي دوستمون تغييرات رو اعمال كردم

            براي سوال دوم هم ميتونيد يكي از اين دو خط كد رو بر اساس نيازتون به انتهاي كدهاتون اضافه كنيد
            کد:
            Application.Quit
            ActiveWindow.Close

            کامنت

            • kazem1359

              • 2018/06/08
              • 331
              • 39.00

              #7
              سلام استاد ارجمند جناب اقای قاسمیان شما لطف دارین بنده هر کاری کردم و هر چی یاد گرفتم از لطف شما و دیگر دوستان انجمن بوده امیدوارم همیشه موفق وپایدار باشین.
              بابت اصلاح کد ممنون ولی ایا این امکان هست که فرمت بک اپ گرفته شده همانند فایل اصلی که به صورت exe هست باشه. ممنون

              کامنت

              • Amir Ghasemiyan

                • 2013/09/20
                • 4598
                • 100.00

                #8
                نوشته اصلی توسط kazem1359
                سلام استاد ارجمند جناب اقای قاسمیان شما لطف دارین بنده هر کاری کردم و هر چی یاد گرفتم از لطف شما و دیگر دوستان انجمن بوده امیدوارم همیشه موفق وپایدار باشین.
                بابت اصلاح کد ممنون ولی ایا این امکان هست که فرمت بک اپ گرفته شده همانند فایل اصلی که به صورت exe هست باشه. ممنون
                کد:
                Dim fso As Object
                Set fso = VBA.CreateObject("Scripting.FileSystemObject")
                [COLOR="#FF0000"]Source = "E:\B Book980718.exe"
                Destination = "D:\amir.exe"
                براي اينكار من پيشنهاد ميكنم از كپي پيست كردن استفاده كنيد. به اين كد توجه كنيد
                
                
                
                Call fso.CopyFile(Source, Destination)
                قسمت هايي كه قرمز كردم رو متناسب با اطلاعات خودتون اصلاح بفرماييد[/COLOR]

                کامنت

                • مهندس تبریزی

                  • 2019/07/10
                  • 109
                  • 93.00

                  #9
                  سلام استاد
                  خیلی سپاسگزارم
                  سایه عالی مستدام
                  [CENTER][SIZE=4][FONT=arial][COLOR=#b22222] :winner2:[/COLOR][COLOR=#000080] فرانسیس بیکن : [/COLOR][COLOR=#0000cd]آنچه مردم را [/COLOR][COLOR=#ff0000]دانشمند [/COLOR][COLOR=#0000cd]می کند ، مطالبی نیست که [/COLOR][COLOR=#800000]می خوانند[/COLOR][COLOR=#0000cd] بلکه چیزهایی است که [/COLOR][COLOR=#800000]یاد می گیرند[/COLOR][COLOR=#b22222] :lamo:[/COLOR][/FONT]
                  [/SIZE][/CENTER]

                  کامنت

                  • kazem1359

                    • 2018/06/08
                    • 331
                    • 39.00

                    #10
                    جناب آقای قاسمیان ممنون از اینکه پاسخ دادین
                    لطف می کنید بگین این کد را کجا قرار بدم
                    و دوم اینکه ایا این امکان هست که ما داخل کد ادرس ندیم (مثلا از درایو e کپی و به درایو d پیست کنه) بلکه با اجرای کد در درایوی که فایل هست فایل کپی و در همان درایوی که فایل اصلی هست پیست شود..
                    باز هم ممنون

                    کامنت

                    • Amir Ghasemiyan

                      • 2013/09/20
                      • 4598
                      • 100.00

                      #11
                      كلا جايگزين كد قبلي كنيد

                      متاسفانه امكانش نيست. چون فايل شما exe هست و نرم افزار از فايل اكسل شما يك فايل تمپرري در يك آدرس ديگه ميسازه پس نميشه آدرس فعلي فايل exe رو مشخص كرد

                      کامنت

                      • kazem1359

                        • 2018/06/08
                        • 331
                        • 39.00

                        #12
                        نوشته اصلی توسط Amir Ghasemiyan
                        کد:
                        Dim fso As Object
                        Set fso = VBA.CreateObject("Scripting.FileSystemObject")
                        [COLOR=#FF0000]Source = "E:\B Book980718.exe"
                        Destination = "D:\amir.exe"
                        براي اينكار من پيشنهاد ميكنم از كپي پيست كردن استفاده كنيد. به اين كد توجه كنيد
                        
                        
                        
                        Call fso.CopyFile(Source, Destination)
                        قسمت هايي كه قرمز كردم رو متناسب با اطلاعات خودتون اصلاح بفرماييد[/COLOR]
                        با سلام ممنون از پاسختان
                        ایا این امکان هست که با اجرای ماکرو (یا هرروش دیگری ) یک نوشته یا حرف را از یک سلول شیت به جای نوشته یا حرف در کد vba جایگزین نمود.
                        مثلا در یک سلول ما حرف E را داشته باشیم و با اجرای یک کد یا ماکرو ان حرف E جایگزین حرف D در کدVBA که دادین شود.
                        باز هم ممنون

                        کامنت

                        • Amir Ghasemiyan

                          • 2013/09/20
                          • 4598
                          • 100.00

                          #13
                          نوشته اصلی توسط kazem1359
                          با سلام ممنون از پاسختان
                          ایا این امکان هست که با اجرای ماکرو (یا هرروش دیگری ) یک نوشته یا حرف را از یک سلول شیت به جای نوشته یا حرف در کد vba جایگزین نمود.
                          مثلا در یک سلول ما حرف e را داشته باشیم و با اجرای یک کد یا ماکرو ان حرف e جایگزین حرف d در کدvba که دادین شود.
                          باز هم ممنون
                          هدفتون چيه؟ ميخوايد آدرس ها متغير باشه؟
                          اگر اينطوريه آدرس ها رو داخل يك سلول بنويسيد و رفرنس بدين به اون. نيازي نيست كدهاي vba رو تغيير بدين

                          کامنت

                          • kazem1359

                            • 2018/06/08
                            • 331
                            • 39.00

                            #14
                            سلام ممنون از پاسختان
                            بله می خواهم ادرسی که در کد vba هست متغیر بشه و براساس داده یک سلول از شیت بشه لطفا روش کار را هم بگویید ممنون

                            کامنت

                            • Amir Ghasemiyan

                              • 2013/09/20
                              • 4598
                              • 100.00

                              #15
                              نوشته اصلی توسط kazem1359
                              سلام ممنون از پاسختان
                              بله می خواهم ادرسی که در کد vba هست متغیر بشه و براساس داده یک سلول از شیت بشه لطفا روش کار را هم بگویید ممنون

                              خب پس همونطور كه عرض كردم آدرس ها رو داخل يك سلول بنويسيد و به اون سلول رفرنس بدين. اينطوري بهتره
                              مثلا اينطوري:

                              کد:
                              Source = Sheet1.Range("A1").Value

                              کامنت

                              چند لحظه..