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

طلب برمجة زر لإزالة فراغات معيبة


إذهب إلى أفضل إجابة Solved by hicham2610,

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

السلام عليكم

من فضلكم

أحتاج كود vba ليوضع في زر "طبع" ليطبع خلايا جدول بصيغة PDF إلى غاية آخر سطر به بيانات

مثلا الجدول في الجدول الأول : ليطبع من X9 إلى غاية آخر سطر به بيانات وفي هذه الحالةAA35 لأن مثل هذه الجداول تكون بياناتها متغيرة

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

ملف.xlsm

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

اتفضل استاذ / هشام

جرب الكود التالى إن شاء الله يفى بالغرض المطلوب

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

Sub MD_To_PDF()
Dim ws As Worksheet
Dim Fname As String
Dim lr       As Long
        Application.ScreenUpdating = False
        
             Set ws = ActiveSheet
lr = ws.Cells(Rows.Count, "X").End(xlUp).Row
'------------------------------------------------
    With ActiveSheet
              On Error Resume Next
              .Range("X9:AA" & lr).Select
            Fname = ThisWorkbook.Path & "\Exported " & ws.Name
            ws.Range("X9:AA" & lr).Select
        Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook _
        .Path & "\" & ActiveSheet.Range("z1").Value & ".pdf", Quality:=xlQualityStandard _
        , IncludeDocProperties:=True, IgnorePrintAreas:=False
    End With
'------------------------------------------------
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

 

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

السلام عليكم

جزاك الله خيرا وأحسن إليك

لكن لم ينجح معي 

هل ستظهر نافذة تطلب مكان حفظ الPDF لأنها لم تظهر معي؟

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

 

الجداول المراد طبعها PDF هي الجداول الأربعة التي فوقها:=0 ،   =1  ،   =2   ،  =3

قمنت بتعديل وحصلت على ملف لحفظ الجداول يحدث في مكان تواحد الملف لكن لم يكتمل بعد فالمرجو من الإخوة المساعدة على إتمامه بحيث تخرج رسالة هل يريد المستعمل طبع جداول مستقلة يعني كل جدول في ملف مستقل أم يريد طبعها مجتمعة في ملف واحد

Sub IMP_3()
If Not ActiveSheet.Name Like "ÊÑÇßíÈ*" Then Exit Sub 'sécurité
Dim chemin$, rep As Byte, a$, h&, i&
chemin = ThisWorkbook.Path & "\ãáÝ ÍÝÙ ÌÏÇæá ÇáÊÝííÁ\"

If Dir(chemin, vbDirectory) = "" Then MkDir chemin 'création du dossier
 
        MsgBox "åÔÇã: ÇáÓáÇã Úáíßã¡Êã ÅäÔÇÁ ãáÝ ÍÝÙ ÇáÌÏÇæá Ýí äÝÓ ãßÇä ÊæÇÌÏ ÇáÈÑäÇãÌ Åä áã íßä ãæÌæÏÇ ãÓÈÞÇÈÇÓã:ãáÝ ÍÝÙ ÌÏÇæá ÇáÊÝííÁ."

Application.ScreenUpdating = False
With ActiveSheet
    .PageSetup.Zoom = False
    .PageSetup.FitToPagesTall = 1 '1 page en hauteur, détermine le zoom
    If rep = 6 Then 'Oui
        a = .PageSetup.PrintArea
        h = .Range(a).Rows.Count
        .Copy 'nouveau document
        With ActiveSheet
            .PageSetup.PrintArea = ""
            For i = 1 To Val(.[N7] - 1)
                .Range(a).EntireRow.Offset(h * i - h).Copy .[A1].Offset(h * i)
                .[N5].Offset(h * i) = i + 1
                .HPageBreaks.Add Before:=.[A1].Offset(h * i) 'saut de page
            Next
            .PageSetup.PrintArea = .Range(a).Resize(h * i).Address
            .PageSetup.FitToPagesTall = i
            .ExportAsFixedFormat xlTypePDF, chemin & "Groupé.pdf"
            .Parent.Close False 'fermeture du document
        End With
        MsgBox "åÔÇã: ãÈÑæß¡Êã ÍÝÙ ÇáÌÏÇæá"
    Else 'Non
        For i = 1 To Val(.[N7])
            .[N5] = i
            .ExportAsFixedFormat xlTypePDF, chemin & .[N5] & ".pdf"
        Next
        .[N5] = 1
        MsgBox i - 1 & " :ÚÏÏ ÇáÌÏÇæá ÈÏÅÝ ÇáÊí Êã ÍÝÙåÇ ÈäÌÇÍ åæ"
    End If
End With
End Sub

الكود مدمج في الزر:x9 آسف ظهرت الحروف العربيةبهذا الشكل

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

ملف 11.xlsm

تم تعديل بواسطه hicham2610
رابط هذا التعليق
شارك

السلام عليكم

الإخوة الأفاضل

تمكنت من برمجة أزرار لطبع الجداول  الأربعةبصيغة PDF على سطح المكتب

لكن الغريب أنها تخرج خاطئة(تخص الجدول الأول =3) وناقصة بسطرين من الأعلى ، المرجو التدخل لإصلاح الخلل، وجزاكم الله خيرا

التفييء.xlsm

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

السلام عليكم

جرب الملف المعدل في المرفقات (تم تغيير أمر تحديد نطاقات الجداول في الأكواد بنطاقات ناحية الطباعة مع أمر إلغاء ناحية الطباعة في نهاية كل كود)... أرجو أن يفي الغرض المطلوب...

بن علية حاجي

التفييء.xlsm

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

  • 2 weeks later...

السلام عليكم

لم أفهم ما وقع

كتبت موضوعا جديدا فتم دمجه كرد مع موضوع سابق وتم وضع صور ليوزرفورم لم أدمجها غرييييييب 

سأعدل الموضوع وأفتح موضوعا جديدا 

image.png

تم تعديل بواسطه hicham2610
أمر غريب
رابط هذا التعليق
شارك

السلام عليكم

من فضلكم

كيف أبرمج زر إزالة الفراغات من الجداول الأربعة للفئات الأربعة على اليمين:الأحمر والأزرق والأصفر والأخضر

ليزيل تلك الفراغات المعيبة

وشكرا جزيلا

PROG V11.xlsm

تم تعديل بواسطه hicham2610
رابط هذا التعليق
شارك

  • أفضل إجابة

السلام عليكم

توصلت بهذا الحل وتعميما للفائدة أتقاسمه معكم:

Option Explicit

Dim tablo, tabloR()
Dim i&, iR&, j&

Sub SupprimerLesVides()
    
    tablo = Range("X10:AP48")
    ReDim tabloR(1 To UBound(tablo, 1), 1 To UBound(tablo, 2))
    
    For j = 1 To UBound(tablo, 2)
        If j <> 5 And j <> 10 And j <> 15 Then
            iR = 1
            For i = 1 To UBound(tablo, 1)
                If tablo(i, j) <> "" Then
                    tabloR(iR, j) = tablo(i, j)
                    iR = iR + 1
                End If
            Next i
        End If
    Next j
    Range("X10:AP48").ClearContents
    Range("X10").Resize(UBound(tabloR, 1), UBound(tabloR, 2)) = tabloR
    
End Sub

 

  • 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