اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر
Option Explicit
 
 
Private Sub Workbook_Open()
      Application.Caption = "Microsoft Excel yahiaoui"
End Sub
 
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
      Dim MyFilePath$, Extension$
      MyFilePath = MyPCpath("MyDocuments")
      Extension = Left(ThisWorkbook.Name, Len _
                                          (ThisWorkbook.Name) - 4) & " Backup"
 
      On Error Resume Next      '<< folder exists
      MkDir MyFilePath & Extension      '<< create folder
      'save current version of this book in the folder
      ActiveWorkbook.SaveCopyAs Filename:=MyFilePath & _
                                          Extension & "\" & Extension & _
                                          (Format(Now, " mmm d yyyy, hh.mm.ss AMPM")) & ".xls"
End Sub
 
Public Function MyPCpath$(Folder)
      MyPCpath = CreateObject("WScript.Shell").SpecialFolders _
                 (Folder) & Application.PathSeparator
End Function
 
1 - ممكن تعديل الكود ليعمل عند حفظ الملف فقط لعمل نسخة احتياطية عند الحاجة و لا يقوم بحفظ الملف عند الخروج
 
 
قام بنشر (معدل)

شكرا لكل من حاول المساعده 

لقد وجدت الحل فى الموضوع التالى

http://www.officena.net/ib/index.php?showtopic=34297#entry179620

 

و يمكن اثراء الموضوع للاستفادة 

الكود يقوم بعمل نسخة فقط عن طريق زر فقط فى حالة الحاجة

و لكنه لا يعمل فولدر للحفظ ممكن اثراء الموضوع من الكود فى المشاركة السابقة

يا ريت يقوم الزر بعمل حفظ للملف و كذلك يقوم بعمل فولدر للنسخة الاحتياطية 

و عند عمل تغيير على الملف فى وجود تغيير فى البيانات اذا قمت بالحفظ يحفظ الملف فقط دون عمل نسخة

و اذا قمت بعدم الحفظ لا يحفظ و لا يعمل نسخة

لان عمل النسخة  و الحفظ سيكون فقط من خلال الزر

و اسف للاطالة

تم تعديل بواسطه صلاح الصغير
قام بنشر

استاذ ابراهيم

و الله تعبك معايا معلشى اعذرنى الملف من الناحية التأمينة بقى جامد قوى

بس فيه بعض المشاكل فى غلق نافذة الاكسيل و كمان كود النسخة الاحتياطية 

مشروح فى المشاركة السابقة

قام بنشر (معدل)

و الله يا استاذ ابراهيم اطلالتك تسعدنى

و استسمحك تراجعلى موضوع تعطيل الماكرو من ملف اكسيل اخر

لان المشكلة ظهرت من جديد

و سؤال اخر هل تتعارض بعض الاكواد من office الى اخر 

لان الملف بعد اضافة كود النسخة الاحتياطية بيهنج على 2007

و اليك الملف

و المشكلة الجديدة التى تحدث عند حفظ الملف

http://www.officena.net/ib/index.php?showtopic=53846

salah 2014.rar

تم تعديل بواسطه صلاح الصغير
قام بنشر

اخى صلاح بالنسبه لتعارض الاكواد مع اختلاف اصدارات الاوفيس فلا اعتقد ذلك

-----------------------------------------------------

اذا كانت المشكله لديك فى كود يقوم بعمل نسخه احتياطيه

فقد قمت بحزف الكود الذى قمت ان بكتابه

وارفقت لك كود اخر

يؤدى نفس المهمه

الكود يقوم بعمل نسخه احتياطيه يوميه

----------------

اما بالنسبه لتغير مستوى الامان من ملف اخر

فقد جربت ذلك ولم يحدث اى خطأ

salah 20144.rar

قام بنشر

شكرا يا استاذ ابراهيم

دائما فى العون سوف اجرب الكود الخاص بك

و لكن بالنسبة لمشكلة الاوفيس انا مكنتش عارف المشكلة فين

لكنى قمت بتنزيل نسخة ويندوز 7 فى العمل و كذلك اوفيس 2013 و الملف يعمل بصورة جيدة 

شكرا الف شكر

  • Like 1
قام بنشر

رائع يا اخ ابراهيم

بس فى مشكلة الملف يحفظ تلقائيا عند الخروج منه 

ممكن نخلى الكود يعمل فقط عند حفظ الملف ( يحفظ البيانات و يقوم بعمل نسخة )

و فى حالة الدخول و اجراء تعديلات على الملف و الخروج دون حفظ ( لا يعمل نسخة و لا يحفظ البيانات )

و يا ريت نستعير الجزء الخاص بعمل فولدر لل backup  و اكثر من نسخة احتياطية بالوقت و الزمان 

انا اكتشفت ان المشكلة كانت اما فى نسخة الويندوز او فى الاوفيس

الكود الاصلى كان جميل و لكن ينقصه شى مهم و هو انه كان بيحفظ الملف فور الخروج تلقائيا

و المفروض انيقتصر عمل الحفظ و النسخة الاحتياطية عند عمل حفظ بالطريقة التقليدية فقط

و هذا لا يقلل من مجهودك ابدا حضرتك و الاساتذة الافاضل فلولاكم بعد ربنا

ما توصلنا للاعمال المبدعة هذه و لا تعلمنا شى

لو حضرتك مش فاضى انا ممكن اشتغل على الملف على كده و اعتمد على اننى لا اقوم باى تعديل غير مرغوب فيه فى الملف

و عذرا لصراحتى

قام بنشر

اخى صلاح

يمكنك عمل ذلك بنفسك

سواء اذا كنت تريد استخدام

الكود الاول

او

الكود الثانى

--------------------------------------

اذا اردت استخدام الكود الاول

قم بتغير هذا السطر

Private Sub Workbook_BeforeClose(Cancel As Boolean)

الى

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

فى حالة استخدام الكود الثانى

فقط قم بحزف

هذا الكود

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayFullScreen = False
Application.DisplayFormulaBar = True
Dim Msg
Dim MyPath As String, pt As String
MyName = ActiveWorkbook.Name
MyRev = StrReverse(MyName)
MyTep = StrReverse(Left(MyRev, InStr(MyRev, ".")))
MyDate = Chr(32) & Format(Date, "dd-mm-yy")
MyName = Trim(Replace(MyName, MyTep, ""))
Text_ = MyName & MyDate
'============================
MyPath = ActiveWorkbook.Path & "\" & Trim(Text_) & MyTep
pt = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
'============================
ActiveWorkbook.SaveCopyAs MyPath
'============================
End
Application.Visible = True

End Sub

قام بنشر (معدل)

اخى ابراهيم

الكود الاول بالفعل به هذا السطر

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

و يقوم بحفظ تلقائى عند الخروج

و المطلوب يكون الحفظ و عمل النسخة من خلال زر save فقط

و بارك الله قيك

تم تعديل بواسطه صلاح الصغير
قام بنشر

 

اخى ابراهيم

الكود الاول بالفعل به هذا السطر

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

و يقوم بحفظ تلقائى عند الخروج

و المطلوب يكون الحفظ و عمل النسخة من خلال زر save فقط

و بارك الله قيك

 

اخى صلاح

لا اعتقد ان كلامك صحيح

لان هذا الكود هو خاص بالحفظ عن تفعيل زر حفظ فقط على حسب معلوماتى

وللتاكد من الامر

جرب فتح الملف المرفق

ثم قم بغلقه دون فعل اى شئ اى دون الضغط على زر حفظ

اذا وجدت ان هناك نسخه تم عملها يكون كلامك صحيح

واذا لم تجد ان هناك نسخه فيكون الكود يعمل عند الحفظ فقط

salah 20144.rar

قام بنشر (معدل)

الاخ ابرهيم

انا متشكر جدا لسعة صدرك

اعتقد ان سيادتك بتكلم عن الكود الثانى انا اكلمك عن هذا الكود

Option Explicit

Private Sub Workbook_Open()
      Application.Caption = "Microsoft Excel yahiaoui"
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
      Dim MyFilePath$, Extension$
      MyFilePath = MyPCpath("MyDocuments")
      Extension = Left(ThisWorkbook.Name, Len _
                                          (ThisWorkbook.Name) - 4) & " Backup"
      On Error Resume Next      '<< folder exists
      MkDir MyFilePath & Extension      '<< create folder
      'save current version of this book in the folder
      ActiveWorkbook.SaveCopyAs Filename:=MyFilePath & _
                                          Extension & "\" & Extension & _
                                          (Format(Now, " mmm d yyyy, hh.mm.ss AMPM")) & ".xls"
End Sub
 
Public Function MyPCpath$(Folder)
      MyPCpath = CreateObject("WScript.Shell").SpecialFolders _
                 (Folder) & Application.PathSeparator

 

End Function
 

ممكن اكون انا موصلتس المطلوب بشكل جيد

بالفعل الكود لا يقوم بعمل نسخة الا فى حالة حفظ الملف

الموضوع انه عند فتح الملف و عمل مثلا تلوين خليه ثم غلق الملف 

يتم حفظ التغيير و المطلوب ظهور رسالة الحفظ من عندمه و عند الحفظ يتم عمل النسخة

و فى حالة عدم الحفظ لا يحفظ التغيير و بالتالى لا يقوم بعمل نسخة

تم تعديل بواسطه صلاح الصغير

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information