PC Review


Reply
Thread Tools Rate Thread

Calling JJ re generate form at runtime

 
 
michael.beckinsale
Guest
Posts: n/a
 
      17th Oct 2006
JJ,

I use the code below to generate a list of all the visible worksheets
with a caption of the sheetname and a checkbox for each. The user then
selects which sheets they want printed. You should easily be able to
adapt for your requirements by changing the lines suffixed 'XXXXX ie
Call mymacro

This is from an earlier version of Excel and is therefore a dialogsheet
rather than a form but it still works!

Let ma know how you get on.

Sub Printmenu()
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
''''''''''''''''''' Check for protected workbook
If ActiveWorkbook.ProtectStructure Then
MsgBox "Workbook is protected.", vbCritical
Exit Sub
End If
''''''''''''''''''''Add a temporary dialog sheet
Set CurrentSheet = ActiveSheet
Set PrintDlg = ActiveWorkbook.DialogSheets.Add
SheetCount = 0
''''''''''''''''''''Add the checkboxes
TopPos = 40
For i = 1 To ActiveWorkbook.Worksheets.Count
Set CurrentSheet = ActiveWorkbook.Worksheets(i)
''''''''''''''''''''Skip empty sheets and hidden sheets
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
''''''''''''''''''''Move the OK and Cancel buttons
PrintDlg.Buttons.Left = 240
''''''''''''''''''''Set dialog height, width, and caption
With PrintDlg.DialogFrame
.Height = Application.Max _
(68, PrintDlg.DialogFrame.Top + TopPos - 34)
.Width = 230
.Caption = "Select sheets to print"
End With
'''''''''''''''''Change tab order of OK and Cancel buttons
'''''''''''''''''so the 1st option button will have the focus
PrintDlg.Buttons("Button 2").BringToFront
PrintDlg.Buttons("Button 3").BringToFront
'''''''''''''''''Display the dialog box
CurrentSheet.Activate
Application.ScreenUpdating = True
If SheetCount <> 0 Then
If PrintDlg.Show Then
For Each cb In PrintDlg.CheckBoxes
If cb.Value = xlOn Then
Application.DisplayAlerts = False
Worksheets(cb.Caption).Activate 'XXXXX
ActiveSheet.PrintOut 'XXXXX
End If
Next cb
End If
Else
MsgBox "All worksheets are empty."
End If
'''''''''''Delete temporary dialog sheet (without a warning)
Application.DisplayAlerts = False
PrintDlg.Delete
'''''''''Reactivate original sheet
CurrentSheet.Activate
End Sub

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How Generate rdlc file using C#.net during runtime Steph Microsoft C# .NET 1 6th Feb 2010 07:32 PM
How hard is it to generate code at runtime? =?Utf-8?B?SnVhbiBEZW50?= Microsoft Dot NET Framework 2 18th May 2007 08:51 AM
generate a form at runtime? JJ Microsoft Excel Programming 8 18th Oct 2006 12:04 PM
How do you generate new enumerations at runtime? =?Utf-8?B?SmVicmV3?= Microsoft C# .NET 3 30th Nov 2005 01:16 PM
Calling (Function?) from Userform_Initialize to generate list of unique values for Combo box Alan Microsoft Excel Programming 2 23rd Jul 2004 05:40 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 09:19 PM.