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

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

  • نبا زيد changed the title to اضافة فقرة في الكود (عمل ترقيم بعد عملية الضغط على الزر)
  • 2 weeks later...
قام بنشر

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

ارجو ان يكون المطلوب

كود الترقيم 

Sub NumberRows()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    
 
    Set ws = ThisWorkbook.Sheets("ورقة1")
    
 
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    
    
    For i = 2 To lastRow
        ws.Cells(i, "A").Value = i - 1
    Next i
End Sub

كود التصفيه بعد التعديل 

Sub DeleteRows()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim deleteCount As Long
    Dim response As VbMsgBoxResult
    
    Set ws = ThisWorkbook.Sheets("ورقة1")
    
    ' تحديث العمود الذي يتم حساب آخر صف فيه من A إلى B
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    deleteCount = 0
   
    response = MsgBox("هل أنت متأكد أنك تريد حذف  من استلمو الاول والثاني", vbYesNo + vbQuestion, "تأكيد الحذف")
    
    If response = vbYes Then
        ' بدأ من الصف الأخير حتى الصف 3 كما في الكود الأصلي
        For i = lastRow To 3 Step -1
            ' العمل على العمود B و C للتحقق من وجود القيم قبل حذف الصف
            If ws.Cells(i, 2).Value <> "" And ws.Cells(i, 3).Value <> "" Then
                ws.Rows(i).Delete
                deleteCount = deleteCount + 1
             End If
        Next i
        MsgBox deleteCount & " صفوف تم حذفها.", vbInformation, "عملية الحذف"
    Else
        MsgBox "تم إلغاء عملية الحذف.", vbInformation, "إلغاء"
    End If


    ' تنسيق النصوص في النطاق B1:D50 بدلاً من A1:D50
    With ws.Range("B1:D50").Font ' تغيير النطاق ليشمل العمود B بدلاً من A
        .Name = "Arial"
        .Size = 16
        .Bold = True
        .Color = RGB(0, 0, 251) ' الأزرق
    End With

    ' إعداد الهوامش للطباعة
    With ActiveSheet.PageSetup
        .TopMargin = Application.InchesToPoints(0.5)
        .BottomMargin = Application.InchesToPoints(0.5)
        .LeftMargin = Application.InchesToPoints(0.5)
        .RightMargin = Application.InchesToPoints(0.5)
    End With

    ' كتابة التاريخ في العمود B (تم تحديثه من العمود A)
    ws.Range("B1").Value = Date - 1
    ws.Range("B1").NumberFormat = "dd/mm/yyyy"
    
    ' إزاحة التاريخ اليومي لكتابة اليوم في العمود A
    ws.Range("A1").Value = Format(Date - 1, "dddd")
NumberRows
End Sub

 

كود حذف وتنسيق وادراج (1).xlsm

  • Like 1
قام بنشر

السلام عليكم

اشكرك - جزيت خير 

اني كنت محتاج كود لعمل ترقيم بعد عملية الحذف ( حاليا الكود يقوم بحذف عمود الاسماء ويحل مكانها ترقيم ) ليس هذا هو اللي احتاجه

الكود اللي محتاجه للترقيم ( ادراج عمود للترقيم ودفع الاعمدة الموجودة لليسار 

ارجو ان وصلت النتيجة المطلوبة

 

مثال.xlsm

قام بنشر

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

 ممكن توضح لنا ما المانع من إظافة عمود التسلسل يدويا وإعادة تعديل الكود بما يتناسب مع شكل البيانات  ؟

11.png.cf9c1c8a1522e46b8d48cd59c7d7454a.png

اذا كان هذا يناسبك إليك الكود المعدل 

Sub DeleteRows()
    Dim WS As Worksheet, lastRow As Long, i As Long, OnRng As Range, response As VbMsgBoxResult

    Set WS = Sheets("ورقة1")
    lastRow = WS.Cells(WS.Rows.Count, "A").End(xlUp).Row
    response = MsgBox("هل أنت متأكد أنك تريد حذف من استلمو الاول والثاني ؟", vbYesNo + vbQuestion, "تأكيد الحذف")

    If response = vbYes Then
        For i = lastRow To 3 Step -1
            If WS.Cells(i, 3).Value <> "" And WS.Cells(i, 4).Value <> "" Then
                If OnRng Is Nothing Then
                    Set OnRng = WS.Rows(i)
                Else
                    Set OnRng = Union(OnRng, WS.Rows(i))
                End If
            End If
        Next i

        If Not OnRng Is Nothing Then
            OnRng.Delete
            MsgBox OnRng.Count & " تم حذف الصفوف بنجاح", vbInformation, "عملية الحذف"
        Else
            MsgBox "لا توجد صفوف مطابقة للحذف", vbExclamation, "لم يتم الحذف"
        End If
    Else
        MsgBox "تم إلغاء عملية الحذف", vbInformation, "إلغاء"
        Exit Sub
    End If

        With WS.Range("A1:E50").Font
            .Name = "Arial": .Size = 16: .Bold = True: .Color = RGB(0, 0, 251)
        End With
        
        For i = 3 To WS.Cells(WS.Rows.Count, "B").End(xlUp).Row
            WS.Cells(i, 1).Value = i - 2
        Next i
        
        With WS.PageSetup
            .TopMargin = .BottomMargin = .LeftMargin = .RightMargin = Application.InchesToPoints(0.5)
        End With

    WS.[C1].Value = Date - 1: WS.[C1].NumberFormat = "dd/mm/yyyy"
    WS.[B1].Value = Format(Date - 1, "dddd")
    Application.ScreenUpdating = True
End Sub

 

مثال1.xlsm

  • Like 3

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