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

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

قام بنشر

السلام عليكم ورحمة الله وبركاته

قمت بتصميم برنامج مشتريات ومخازن وموردين على اكسل 2016 واستخدمت به الواجهات ( USERFORM ) وطبعا كنت كل شاشة أعملها أجرب تشغيلها فكانت تعمل دون مشاكل وبعد قطع شوط كبير في البرنامج أجرب بعض شاشات الادخال وجدتها لاتعمل ويعطى الخطأ بالصورة المرفقة وعند الضغط على ( Debug ) الخط الأصفر يظهر على أول سطر يوجد به ترحيل وعند الضغط على ( End ) يخرج من جميع الشاشات وفي كلاهما بعد ثلاث ثواني تظهر لي رسالة أت الاكسل يحتاج الى اعادة الشغيل 
بحثت عن سبب الخطأ لم أعرفه 
تم نقل البرنامج الى جهاز آخر فاشتغل دون مشاكل ولكن كانت نسخة الاوفس 2010 ظننت أن الخطأ من الويندوز فتم تغيير نسخة الويندوز لكنه لم يعمل على اوفس 2016 وعند تسطيب اوفس 2010 اشتغل دون مشاكل 

فما هو السبب الذي يجعل برنامج يعمل دون مشاكل على اوفيس 2010 ولا يعمل على 2016 ؟ وماذا ان خرج اوفيس 2010 من الدعم ؟

 

325.png

قام بنشر

 وعليكم السلام  ورحمة الله وبركاته

ربما يكون سبب عمل الملف على جهاز ولم يعمل على جهاز اخر  سببه اختلاف نظام التشغيل ربما يكون احدهما نظام 32 بث والاخر 64 بت

تأكد من الجهازين المختلفين لهما نفس النظام  32 بت او 64 بت 

ويمكنك معرفة ذلك بالنقر بالزر الايمن للفارة على جهاز الكمبيوتر  تظهر لك قائمة اختر خصائص تظهر لك معلومات الجهاز ومن ضمنها نظام التشغيل وقم بهذا الامر للجهازين المختلفين

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

 

#If VBA7 Then
    Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
#Else
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
#End If

تحياتي

 

قام بنشر

أيضا قمت بقل الملف الى جهاز به اوفس 2016 لم يعمل 

فواضح ان في امكانيات في 2010 اتشالت في 2016 دا التفسير الوحيد

قام بنشر

 

اعتقد ان معلومتك تحتاج تصحيح فامكانيات 2016  ارقي واكبر من امكانيات 2010 فامكانياته تشغل جميع الاصدارات السابقة 2003 او 2007 او 2010 او 2013  بشرط ان نظام تشغيل الويندوز واحد  اما 32 بت لكليهما او 64 بث 

 

 

قام بنشر

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

 

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