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

استدعاء بيانات من ملف اخر مع تجاهل التكرار وتكرار تاريخ


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

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

أود أن اشكر جميع القائمين على المنتدى 

وقد حاولت أن أجد حلول لكن تعذر البحث 

وقد وجدت جزء من المطلوب ( تصفية الاسماء )

المطلوب :

1- في ورقة المبيعات كود يقوم باعادة كتابة التاريخ في الخلايا الفارغة اسفل تاريخ معين بنفس التاريخ السابق 

2- جلب البيانات من ورقة المبيعلت في الملف الثاني والثالث وادراجها في مبيعات الملف الأول مع تجاهل المكرر 

3- في ورقة الاسماء من الملف الأول مطلوب ترتيب الاسماء أبجديا مع حذف المكرر لعمل قائمة منسدلة 

ويفضل خط كبير 

 

 

ملفات الاستدعاء.rar

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

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

كود المطلوب الأول ويمكن توظيفه بحسب رغبتك  ( وضعه في حدث الورقة أو عمل حلقة تكرارية من البداية للنهاية )

Sub dat()
Application.ScreenUpdating = False
On Error Resume Next
  رقم اخر صف يحتوي على تاريخ
    lr = [d10000].End(xlUp).Row
رقم اخر صف يحتوي على بيانات
    n_lr = [f10000].End(xlUp).Row
حلقة تكرارية تبداء     
    For X = lr To n_lr
اذا كان اخر خلية في العمود d
If Cells(n_lr, 4) = "" Then
قم بجعلى الخلية التالية تساوى الخلية السابقة في نفس العمود
Cells(lr + 1, 4) = Cells(lr, 4)
End If
قم بالنزول صف يلي صف التاريخ
lr = lr + 1
اعادة الحلقة التكرارية
Next

       
    
End Sub

 

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

Peace be upon you. You have to be more organized and specific in your explanation to the problem

Create a new workbook with `xlsm` extension in the same path of your files and name it `MAIN.xlsm`, then open the workbook

Press Alt + F11 to login VBE then insert a new module, put the following code

Sub Get_Data_From_Closed_Workbooks()
    Dim a, wb As Workbook, ws As Worksheet, sFile As String, sPath As String, lr As Long, m As Long
    Application.ScreenUpdating = False
        sPath = ThisWorkbook.Path & "\"
        sFile = Dir(sPath & "*.xlsx")
        m = 2
        With shSales.Range("B1").CurrentRegion.Offset(1)
            .ClearContents: .Borders.Value = 0
        End With
        Do While sFile <> ""
            Set wb = Workbooks.Open(sPath & sFile, ReadOnly:=True)
            Set ws = wb.Sheets(2)
            With ws
                lr = .Cells(Rows.Count, "E").End(xlUp).Row
                a = .Range("B2:H" & lr).Value
                .Parent.Close False
            End With
            shSales.Range("B" & m).Resize(UBound(a, 1), UBound(a, 2)).Value = a
            m = m + UBound(a, 1)
            sFile = Dir()
        Loop
        With shSales.Range("B2:H" & m - 1)
            .Borders.Value = 1
        End With
        With shSales.Range("D2:D" & m - 1)
            .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
            .Value = .Value
        End With
    Application.ScreenUpdating = True
    MsgBox "Done", 64
End Sub

 

 

I will attach the file just for you. Click on the icon in the quick access bar

 

image.png.caeb7f5e7eb6007feb43ff39939fd58b.png

MAIN.xlsm

تم تعديل بواسطه lionheart
  • Like 2
رابط هذا التعليق
شارك

الاستاذ ابو ايمان

جزاكم الله خيراً

وشكراً على الفكرة

الاستاذ قلب الأسد

شكرا على الكود الرائع الذي قدمته 

لكن عندي استفسار 

ما المقصود بان يتم الشرح اكثر تنظيما 

 

هل يمكن جلب البيانات من ملفات الاكسيل بامتدادات مختلفة مثلا ملفات امتداد xlsx

وملفات xlsm ( إذا صعب يمكن ان اقوم بتحويل الامتدادات) ولك وافر الشكر

لاحظت انه يتم جلب البيانات بكل سهولة اثناء غلق الملفات ولكن عندما تكون الملفات مفتوح يظهر رسائل تحذيرية

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

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

الاستاذ قلب الاسد lionheart

الكود يجلب البيانات إلى الملف main من الملفات الاخرى وهذا جيد 

لكن عند اضافة بيانات في main والملفات الاخرى وتنفيذ الكود مرة اخرى يتم حذف البيانات المضافة في main 

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

السلام عليكم

حتى يكون المطلوب اكثر وضوحا

في الملف main الصف ٣٨ الى الصف ٤٠ يحتوي على بيانات غير الموجودة في الثاني والثالث 

المطلوب عند استدعاء البيانات من الملفات الاخرى ان تظل البيانات الموجودة في main كما هي 

فقط يستدعي المختلف من الملف الثاني والثالث وهي البيانات المظللة باللون الازرق 

( يستدعي البيانات الجديدة والمختلفة من الملفات الاخرى وتوضع مع البيانات في main ولا يتم حذف ببانات main

New folder.rar

 

إذا فشلت في الشرح للمطلوب الرجاء الاشارة الى ذلك وسوف اقوم بالتصحيح

 

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

Not so clear for me

Here's the modified code that enables you to add new data without clearing the existing data

Sub Get_Data_From_Closed_Workbooks()
    Dim a, wb As Workbook, ws As Worksheet, sFile As String, sPath As String, lr As Long, m As Long
    Application.ScreenUpdating = False
        sPath = ThisWorkbook.Path & "\"
        sFile = Dir(sPath & "*.xlsx")
        m = shSales.Cells(Rows.Count, "E").End(xlUp).Row + 1
'        With shSales.Range("B1").CurrentRegion.Offset(1)
'            .ClearContents: .Borders.Value = 0
'        End With
        Do While sFile <> ""
            Set wb = Workbooks.Open(sPath & sFile, ReadOnly:=True)
            Set ws = wb.Sheets(2)
            With ws
                lr = .Cells(Rows.Count, "E").End(xlUp).Row
                a = .Range("B2:H" & lr).Value
                .Parent.Close False
            End With
            shSales.Range("B" & m).Resize(UBound(a, 1), UBound(a, 2)).Value = a
            m = m + UBound(a, 1)
            sFile = Dir()
        Loop
        With shSales.Range("B2:H" & m - 1)
            .Borders.Value = 1
        End With
        With shSales.Range("D2:D" & m - 1)
            .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
            .Value = .Value
        End With
    Application.ScreenUpdating = True
    MsgBox "Done", 64
End Sub

The point of duplicates is not clear at all

 

As for creating a shortcut icon, you can do that following the quick access bar

 

 

01.png

02.png

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

Retrieving data from the second and third files and deleting duplicate invoices. In other words, fetching blue-shaded data from the second and third files.
Provided that the data entered in the main file is preserved
shaded in yellow

In other words I need Just different data from second  and three

In other word i need keep old data

Without duplicated invoice

 

 

New folder.rar

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

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.

×
×
  • اضف...

Important Information