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

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

قام بنشر

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

الاخوة الأفاضل بارك الله فيكم جميعا على هذا الصرح العملاق الذي يعتبر والله موسوعة شاملة وكاملة لمن أراد السؤال او التعلم

فجزا الله القائمين من ( إدارة وخبراء ومختصين واعضاء ) على هذا العلم الذي نثروه بين أيدينا وان لا يحرمهم الله أجر ماقدموا

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

اخواني الأفاضل لدي ملف رئيسي ييقوم بإستيراد البيانات من ملفات أخرى داخل مجلد

والحقيقة أن الاخ أبو نصار ( Alidoors ) مأجورا مشكورا قد اجاب على تساؤلي حول استيراد البيانات من الملفات الأخرى إلى الملف الرئيسي

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

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

ارجوا من الله ثم منكم العن في هذا الأمر

ولكم مني كل الشكر والتقدير

Mine.rar

قام بنشر

السلام عليكم

تحايلنا بحذف الصفوف ذات القيمة صفر


Sub COPY_ALIDROOS()

On Error Resume Next

	    Dim W_ALI As Workbook, WB_ALI As Workbook, N_ALI$, CH_ALI$, SH_ALI As Worksheet

	    Dim T%, R%

	    Dim X As Range

	   ' Dim S_A

	  '  S_A = Union(SH_ALI.Range("A3:A" & R), SH_ALI.Range("E3:E" & R), SH_ALI.Range("F3:F" & R))

	    Application.ScreenUpdating = 0

	    '============================================

	    ' هنا تحط مسار مجلد الملفات التي تريد جلب بياناتها

	    CH_ALI = "C:\Mine\"

	    '============================================

	    N_ALI = Dir(CH_ALI & "\*.xlsx")

	    Set W_ALI = ThisWorkbook

	    Do While N_ALI <> ""

	    Set WB_ALI = Workbooks.Open(CH_ALI & "\" & N_ALI)

			    For Each SH_ALI In WB_ALI.Worksheets

			    R = SH_ALI.Cells(Rows.Count, 1).End(xlUp).Row

			    W_ALI.Activate

	    '============================================

	    '(A-E-F)هنا الاعمدة المراد جلب بياناتها هيا حسب طلبك هيا

	    ' إبتداء من السطر الثالث

	    If SH_ALI.Range("C3:C" & R).Value <> 0 Then

	    Union(SH_ALI.Range("A3:A" & R), SH_ALI.Range("E3:E" & R), SH_ALI.Range("F3:F" & R)).Copy

	    '============================================

			    T = Cells(Rows.Count, 1).End(xlUp).Row + 1

			    ThisWorkbook.Worksheets(1).Range("A" & T).PasteSpecial xlPasteValues

	    End If

			    Next SH_ALI

			    N_ALI = Dir

			    WB_ALI.Close 0

	    Loop

	    With ورقة1

	    For Each X In .Range("C3:C5000")

	    If X.Value = 0 Then

	    X.EntireRow.Delete

	    End If

	    Next X

	    End With

	    Application.ScreenUpdating = 1

End Sub

  • Like 1
قام بنشر

السلام عليكم

تم التعديل على كود ابو انصار حفظه الله

Sub COPY_ALIDROOS()

Dim W_ALI As Workbook, WB_ALI As Workbook

Dim N_ALI$, CH_ALI$

Dim SH_ALI As Worksheet

Dim T%, R%, co%

Application.ScreenUpdating = False

'============================================

' هنا تحط مسار مجلد الملفات التي تريد جلب بياناتها

CH_ALI = "C:\Mine\"

'CH_ALI = ThisWorkbook.Path & "\Mine\"

'============================================

N_ALI = Dir(CH_ALI & "\*.xlsx")

Set W_ALI = ThisWorkbook

Do While N_ALI <> ""

	Set WB_ALI = Workbooks.Open(CH_ALI & "\" & N_ALI)

	Set SH_ALI = WB_ALI.Worksheets(1)

	R = SH_ALI.Cells(Rows.Count, 1).End(xlUp).Row

	If R = 2 Then GoTo 1

	'============================================

	'(A-E-F)هنا الاعمدة المراد جلب بياناتها هيا حسب طلبك هيا

	' إبتداء من السطر الثالث

	Union(SH_ALI.Range("A3:A" & R), SH_ALI.Range("E3:E" & R), SH_ALI.Range("F3:F" & R)).Copy

	'============================================

	W_ALI.Activate

	With W_ALI.Worksheets(1)

		T = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

		.Range("A" & T).PasteSpecial xlPasteValues

		kh_Delete Selection

	End With

1:

	WB_ALI.Close 0

	N_ALI = Dir

Loop

Application.ScreenUpdating = True

Set W_ALI = Nothing: Set WB_ALI = Nothing: Set SH_ALI = Nothing

End Sub

Sub kh_Delete(Rng As Range)

Dim Col As Range, Rw%

With Rng

	For Rw = 1 To .Rows.Count

		If Val(.Cells(Rw, 2)) + Val(.Cells(Rw, 3)) = 0 Then

			If Col Is Nothing Then Set Col = .Rows(Rw) Else _

			Set Col = Union(Col, .Rows(Rw))

		End If

	Next

End With

If Not Col Is Nothing Then

	Col.Delete Shift:=xlUp

End If

End Sub

شاهد المرفق2007

MAIN.rar

  • Like 1
قام بنشر

جزاكم الله خيرا اخواني الأفاضل

الحقيقة هي أنكم مبدعون ولا نقف مع هذا الإبداع إلا بدعوة بظهر الغيب على ما تقدمونه

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

ملاحظة بسيطة ...

عند التعديل على اسماء الملفات تظهر رسالة خطأ ... ( لو تم تعديل اسماء ملفات البيانات A B C D E إلى اسماء اخرى تظهر رسالة الخطأ ..فهل من حل ..

قام بنشر

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

أخي الفاضل ابو نصار

الحقيقة أنه لا يوجد خطأ بل كان خطأي أنا والكود يعمل بكل جودة وكفاءة

سؤال بسيط اخي الفاضل

في الكود السابق تم تحديد جلب البيانات لبعض الأعمدة (A - E - F )

فإذا كان المطلوب جلب البيانات لعدد أكثر من الأعمدة مثلاً ( من العمود A وحتى العمود AM )

فكيف سيتم ذلك

لك شكري وتقديري

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