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

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

قام بنشر

السلام عليكم  

ما هو الخطأ الموجود في هذا الكود وما هو التعديل الصحيح مع العلم ان الكود يعمل جيدا علي اصدارات اوفيس 2013 فيما اقل وعند تشغيل علي اوفيس 2016 حدث هذا الخطأ مرفق صوره للخطأ ارجو افادتي

error.png

  • Like 1
قام بنشر

هل الويندوز الذي عندك 32 بت أو 64 بت؟

 

او جرب استبدال الاسطر المظللة بالاحمر في الكود خاصتك بالاسطر التالية

واشعرنا بالنتيجة


#If VBA7 Then
    Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
    Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongPtrA" (ByVal hWnd As LongPtr, ByVal nIndex As Long) As LongPtr
    Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongPtrA" ( ByVal hWnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
    Private Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hWnd As LongPtr) 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

 

  • أفضل إجابة
قام بنشر

قم اخي الكريم باستبدال الكود الموجود في هذا المودل بالكامل بالكود التالي

وان شاء الله سيعمل معك الملف .. ولم اتمكن في ضبطه بصورة نهائية لان ملفك به اكواد أخري مرتبطه بشيتات غير موجودة

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

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

تقبل خالص تحياتي

Public Const ENGLISH As String = "09"
Public Const ARABIC As String = "01"

#If VBA7 Then

Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( _
    ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongPtrA" ( _
    ByVal hWnd As LongPtr, ByVal nIndex As Long) As LongPtr
Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongPtrA" ( _
    ByVal hWnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
Private Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hWnd As LongPtr) 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
 

  



Sub SwitchLayout(Lang As String)

Dim Layouts() As Long
Dim NoOfLayouts As Long
Dim i As Long


NoOfLayouts = GetKeyboardLayoutList(0, ByVal 0&)

ReDim Layouts(NoOfLayouts)

GetKeyboardLayoutList NoOfLayouts, Layouts(0)


For i = 0 To NoOfLayouts - 1
   If UCase(Lang) = UCase(Right(Hex(Layouts(i)), 2)) Then
    ActivateKeyboardLayout Layouts(i), 0
    Exit For
   End If
Next

End Sub

 

555555+.rar

قام بنشر

السلام عليكم 

ا/حمادة بارك الله في حضرتك  سوف اجرب الكود 

الملف المرتبط لكود واحد يعمل علي ترحيل بيانات والملف مغلق وفي حالة عدم عمل الكود سوف ارفعه مع الملف واعتزر علي الاطاله بارك الله في حضرتك

واشكرك علي النصيحة بس لي سوءال الافس 2016 يعمل علي ويندوذ 32 

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

ارجو من حضرتك الاطلاع علي الملف المرفق

حيث تم رفع كل ما يتعلق به بعد تخفيفة حتي استطيع رفعة واشكرك علي الاستجابة جعلها الله في

ميزان حسناتك

https://up.top4top.net/downloadf-788nobhf0-rar.html

قام بنشر

الملف الاخير يعمل لدي بصورة طبيعية 

علما بان الويندوز لدي 32

انصحك اخي الكريم بتحويل الويندوز لديك الي 32

لتنهي مشكلتك ببساطه 

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

تقبل وافر تحياتي 

قام بنشر

يشرفني مرور حضرتك ا/حسام مصطفي 

بالفعل الملفات تعمل جيدا علي ويندوز 32 و 64 وجميع اصدارات الاوفيس ولكن عند نقل الملف علي جهاز يعمل بنسخة اوفيس 2016 لا يعمل وهذا ما احاول اعرفة حتي يعمل الملف علي كل الاصدارات

وشكرا لمرور حضرتك 

ارجو من خبراء المنتدي افادتنا عن السبب حتي لا تقف الاعمال عند اصدار معين 

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