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

مشكلة خاصة بدالة INDIRECT


GOMAH_GOUDA

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

احتاج الى استخدام دالة INDIRECT و هى تجلب قيمة خلية بناء على عنوانها ولكن

المشكلة انها لا تعمل فى حالة ان الملف مغلق

و تحتاج الى فتح الملف المرتبط حتى تظهر نتيجة الصيغة

ارجو المساعدة فى حل هذه المشكلة ان امكن

رابط هذا التعليق
شارك

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

زادكم الله علما وجعلكم فى عون عباده دائما

اردت ان اوضح مطلوبى مرة اخرى اذ لم اجد رد واخشى ان يكون السؤال غير واضح

و ملخص الامر اننى لدى اكثر من 60 ملف منفصل فى مجلد معين و بكل ملف ما لا يقل عن 10 ورقات او أكثر ويوجد خلية فى كل ورقة اريد ان اربطها بملف تجميعى اى بحسبة بسيطةتكون الخلايا 600 خلية على الاقل و اريد ان ان الصق ارتباط بين كل خلية مطلوبة فى الملفات ال60 و بين ملف تجميعى

ولذا فكرت ان اجرب دالة INDIRECT لانها تقوم بذلك بسهولة ولكن و الملف المرتبط مفتوح اما اذا اغلق الملف فان الناتج يكون ٌREF# وعند فتح الملف المرتبط تزول المشكلة ولكن ليس من الممكن عمل ذلك مع الملفات ال60

لذا ارسلت اليكم طالبا منكم العون فى الامر و جزاكم الله خيرا دائما.

تم تعديل بواسطه GOMAH_GOUDA
رابط هذا التعليق
شارك

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

أخي الكريم إن الدالة INDIRECT لا تعمل إذا كانت تعني عناوين خلايا من ملفات غير مفتوحة وقد تفضلت وذكرت ذلك ولا بديل لذلك إلا بفتح الملفات... وفي هذه الحالة ينبغي تغييرها بدوال أخرى مثل VLOOKUP أو INDEX أو غيرهما ولكن عند فتح الملف الذي به هذه الدوال سيطالبك بالتحديث... والله أعلم

أخوك بن علية

رابط هذا التعليق
شارك

اخى الحبيب بن علية

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

خبرة بها ولكن المشكلة اننى اريد ان اشير الى الخلية المطلوب ايجادها كما وضحت فى الملف المرفق

ارجو الاطلاع عليه ان امكن .

Example Requird.rar

رابط هذا التعليق
شارك

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

أخي الكريم في الحقيقة لم أفهم المقصود من الملف الذي أرفقته ولكني قمت بالبحث على بديل لما تريده دون استعمال الدالة INDIRECT فوجدت هذا الكود في أحد المنتديات لدالة مستحدثة سميت ReadCell_ClosedFile ويمكن تغيير هذا الاسم (في الكود) بما تريده وإليك هذا الكود وفي الأسفل طريقة استعماله :

Function ReadCell_ClosedFile( _

        Chemin As String, _

        Fichier As String, _

        Feuille As String, _

        Cellule As Variant) As Variant


    Application.Volatile


    Dim Source As Object, Rst As Object, ADOCommand As Object

    Dim Cible As String


    Feuille = Feuille & "$"

    Cible = Cellule.Address(0, 0, xlA1, 0) & ":" & _

        Cellule.Address(0, 0, xlA1, 0)


    Set Source = CreateObject("ADODB.Connection")

    Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

        "Data Source=" & Chemin & "\" & Fichier & _

        ";Extended Properties=""Excel 8.0;HDR=No;"";"


    Set ADOCommand = CreateObject("ADODB.Command")

    With ADOCommand

        .ActiveConnection = Source

        .CommandText = "SELECT * FROM [" & Feuille & Cible & "]"

    End With


    Set Rst = CreateObject("ADODB.Recordset")

    '1 = adOpenKeyset, 3 = adLockOptimistic

    Rst.Open ADOCommand, , 1, 3

    Set Rst = Source.Execute("[" & Feuille & Cible & "]")


    ReadCell_ClosedFile = Rst(0).Value


    Rst.Close

    Source.Close

    Set Source = Nothing

    Set Rst = Nothing

    Set ADOCommand = Nothing

End Function
وطريقة الاستعمال تكون كما يلي:
=ReadCell_ClosedFile(a;b;c;d) 

حيث:

a : عنوان المجلد مثل : C:\Documents and Settings\333

b : اسم الملف (المغلق) مثل : TAX.xls أو Sal.xls أو غيره

c : اسم الورقة أو الشيت المعني في الملف المغلق مثل : Sheet1

d : عنوان الخلية المطلوبة مثل : A1 أو B5 أو ...

ملاحظة : الكود لم أجربه (كما وجدته وضعته لك)

وإن شاء الله يكون هذا حلا لمشاغلك...

أخوك بن علية

رابط هذا التعليق
شارك

السلام عليكم

استخدم الكود التالي:

Sub kh_Add_Formula()

On Error Resume Next

Dim Last As Integer

Dim R As Integer

Last = Range("A1000").End(xlUp).Row

Range("F2:F" & Last).ClearContents


For R = 2 To Last

If IsEmpty(Cells(R, "A")) Then GoTo 1

    Cells(R, "F").Value = "='" & Cells(R, "A") & Cells(R, "B") & "[" & Cells(R, "C") & "]" & Cells(R, "D") & "'!" & Cells(R, "E")

1

Next

On Error GoTo 0

End Sub

رابط هذا التعليق
شارك

اخى العزيز : بن علية

مشكور وجزاكم الله خير و جارى تجربة الكود

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

و الله عز وجل هو المرجو ان يجازيكم عنا وعن كل ما تقدموه فى منتدى اوفيسنا وعن كل منتفع من علمكم خير وزادكم الله علما

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information