Note: The other languages of the website are Google-translated. Back to English

 كيفية تشغيل الماكرو بناءً على قيمة الخلية في Excel؟

لنفترض أن لدي أكواد ماكرو متعددة في المصنف الخاص بي ، والآن ، أريد تشغيل هذه الرموز بناءً على قيمة الخلية. في هذه المقالة سوف أتحدث عن عدة مواقف قد تتعرض لها في عملك اليومي عند استخدام برنامج Excel.

قم بتشغيل الماكرو أو تشغيله إذا كانت قيمة الخلية أكبر أو أقل من قيمة معينة برمز VBA

قم بتشغيل الماكرو أو تشغيله إذا كانت قيمة الخلية تساوي نصًا محددًا برمز VBA


السهم الأزرق الحق فقاعة قم بتشغيل الماكرو أو تشغيله إذا كانت قيمة الخلية أكبر أو أقل من قيمة معينة برمز VBA

على سبيل المثال ، إذا كانت القيمة في الخلية A1 بين 10 و 50 ، فقم بتشغيل الماكرو 1 ، وإذا كانت القيمة أكبر من 50 ، فقم بتشغيل الماكرو 2. لحل هذه الوظيفة في Excel ، يرجى تطبيق رمز VBA التالي.

1. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة التي تريد تنفيذ الماكرو استنادًا إلى قيمة الخلية ، ثم اختر عرض الرمز من قائمة السياق ، وفتح Microsoft Visual Basic للتطبيقات نافذة ، انسخ والصق الكود التالي في الوحدة النمطية الفارغة:

كود فبا: قم بتشغيل الماكرو إذا كانت قيمة الخلية أكبر أو أقل من:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
    End If
End Sub

doc قم بتشغيل الماكرو بناءً على قيمة الخلية 1

ملاحظة: في الكود أعلاه:

A1 هي الخلية التي تحتوي على القيمة المحددة التي تريد تشغيل الماكرو بناءً عليها ؛

الحالة من 10 إلى 50: ماكرو 1: يعني إذا كانت القيمة بين 10 و 50 ، قم بتشغيل Macro1 ؛

الحالة> 50: ماكرو 2: يعني إذا كانت القيمة أكبر من 50 ، قم بتشغيل Macro2.

يرجى تغيير أسماء ومعايير وحدات الماكرو هذه حسب حاجتك ، ويمكنك أيضًا إضافة المزيد من المعايير التالية الإطار النصي.

2. ثم احفظ وأغلق نافذة الكود هذه ، الآن ، عندما تكون القيمة التي تدخلها بين 10 و 50 في الخلية A1 ، سيتم تشغيل Macro1 ، إذا كانت القيمة المدخلة أكبر من 50 ، فسيتم تنفيذ Macro2.


السهم الأزرق الحق فقاعة قم بتشغيل الماكرو أو تشغيله إذا كانت قيمة الخلية تساوي نصًا محددًا برمز VBA

إذا كنت ترغب في تشغيل الماكرو استنادًا إلى نص معين في خلية ، على سبيل المثال ، لتشغيل الماكرو 1 إذا تم إدخال النص "حذف" وتشغيل الماكرو 2 إذا تمت كتابة النص "إدراج". الكود التالي يمكن أن يقدم لك خدمة.

1. انقر بزر الماوس الأيمن فوق الورقة التي تريد تنفيذ الماكرو بناءً على قيمة الخلية ، ثم اختر عرض الرمز من قائمة السياق ، وفتح Microsoft Visual Basic للتطبيقات نافذة ، انسخ والصق الكود التالي في الوحدة النمطية الفارغة:

كود فبا: قم بتشغيل الماكرو إذا كانت قيمة الخلية نصًا محددًا

Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "Delete" Then
 Call Macro1
End If
If target.Value = "Insert" Then
Call Macro2
End If
End Sub 

doc قم بتشغيل الماكرو بناءً على قيمة الخلية 2

ملاحظة: في الكود أعلاه ، "حذف"و"إدراج"هي نصوص الخلية التي تريد تشغيل وحدات الماكرو بناءً عليها ، و Macro1 و Macro2 هي وحدات الماكرو التي تريد تنفيذها بناءً على النص. يرجى تغييرها حسب حاجتك.

2. ثم احفظ هذا الرمز وأغلق النافذة ، الآن ، عند إدخال النص "حذف" في الخلية A1 ، يتم تشغيل الماكرو 1 ، وإذا تم إدخال النص "إدراج" ، فسيتم تنفيذ الماكرو 2.


مقالات ذات صلة:

كيفية تشغيل الماكرو عندما تتغير قيمة الخلية في إكسيل؟

كيفية تشغيل الماكرو تلقائيًا قبل الطباعة في Excel؟

كيفية تشغيل الماكرو بناءً على القيمة المحددة من القائمة المنسدلة في Excel؟

كيفية تشغيل الماكرو بالنقر فوق الارتباطات التشعبية في Excel؟

كيف يتم تشغيل الماكرو عند تحديد الورقة من مصنف؟


أفضل أدوات إنتاجية المكتب

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2021 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (19)
تقييم شنومك من شنومكس · تصنيفات 1
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، ماذا لو كنت تريد تشغيل ماكرو يعتمد على خليتين؟ خلية واحدة تستند إلى النص والخلية الأخرى تحتوي على قيم عددية؟ ثم قد ترغب في استدعاء ماكرو إذا كانت الخليتان تعرضان بالضبط ما تريده ، مثل "YES" للخلية الأولى و 1 للخلية الثانية ، إذا لم يكن هناك مربع منبثق سيظهر عبارة "Not Found".
تم تصغير هذا التعليق بواسطة المشرف على الموقع
المتطلبات:
بناء على الاختيار
ستكون هناك قائمة منسدلة للخصائص الثلاثة التالية من نفس البعد على النحو التالي.
وستكون هناك ثلاث خلايا مشتقة والتي سيتم اشتقاقها من الخلايا (G46 و G47 و G48)

السيناريو:
إذا قمت بتحديد قيمة من القائمة المنسدلة لمركز التكلفة ، فيجب ملء الخلية المشتقة من مركز التكلفة (K46) بالقيمة المحددة من القائمة المنسدلة لمركز التكلفة (H46) ويجب أن تصبح الخليتان المشتقتان الأخريان (K47 و k48) فارغتين.

وبالمثل ، إذا حددت قيمة من القائمة المنسدلة لمدير الميزانية ، فيجب ملء الخلية المشتقة من مدير الميزانية بالقيمة المحددة من القائمة المنسدلة لمدير الميزانية (H47) ويجب أن تصبح الخليتان المشتقتان الأخريان (K45 و k48) فارغتين.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أنا أعمل مع تحليل النتائج. في هذه الحالة ، ستكون البيانات الموجودة في Excel مثل هذا الاسم ، الاسم الفرعي ، Crade. الآن ، أريد العثور على جميع أرقام المرور أو المرشحين الناجحين من النتيجة. كيف يمكنني الحصول عليه. لأن لدي 6 مواضيع مختلفة ونتائجهم في ورقة إكسل واحدة. إذا رسب الطالب في مادة واحدة فهو لا يكون طالباً ناجحاً. كيف تزيل اسمهم في جميع المواد.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يرجى تصحيح الكود لنفس ورقة العمل.
الكود الأول يعمل بشكل مثالي
ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
إذا لم يتقاطع (الهدف ، النطاق ("D1")) لا شيء إذن
حدد نطاق الحالة ("D1")
الحالة "0.5": نصف
الحالة "1": واحد
الحالة "1.25": OneTwentyFive
إنهاء اختر
إنهاء حالة
نهاية الفرعية

الرمز الثاني لا يعمل (الرجاء تصحيح ما يلي)
تغيير فرعي خاص (استهداف ByVal كنطاق)
إذا لم يتقاطع (الهدف ، النطاق ("D2")) لا شيء إذن
حدد نطاق الحالة ("D2")
الحالة "9.53": تسع وثلاث نقاط
إنهاء اختر
إنهاء حالة
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Olá، quero fazer o seguinte:
Na Celula A1، assim que ela estiver preenchida passe para a celula de baixo، no caso A2.
Eu uso um leitor de barras para cadastrar produtos، e ele lê os numeros automaticos، ai tenho que ficar apertando ENTER para ir para celula de baixo.

شكرا لك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Hola، una Consulta، como se haría si por ejemplo dado un numero se pueda ejecutar las dos macros
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا غوستافو
لحل مشكلتك ، يرجى تطبيق الكود التالي:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        If Target.Value > 10 And Target.Value < 50 Then
         macro1
         macro2
        End If
    End If
End Sub

من فضلك حاول ، آمل أن يساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
je souhaiterais appliquer cette cette code à mon code. Le problème est que la cellule s'incrémente via une toupie et le code ne recnais pas le changement de valeur de la cellule.
Quand je saisie la valeur manuellement celà fonctionne التصحيح.

ميرسي دي AVANCE
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا جيلز
يجب عليك إدخال ملف زر الدوران (عنصر تحكم ActiveX) أولا ، ثم الحق clcik ذلك ، اختر عرض الكود، ثم انسخ الكود أدناه والصقه بين البرامج النصية الموجودة ،
Dim xWSh As Worksheet
Dim xOL As OLEObject
Dim xRg As Range
Set xWSh = Application.ActiveSheet
Set xOL = xWSh.OLEObjects("SpinButton1") 'The name of the spin button
Set xRg = xWSh.Range(xOL.LinkedCell)
If IsNumeric(xRg) And xRg.Address = "$A$1" Then
        Select Case xRg.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
End If

https://www.extendoffice.com/images/stories/comments/comment-skyyang/DOC-RUN-CODE.png

من فضلك حاول ، آمل أن يساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا!

أنا جديد جدًا على VBA وقد جربت هذا الحل للحصول على ورقة Excel لدي. لدي فقط قائمة طويلة في Excel ، حيث يجب أن تكتب نعم أو لا في العمود T ، وأريد ذلك ، إذا كتبت نعم ، قم بتشغيل ماكرو ... لقد جربت الكثير من الطرق المختلفة لتحديد النطاق ولكن لا شيء يعمل.

تغيير ورقة العمل الفرعية (الهدف ByVal كنطاق)

تعيين الهدف = المدى ("T: T")
If target.Value = "Yes" إذن
اتصل بماكرو 1
إنهاء حالة

نهاية الفرعية

أسلط الضوء على هذه المشكلة (خطأ وقت التشغيل - عدم تطابق النوع): If target.Value = "Yes" ثم

يمكن لأي شخص أن يساعد؟

مع أطيب التحيات ، إيزابيلا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، Westergaard
قد يكون رمز VBA التالي يمكن أن يساعدك: (ملاحظة: الرجاء تغيير اسم ملف Macro1 إلى الاسم الرمزي الخاص بك)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("T:T")) Is Nothing Then
If Target.Value = "Yes" Then
      Call Macro1
    End If
    End If
End Sub

من فضلك حاول ، آمل أن يساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا لك! يعمل الآن :)
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
كيفية تعديل قاعدة التعليمات البرمجية هذه في نتيجة حساب صيغة الخلية A1
Worksheet_Calculate الفرعية ()
الرجاء المساعدة

تغيير ورقة العمل الفرعية الخاصة (ByVal Target As Excel.Range)
إذا كان Target.Cells.Count> 1 ثم اخرج من Sub
If IsNumeric (Target) And Target.Address = "$ A $ 1" إذن
حدد حالة الهدف
الحالة من 10 إلى 50: ماكرو 1
الحالة> 50: ماكرو 2
إنهاء اختر
إنهاء حالة
نهاية الفرعية
تقييم شنومك من شنومكس
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا FG ،
لجعل الكود يعمل في خلايا الصيغة ، يرجى تطبيق الكود أدناه:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: macro1
        Case Is > 50: macro2
        End Select
    ElseIf (Not Intersect(Range("$A$1"), Target.Dependents) Is Nothing) Then
        Set Rg = Intersect(Range("$A$1"), Target.Dependents)(1)
        Select Case Rg.Value
        Case 10 To 50: macro1
        Case Is > 50: macro2
        End Select
    End If
End Sub

يرجى المحاولة ، آمل أن يساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Ciao skyyang. Spero tu Posa aiutarmi. Ho un programmino in vba che basandosi su variazioni di prezzo di una cella (E1)، collegata in DDE con una piattaforma di trading di borsa، fissa i prezzi: Massimo، Minimo، Apertura، Chiusura، per poi passare alla riga Successiva in base a un interallo temporale impostato all'apertura del foglio elettronico. L'algoritmo da me sviluppato fa si che nelle Colonne: "BH" e "BI" vengano visualizzati i prezzi di accisto e di vendita، ma solo soddisfatte le condizioni date، altrimenti le restituiscono nessun valore. Quello di cui avrei bisogno è di un avviso sonoro .wav che mi avvisi quando viene restituito un valore، di accisto o di vendita، in modo di non dover fissare lo schermo per 14 ore al giorno. Ho provato a inserire un codice "SoundMe ()" trovato on-line، ma suona ogni volta che c'è un nuovo massimo o un nuovo minimo nella riga in cui il programma sta aggiornando i prezzi. Pensi che il problema si puta risolvere؟ جراتسي لكل لاتينزيوني
ستيفن
تم تصغير هذا التعليق بواسطة المشرف على الموقع
صباح الخير،
ho provato il listato che permette di richiamare 2 macro al cambio del valore di una cella، se quel cambio deriva da una funzione "se" non funziona، se digito i valori (vero o falso) funziona.

تعال posso ovviare؟
في نهاية المطاف ، يمكنك الحصول على إمكانية الاستفادة من استخدام هذه الميزة حتى الآن ويمكن التحقق منها حتى الآن.

grazie
تم تصغير هذا التعليق بواسطة المشرف على الموقع
صباح الخير،
يمكنك الحصول على بيانات ماكرو في حالة عدم وجود أرقام.

Ad esempio se nella cella A1 inserisco: If (B2 = 0؛ vero؛ falso) e la macro leggendo vero mi nasconde lo sheet2 altrimenti mi scopre la sheet 2.

كيف أفعل؟
Riesco a far funzionare il tutto se inserisco in A1 manualmente un valore (in Questo caso vero o falso).

Grazie
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا كارلو
في الواقع ، يمكن أن يحل الكود الثاني في هذه المقالة مشكلتك.
ملاحظة: تحتاج فقط إلى تغيير النص إلى True and False في الكود ، وتغيير اسم الرمز إلى اسمك الخاص.
Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "True" Then
 Call Macro1
End If
If target.Value = "False" Then
Call Macro2
End If
End Sub 


يرجى المحاولة مرة أخرى ، شكرا لك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

ich bräuchte dafür ein Makro ،

وفاة ich kann مشكلة nicht

في M1 steht die Zahl 5، jetzt soll der Bereich von A83 bis A683 auf die Zahl 5 geprüft werden، sollte zB A111 die Zahl 5 enthalten، dann soll C111 + 1 (wenn in C111 23 steht dann soll da 24 stehen). Genau so wenn في A444 eine 5 steht ، dann soll C444 + 1 (wenn C444 = 99 dann 100).
Immer wenn der Wert mit M1 übereinstimmt، dann soll diese Zelle in Spalte C immer wieder + 1 zählen. أيضًا 23 +1 dann 24 + 1 dann 25 +1 usw usw.


Vielleicht kann mir da jemand helfen،

شكرا مقدما.

إل جي ستفان
لا توجد تعليقات منشورة هنا حتى الآن
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

حقوق التأليف والنشر © 2009 - شبكة الاتصالات العالمية.extendoffice.com. | كل الحقوق محفوظة. مشغل بواسطة ExtendOffice. | | خريطة الموقع
Microsoft وشعار Office هما علامتان تجاريتان أو علامتان تجاريتان مسجلتان لشركة Microsoft Corporation في الولايات المتحدة و / أو دول أخرى.
محمي بواسطة Sectigo SSL