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

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

قام بنشر

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

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

اريد تعديل هذا الكود بحيث اذا لم يجد بيانات في العمود B10:B20 لا يقوم بترحيل اي صفوف فارغة ولا يفعل اي شيء 

لان عند الضغط عليه يقوم بترحيل صفوف فارغه 

Sub SSheet()
Dim ws As Worksheet, Data As Worksheet, ShName As String
Dim LR As Long, ER As Long, x As Integer
Set Data = Sheets("المدخلات")
ShName = Data.Range("C2").Text
ER = Data.Range("B" & Rows.Count).End(3).Row
x = ER - 7
For Each ws In Worksheets
If ws.Name = ShName Then
LR = ws.Range("B" & Rows.Count).End(3).Row
ws.Name = ShName
ws.Range("B" & LR + 1).Resize(x, 11) = Data.Range("B10").Resize(x, 11).Value
End If
Next
End Sub

 

قام بنشر (معدل)

تفضل اخي 

Sub SSheet_2()
Dim ws As Worksheet, Data As Worksheet, ShName As String
Dim LR As Long, ER As Long, x As Integer
Set Data = Sheets("المدخلات")
Dim rng As Range
ShName = Data.Range("C2").Text
ER = Data.Range("B" & Rows.Count).End(3).Row
x = ER - 7
Dim Plage As Range
Dim i As Byte
With Data
    Set Plage = Union(.Range("b10:b20"), .Range("b20"))
    For i = 1 To Plage.Count
        If Plage(i) = "" Then MsgBox ("يرجى ملا الخلية " & Plage(i).Address): Exit Sub
    Next
End With

For Each ws In Worksheets
If ws.Name = ShName Then
LR = ws.Range("B" & Rows.Count).End(3).Row
ws.Name = ShName
ws.Range("B" & LR + 1).Resize(x, 11) = Data.Range("B10").Resize(x, 11).Value
End If
Next
End Sub

 

test.xlsm

تم تعديل بواسطه Mohamed Hicham
  • Like 2
  • أفضل إجابة
قام بنشر
20 دقائق مضت, محمد عبد الناصر said:
21 دقائق مضت, محمد عبد الناصر said:

اذا امكن ان تكتبها داخل الكود بالاعلى 
جزاك الله كل خير

 

اسمح لي استاذ @Mohamed Hicham بالمشاركة مع حضرتك 

Sub SSheet()
Dim ws As Worksheet, Data As Worksheet, ShName As String
Dim LR As Long, ER As Long, x As Integer
Set Data = Sheets("المدخلات")
ShName = Data.Range("C2").Text
ER = Data.Range("B" & LR).End(xlUp).Row

If Not IsEmpty(Data.Range("B10:B20")) Then
    For x = 10 To ER
        If Data.Range("B" & x).Value = ShName Then
            Set ws = Sheets(Data.Range("C" & x).Value)
            '...rest of code
        End If
    Next x
End If
End Sub

 

  • Like 2
قام بنشر
42 دقائق مضت, Mohamed Hicham said:

تفضل اخي 

Sub SSheet_2()
Dim ws As Worksheet, Data As Worksheet, ShName As String
Dim LR As Long, ER As Long, x As Integer
Set Data = Sheets("المدخلات")
Dim rng As Range
ShName = Data.Range("C2").Text
ER = Data.Range("B" & Rows.Count).End(3).Row
x = ER - 7
Dim Plage As Range
Dim i As Byte
With Data
    Set Plage = Union(.Range("b10:b20"), .Range("b20"))
    For i = 1 To Plage.Count
        If Plage(i) = "" Then MsgBox ("يرجى ملا الخلية " & Plage(i).Address): Exit Sub
    Next
End With

For Each ws In Worksheets
If ws.Name = ShName Then
LR = ws.Range("B" & Rows.Count).End(3).Row
ws.Name = ShName
ws.Range("B" & LR + 1).Resize(x, 11) = Data.Range("B10").Resize(x, 11).Value
End If
Next
End Sub

 

test.xlsm 24.47 kB · 0 downlo

استاذي @Mohamed Hicham لم اجرب الكود لاني شغال من الهاتف المحمول اعذرني لو فيه خطأ 

  • Like 2
  • Thanks 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