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

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

قام بنشر

السلام عليكم ، حصلت على كود من المنتدى ، ترحيل البيانات

ممكن معالجة كود ترحيل البيانات حسب اسم المخزن 

مع اضافة كود مسح الشيتات المرحلة لانه تضاف بين فترة وفترة بيانات جديدة ومخازن جديدة

جزيتم خيرا

ترحيل البيانات حسب اسم المخزن مع مسح البيانات المرحلة في حالة وجود بيانات جديدة.xlsm

  • أفضل إجابة
قام بنشر

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

لم استوعب الطلب جيدا لاكن على العموم تفضل جرب ووافينا بالنتيجة

 

Sub Unique_Stores()
 
    Dim rng         As Range, cRng As Range
    Dim cell        As Range, Lastrow As Long
    Dim wsDest      As Variant, s As String
    Dim cUnique     As Collection
    

    Set WSData = ThisWorkbook.Sheets("aaa")
    'عمود الفلترة
    Set rng = WSData.Range("L2:L" & WSData.Cells(WSData.Rows.Count, "L").End(xlUp).Row)
    Set cUnique = New Collection
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.CopyObjectsWithCells = False
    
    ' حدف الاوراق السابقة
    For Each ws In Sheets
       If ws.Name <> WSData.Name Then ws.Delete
    Next
    On Error Resume Next
    For Each cell In rng.Cells
        cUnique.Add cell.Value, CStr(cell.Value)
        
    Next cell
    On Error GoTo 0
    ' انشاء اوراق جديدة
    For Each wsDest In cUnique
        s = wsDest
        Sheets.Add(After:=Sheets(Sheets.Count)).Name = wsDest
        ActiveSheet.DisplayRightToLeft = True

With WSData

    Lastrow = .Cells(.Rows.Count, "L").End(xlUp).Row
     .Range("A2").AutoFilter field:=12, Criteria1:=wsDest
 ' النطاق المنسوخ
Set cRng = .Range("A1:S" & Lastrow)
 cRng.Copy Sheets(s).Range("A2")
.Select
.[A2].AutoFilter
    
        End With
        
    Next wsDest
    
'''''''''تنسيق الاوراق الجديدة '''''''

For Each wsCopy In ThisWorkbook.Worksheets
If wsCopy.Name <> WSData.Name Then
'خلية اسم المخزن
Set rng = wsCopy.[G1]
 rng = "المخزن" & "" & wsCopy.Name
 
With rng
 .Font.Name = "Algerian": .Font.Size = 20: .Font.Color = vbBlue
End With

' تنسيق الاعمدة
For i = 1 To 19
wsCopy.Columns(i).ColumnWidth = WSData.Columns(i).ColumnWidth
wsCopy.Rows(i).RowHeight = WSData.Rows(i).RowHeight

' التحقق من خطأ تنسيق الخلايا
Application.ErrorCheckingOptions.BackgroundChecking = False

Next
'**************************************************
' لتسمية الاوراق باسم المخزن قم بتفعيل السطر التالي

' wsCopy.Name = rng

'*************************************************
    End If
         
Next wsCopy
   
WSData.Activate

Application.ScreenUpdating = True
Application.CopyObjectsWithCells = True
End Sub

 

ترحيل البيانات حسب اسم المخزن.xlsb

  • Like 2

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