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

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

قام بنشر

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

 

اتوجه بالشكر  لاعضاء المنتدى لما يقدموه من لنا من مساعده ، ولكن لى طلب اتمنى الافاده فيه ....

 

اريد تطبيق كود ماكرو به داله if   و vlookup على مجموعه من الخلايا وليست خليه واحده

 

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

 

ايضا كيفيه  التحكم فى عدد مرات ضغط المستخدم على زر ، بمعنى ان ينفذ الماكرو عند الضغط على الزر مرة واحده اما اذا تم الضغط مرة اخرى فلا يحدث شىء

 

 

book.rar

 

ولكم جزيل الشكر

 

قام بنشر
تطبيق الماكرو على اكثر من خليه
 
السلام عليكم
الأخت الفاضلة (عفوا لم أنتبه للإسم من قبل)
أولا الكود الموجود أصلا يمكن إختصاره بدلا من
Private Sub CommandButton1_Click()
With WorksheetFunction
If Sheets("Sheet1").Range("b2").Value >= .VLookup(Sheets("Sheet1").Range("a2"), Sheets("Sheet2").Range("d5:e10"), 2, False) Then


Sheets("Sheet1").Range("c2").Value = Sheets("Sheet1").Range("b2").Value - .VLookup(Sheets("Sheet1").Range("a2"), Sheets("Sheet2").Range("d5:e10"), 2, False)

Sheets("Sheet1").Range("b2").Value = .VLookup(Sheets("Sheet1").Range("a2"), Sheets("Sheet2").Range("d5:e10"), 2, False)

Else
Sheets("Sheet1").Range("c2").Value = 0
End If
End Sub
 
للكود التالي (لم أغير شيء ، نفس الأوامر)
 
Private Sub CommandButton1_Click()
x = WorksheetFunction.VLookup([a2], Sheet2.[d5:e10], 2, 0)
If [b2] >= x Then [c2] = [b2] - x: [b2] = x Else [c2] = 0
End Sub
 
ثانيا: إن كنت تعني تكرار ذلك علي باقي القيم في العمود A
فماعليك إلا جعل الأوامر السابقة في حلقة
وتغيير الخلايا الثابتة بعناوين متغيرة حسب الصف ، ليكون الكود هكذا
 
Private Sub CommandButton1_Click()
LR = [A9999].End(xlUp).Row
For r = 2 To LR
    x = WorksheetFunction.VLookup(Cells(r, 1), Sheet2.[d5:e10], 2, 0)
    If Cells(r, 2) >= x Then Cells(r, 3) = Cells(r, 2) - x: Cells(r, 2) = x Else Cells(r, 3) = 0
Next r
End Sub
قام بنشر

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

 

اولا شكرا جزيلا لحضرتك لاهتمامك ولتبسيط الكود وجعله الله فى ميزان حسناتك

 

 

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

Unable to get the vlookup property of the Worksheet function class

وهل يمكن عمل هذا الكود بداله if عاديه بدون ماكرو للتسهيل على المستخدم بدلا من الضغط على الزر

 

 

   
قام بنشر

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

 

لقد قمت بالبحث على النت ووجدت كود وطبقته ولم يظهر الخطأ 

Private Sub CommandButton3_Click()


LR = [A40].End(xlUp).Row

On Error Resume Next
Err.Clear
For r = 12 To LR
    x = WorksheetFunction.VLookup(Cells(r, 1), Sheets("ÇáãÎÒä").Range("a3:c550"), 3, 0)
    If Cells(r, 3) >= x Then Cells(r, 4) = Cells(r, 3) - x: Cells(r, 3) = x Else Cells(r, 4) = 0


                If Err.Number = 0 Then
                    'Handle found case
                Else
                    ' An error means not found handle here
                    Err.Clear
                End If
Next r
On Error GoTo 0
End Sub

ولكن عندى طلب اخر .... عندى زر يقوم بترحيل بيانات عمود معين من شيت لاخر 

 

عند الضغط على الزر اكثر من مرة يقوم بالترحيل فى كل مرة وهذا يغير النتيجه .... انا اريده ان يرحل مرة واحده فقط طالما لم يتم تغيير البيانات

 

فهل من الممكن ذلك ؟؟

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

السلام عليكم

 

 

ولكن عندى طلب اخر .... عندى زر يقوم بترحيل بيانات عمود معين من شيت لاخر 

 

عند الضغط على الزر اكثر من مرة يقوم بالترحيل فى كل مرة وهذا يغير النتيجه .... انا اريده ان يرحل مرة واحده فقط طالما لم يتم تغيير البيانات

 

فهل من الممكن ذلك ؟؟

 

الرجاء انشاء موضوع منفصل للطلب كي يسهل البحث للاعضاء

مع ارفاق مثال وبه الكود

والحل موجود ان شاء الله

  • Like 1

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