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

مساعدة في ترحيل البيانات المسجلة في الخلايا واستثناء الخلايا الفارغة عن طريق فيجول بيسك


إذهب إلى أفضل إجابة Solved by سليم حاصبيا,

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

مرحبا بالجميع

لدي بيانات تم إنشاء قائمة منسدلة بالطلبات في كل خلية في عمود الصنف، بحيث يتم ترحيلها إلى ورقة عمل أخرى. عند الضغط على مربع (ترحيل)

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

مرفق ملف الأكسل 

عدم ترحيل البيانات الفارغة.xlsm

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

جرب هذا الماكرو

Sub MoveDataTOTable()
Dim endrow%, n%, MAX_RO%, K%
Dim M As Worksheet, D As Worksheet

Set M = Sheets("Main")
Set D = Sheets("DB")
 endrow = 1
 MAX_RO = M.Range("B9").CurrentRegion.Rows.Count
 D.Range("A1").CurrentRegion.Offset(1).ClearContents
If MAX_RO = 1 Then Exit Sub
 For K = 10 To MAX_RO + 10
If M.Cells(K, 2) <> "" Then
 n = n + 1
 D.Cells(endrow + 1, 4).Resize(, 4).Value = _
 M.Cells(K, 2).Resize(, 4).Value
 endrow = endrow + 1
 End If
Next
If n Then
With D.Cells(2, 2).Resize(n)
 .Value = M.Range("C6")
 .Offset(, 1) = M.Range("C7")
 .Offset(, -1) = Evaluate("Row(1:" & n & ")")
End With

D.Cells(2 + n, 5) = "TOTAL"
D.Cells(2 + n, 7).Formula = _
  "=SUM(G2:G" & n + 1 & ")"
  End If
End Sub

الملف مرفق

KOUL.xlsm

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

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

 حبذا لو أمكن اضافة البيانات السابقة مع البيانات الجديدة وعدم الحذف أو اسبتدالها، اضافة إلى ذلك ترحيل الملاحظات كما في المثال الذي ارفقته في مشاركتي الأولى.

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

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

  • أفضل إجابة

تم التعديل كما تريد

Option Explicit
Sub Data_Without_Empty()
Dim endrow%, n%, MAX_RO%, K%
Dim M As Worksheet, D As Worksheet
Dim Fixed_row%, New_ro%
Set M = Sheets("Main")
Set D = Sheets("DB")
 endrow = D.Cells(Rows.Count, "E").End(3).Row

 Fixed_row = endrow + 1

 MAX_RO = M.Range("B9").CurrentRegion.Rows.Count

If MAX_RO = 1 Then Exit Sub
 For K = 10 To MAX_RO + 7
If M.Cells(K, 2) <> "" Then
 n = n + 1
 D.Cells(endrow + 1, 5).Resize(, 4).Value = _
 M.Cells(K, 2).Resize(, 4).Value
 endrow = endrow + 1
 End If
Next
If n Then
With D.Cells(Fixed_row, 3).Resize(n)
 .Value = M.Range("C6")
 .Offset(, 1) = M.Range("C7")
 .Offset(, 6) = M.Range("C25")
 .Offset(, -1) = Evaluate("Row(1:" & n & ")")
End With

D.Cells(n + Fixed_row, 5) = "TOTAL"
D.Cells(n + Fixed_row, 8).Formula = _
  "=SUM(H" & Fixed_row & ":H" & Fixed_row + n - 1 & ")"
 New_ro = D.Cells(Rows.Count, 2).End(3).Row
 D.Cells(2, 1).Resize(New_ro - 1).Formula = _
 "=IF(B2="""","""",MAX($A$1:A1)+1)"
 D.Cells(1, 1).CurrentRegion.Value = _
 D.Cells(1, 1).CurrentRegion.Value
  End If
End Sub

الملف من جديد

KOUL _1.xlsm

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

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