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

مساعدة في ترحيل قيم خلايا من ورقة الى اخرى


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

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

المطلوب في الملف

‫ترحيل2 - نسخة.xlsm

تم تعديل بواسطه عبدالفتاح محمد
اضافة تفصيل
رابط هذا التعليق
شارك

لا جاجة للحاقات التكراراية 

استبدل الكود بهذا

Option Explicit
Sub transferData()

Dim LR1 As Long
Dim LR2 As Long
Dim sh1 As Worksheet: Set sh1 = Sheets("ورقة1")
Dim sh2 As Worksheet: Set sh2 = Sheets("ورقة2")

LR1 = sh1.Range("A" & Rows.Count).End(3).Row
LR2 = sh2.Range("A" & Rows.Count).End(3).Row + 1
 If LR2 = 2 Then LR2 = 1
 sh1.Cells(1, 1).Resize(LR1, 4).Copy
 
 With sh2.Cells(LR2, 1)
 .PasteSpecial 12
 .PasteSpecial -4122
 End With
Application.CutCopyMode = False
End Sub

الملف مرفق

 

TARHIL_SALIM.xlsm

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

عندي استفسار اخير  عندما يتم الترحيل خصوصا بالفاتورة يتم ترحيل الارقام المتسلسلة 1و2و3 ويتاجاهل الفارغة في الكود الاول اما كودك  فلا  هل من حل بحيث يتم ترحيل  الفاتورة التي تحتوي  على ارقام متسلسلة  فقط وتجاهل الصفوف التي لا تحتوي على ارقام تسلسلية 

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

تم معالجة الامر

Option Explicit
Sub transferData_New()

Dim LR1 As Long
Dim LR2 As Long
Dim sh1 As Worksheet: Set sh1 = Sheets("ورقة1")
Dim sh2 As Worksheet: Set sh2 = Sheets("ورقة2")
Dim x%
LR1 = sh1.Range("A" & Rows.Count).End(3).Row
LR2 = sh2.Range("A" & Rows.Count).End(3).Row + 1

 If LR2 = 2 Then LR2 = 1

 x = sh1.Range("a1:D" & LR1). _
 Find("", after:=sh1.Cells(13, 1)).Row - 1
 
 sh1.Cells(1, 1).Resize(x, 4).Copy
 
  With sh2.Cells(LR2, 1)
 .PasteSpecial 12
 .PasteSpecial -4122
 End With
 sh1.Cells(LR1, 1).Resize(, 4).Copy
  
  With sh2.Cells(x + 1, 1)
 .PasteSpecial 12
 .PasteSpecial -4122
 .Cells(x - 15, 4).Value = _
  sh1.Cells(x + 1, 4).Value
 End With

Application.CutCopyMode = False
End Sub

 

 

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

48 دقائق مضت, عبدالفتاح محمد said:

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

ورد خطأ بسيط في الكود (سطر زيادة )

 الكود من جديد

Option Explicit
Sub transferData_New()

Dim LR1 As Long
Dim LR2 As Long
Dim sh1 As Worksheet: Set sh1 = Sheets("ورقة1")
Dim sh2 As Worksheet: Set sh2 = Sheets("ورقة2")
Dim x%
LR1 = sh1.Range("A" & Rows.Count).End(3).Row
LR2 = sh2.Range("A" & Rows.Count).End(3).Row + 1

 If LR2 = 2 Then LR2 = 1

 x = sh1.Range("a1:D" & LR1). _
 Find("", after:=sh1.Cells(13, 1)).Row - 1
 
 sh1.Cells(1, 1).Resize(x, 4).Copy
 
  With sh2.Cells(LR2, 1)
 .PasteSpecial 12
 .PasteSpecial -4122
 End With
 sh1.Cells(LR1, 1).Resize(, 4).Copy
  
  With sh2.Cells(x + 1, 1)
 .PasteSpecial 12
 .PasteSpecial -4122
Rem .Cells(x - 15, 4).Value = _
  sh1.Cells(x + 1, 4).Value
 End With

Application.CutCopyMode = False
End Sub

 

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

هنا عندي مشكلتين لا يتم الترحيل كالسابق  تظهر لي رسالة هل تريد استبدال البيانات  عند الضغط نعم تظهر لي خطا في الكود  وبعدها يتوقف عن ترحيل اي عملية ارفق لك الملفات 

بدون عنوان.jpg

1بدون عنوان.jpg

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

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