F
Francois via OfficeKB.com
Hi Folks,
This is driving me NUTS !!
I'm trying to modify a script by John Walkenbach which will create a dialog
box of persons to send an E Mail to.
I have the E Mail code ( from Ron de Bruin)
I'm stuck on an Error 91 object variable or with block variable not set
when I try to set the variables needed.
Could anyone point me in the right direction ?
Code below:-
Option Explicit
Private Sub Macro999()
'
Dim TopPos As Integer
Dim PrintDlg As DialogSheet
Dim CurrentSheet As Worksheet
Dim CheckBox1 As CheckBox
Dim CheckBox2 As CheckBox
Dim CheckBox3 As CheckBox
Dim CheckBox4 As CheckBox
Dim sendto1 As Object 'IS THIS RIGHT ?????
Dim sendto2 As Object
Dim sendto3 As Object
Dim sendto4 As Object
Application.ScreenUpdating = False
' Add a temporary dialog sheet
Set PrintDlg = ActiveWorkbook.DialogSheets.Add
' Add the checkboxes
TopPos = 40
PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
PrintDlg.CheckBoxes(1).Text = Sheets("EMAILS").Range("C2")
TopPos = TopPos + 13
PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
PrintDlg.CheckBoxes(2).Text = Sheets("EMAILS").Range("C3")
TopPos = TopPos + 13
PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
PrintDlg.CheckBoxes(3).Text = Sheets("EMAILS").Range("C4")
TopPos = TopPos + 13
PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
PrintDlg.CheckBoxes(4).Text = Sheets("EMAILS").Range("C5")
TopPos = TopPos + 13
' 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 Persons to send the E Mail to"
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
Application.ScreenUpdating = True
' THIS IS THE PART THAT GIVES THE ERROR !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
'If CheckBox1 is TRUE then Set variable 'sendto1' to
value of Sheet 'EMAILS' Cell 'C2'
If CheckBox1.Value = True Then Set sendto1 = Sheets("EMAILS").
Range("C2").Value
'If CheckBox2 is TRUE then Set variable 'sendto2' to
value of Sheet 'EMAILS' Cell 'C3'
If CheckBox2.Value = True Then Set sendto2 = Sheets("EMAILS").
Range("C3").Value
'ETC
If CheckBox3.Value = True Then Set sendto3 = Sheets("EMAILS").
Range("C4").Value
'ETC
If CheckBox4.Value = True Then Set sendto4 = Sheets("EMAILS").
Range("C5").Value
' Do the E Mail code here (Which I have already Thanks to Ron de Bruin)
'
'
'
'
'
'
'
'
'
' Delete temporary dialog sheet (without a warning)
Application.DisplayAlerts = False
PrintDlg.Delete
'
End Sub
This is driving me NUTS !!
I'm trying to modify a script by John Walkenbach which will create a dialog
box of persons to send an E Mail to.
I have the E Mail code ( from Ron de Bruin)
I'm stuck on an Error 91 object variable or with block variable not set
when I try to set the variables needed.
Could anyone point me in the right direction ?
Code below:-
Option Explicit
Private Sub Macro999()
'
Dim TopPos As Integer
Dim PrintDlg As DialogSheet
Dim CurrentSheet As Worksheet
Dim CheckBox1 As CheckBox
Dim CheckBox2 As CheckBox
Dim CheckBox3 As CheckBox
Dim CheckBox4 As CheckBox
Dim sendto1 As Object 'IS THIS RIGHT ?????
Dim sendto2 As Object
Dim sendto3 As Object
Dim sendto4 As Object
Application.ScreenUpdating = False
' Add a temporary dialog sheet
Set PrintDlg = ActiveWorkbook.DialogSheets.Add
' Add the checkboxes
TopPos = 40
PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
PrintDlg.CheckBoxes(1).Text = Sheets("EMAILS").Range("C2")
TopPos = TopPos + 13
PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
PrintDlg.CheckBoxes(2).Text = Sheets("EMAILS").Range("C3")
TopPos = TopPos + 13
PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
PrintDlg.CheckBoxes(3).Text = Sheets("EMAILS").Range("C4")
TopPos = TopPos + 13
PrintDlg.CheckBoxes.Add 78, TopPos, 150, 16.5
PrintDlg.CheckBoxes(4).Text = Sheets("EMAILS").Range("C5")
TopPos = TopPos + 13
' 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 Persons to send the E Mail to"
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
Application.ScreenUpdating = True
' THIS IS THE PART THAT GIVES THE ERROR !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
'If CheckBox1 is TRUE then Set variable 'sendto1' to
value of Sheet 'EMAILS' Cell 'C2'
If CheckBox1.Value = True Then Set sendto1 = Sheets("EMAILS").
Range("C2").Value
'If CheckBox2 is TRUE then Set variable 'sendto2' to
value of Sheet 'EMAILS' Cell 'C3'
If CheckBox2.Value = True Then Set sendto2 = Sheets("EMAILS").
Range("C3").Value
'ETC
If CheckBox3.Value = True Then Set sendto3 = Sheets("EMAILS").
Range("C4").Value
'ETC
If CheckBox4.Value = True Then Set sendto4 = Sheets("EMAILS").
Range("C5").Value
' Do the E Mail code here (Which I have already Thanks to Ron de Bruin)
'
'
'
'
'
'
'
'
'
' Delete temporary dialog sheet (without a warning)
Application.DisplayAlerts = False
PrintDlg.Delete
'
End Sub