پرینت از چک باکس مورد نظر

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • ali719

    • 2013/12/05
    • 212

    پرینت از چک باکس مورد نظر

    سلام
    در فایل پیوست من میخوام با انتخاب چک باکس و زدن روی دکمه پرینت از شیت مورد نظر آن شیت پرینت گرفته شود (مثلا چک باکس 1و4 را انتخاب و با زدن روی دکمه شیت های مورد نظر آن شیت پرینت گرفته شود) و با زدن روی دکمه پرینت از کل شیتها تمام شیتها پرینت گرفته شود.برای این منظور برای دکمه ها چه فرمولی بنویسم.
    با تشکر
    فایل های پیوست شده
  • generalsamad
    مدير تالار توابع

    • 2014/06/22
    • 1496

    #2
    با سلام
    از این کد استفاده کنید
    ببینید خواستتون همین بوده
    کد PHP:
    Option Explicit
    Private Sub CommandButton1_Click()
        
    Dim i As Integer
        Dim TopPos 
    As Integer
        Dim SheetCount 
    As Integer
        Dim PrintDlg 
    As DialogSheet
        Dim CurrentSheet 
    As Worksheet
        Dim cb 
    As CheckBox
        Application
    .ScreenUpdating = False
        
        
    If ActiveWorkbook.ProtectStructure Then
            MsgBox 
    "Workbook is protected.", vbCritical
            
    Exit Sub
        End 
    If

        
    Set CurrentSheet = ActiveSheet
        Set PrintDlg 
    = ActiveWorkbook.DialogSheets.Add

        SheetCount 
    = 0

        TopPos 
    = 40
        
    For i = 1 To ActiveWorkbook.Worksheets.Count
            Set CurrentSheet 
    = ActiveWorkbook.Worksheets(i)

            If 
    Application.CountA(CurrentSheet.Cells) <> 0 And _
                CurrentSheet
    .Visible Then
                SheetCount 
    = SheetCount + 1
                PrintDlg
    .CheckBoxes.Add 78, TopPos, 150, 16.5
                    PrintDlg
    .CheckBoxes(SheetCount).Text = _
                        CurrentSheet
    .Name
                TopPos 
    = TopPos + 13
            End 
    If
        
    Next i

        PrintDlg
    .Buttons.Left = 240

        With PrintDlg
    .DialogFrame
            
    .Height = Application.Max _
                
    (68, PrintDlg.DialogFrame.Top + TopPos - 34)
            .
    Width = 230
            
    .Caption = "Select sheets to print"

        
    End With

        PrintDlg
    .Buttons("Button 2").BringToFront
        PrintDlg
    .Buttons("Button 3").BringToFront

        CurrentSheet
    .Activate
        Application
    .ScreenUpdating = True
        
    If SheetCount <> 0 Then
            
    If PrintDlg.Show Then
                
    For Each cb In PrintDlg.CheckBoxes
                    
    If cb.Value = xlOn Then
                        Worksheets
    (cb.Caption).Activate
                        ActiveSheet
    .PrintOut

                    End 
    If
                
    Next cb
            End 
    If
        Else
            
    MsgBox "All worksheets are empty."
        
    End If

        
    Application.DisplayAlerts = False
        PrintDlg
    .Delete

        CurrentSheet
    .Activate
    End Sub 
    Last edited by generalsamad; 2015/05/17, 23:25.
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • mohammadkhorshi
      • 2014/08/03
      • 2
      • 24.00

      #3
      دوست عزیز سلام

      الان به صورتی هست که وقتی دکمه را میزنیم اگر ما 1000 تا شیت داشته باشیم یکم زشت میشه و اگه بخوایم همه رو پرینت بگیریم باید دونه دونه تیک بزنیم

      امکانش هست وقتی دکمه رو میزنیم بالا اول از همه یک تیک all وجود داشته باشد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

      ممنون

      کامنت

      چند لحظه..