ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Compile Error: Procedure too Large Question (https://www.excelbanter.com/excel-programming/335196-compile-error-procedure-too-large-question.html)

Daniel R. Young

Compile Error: Procedure too Large Question
 
If my procedure is too large what can I do to make it work?

Thank you,

Daniel

JM[_5_]

Compile Error: Procedure too Large Question
 
Umm, make it smaller?




"Daniel R. Young" wrote in message
...
If my procedure is too large what can I do to make it work?

Thank you,

Daniel




Daniel R. Young

Compile Error: Procedure too Large Question
 
I cannot make it smaller. Here is the code:
If Target.Address = "$G$9748" Then
If Me.Range("G9748").Value = "Yes" Then
Application.Dialogs(xlDialogInsertPicture).Show
Selection.Height = Range("F9745:I9753").Height
Selection.Width = Range("F9745:I9753").Width
Selection.Top = Range("F9745:I9753").Top
Selection.Left = Range("F9745:I9753").Left
Selection.Placement = xlMoveAndSize
End If
End If
This is repeated 176 times with different values. Is there a way to make it
smaller?

"JM" wrote:

Umm, make it smaller?




"Daniel R. Young" wrote in message
...
If my procedure is too large what can I do to make it work?

Thank you,

Daniel





Toppers

Compile Error: Procedure too Large Question
 
Hi,
Consider holding the target address and corresponding ranges in a
table and using VLOOKUP or INDEX/MATCH. The code would only be a minor
modification to your code below.

VLOOKUP table would be of format

Target Address Data Range
$G$9748 F9745:I9753


HTH

"Daniel R. Young" wrote:

I cannot make it smaller. Here is the code:
If Target.Address = "$G$9748" Then
If Me.Range("G9748").Value = "Yes" Then
Application.Dialogs(xlDialogInsertPicture).Show
Selection.Height = Range("F9745:I9753").Height
Selection.Width = Range("F9745:I9753").Width
Selection.Top = Range("F9745:I9753").Top
Selection.Left = Range("F9745:I9753").Left
Selection.Placement = xlMoveAndSize
End If
End If
This is repeated 176 times with different values. Is there a way to make it
smaller?

"JM" wrote:

Umm, make it smaller?




"Daniel R. Young" wrote in message
...
If my procedure is too large what can I do to make it work?

Thank you,

Daniel





Tom Ogilvy

Compile Error: Procedure too Large Question
 
Looks like you could only have such code appear one time and program a loop
that goes through the various cells and performs the relative action.

So you should be able to make it smaller. If not, then break it into two
macros. Half the code in one module (88 cells worth) and half the code in
another module (88 cells worth). then you can use a tiny macro to call both

Sub Master()
Macro1
Macro2
End Sub


--
Regards,
Tom Ogilvy

"Daniel R. Young" wrote in message
...
I cannot make it smaller. Here is the code:
If Target.Address = "$G$9748" Then
If Me.Range("G9748").Value = "Yes" Then
Application.Dialogs(xlDialogInsertPicture).Show
Selection.Height = Range("F9745:I9753").Height
Selection.Width = Range("F9745:I9753").Width
Selection.Top = Range("F9745:I9753").Top
Selection.Left = Range("F9745:I9753").Left
Selection.Placement = xlMoveAndSize
End If
End If
This is repeated 176 times with different values. Is there a way to make

it
smaller?

"JM" wrote:

Umm, make it smaller?




"Daniel R. Young" wrote in

message
...
If my procedure is too large what can I do to make it work?

Thank you,

Daniel







Daniel R. Young

Compile Error: Procedure too Large Question
 
I am very new at this. Can you help me a little be more?

Thank you,
dAn

"Toppers" wrote:

Hi,
Consider holding the target address and corresponding ranges in a
table and using VLOOKUP or INDEX/MATCH. The code would only be a minor
modification to your code below.

VLOOKUP table would be of format

Target Address Data Range
$G$9748 F9745:I9753


HTH

"Daniel R. Young" wrote:

I cannot make it smaller. Here is the code:
If Target.Address = "$G$9748" Then
If Me.Range("G9748").Value = "Yes" Then
Application.Dialogs(xlDialogInsertPicture).Show
Selection.Height = Range("F9745:I9753").Height
Selection.Width = Range("F9745:I9753").Width
Selection.Top = Range("F9745:I9753").Top
Selection.Left = Range("F9745:I9753").Left
Selection.Placement = xlMoveAndSize
End If
End If
This is repeated 176 times with different values. Is there a way to make it
smaller?

"JM" wrote:

Umm, make it smaller?




"Daniel R. Young" wrote in message
...
If my procedure is too large what can I do to make it work?

Thank you,

Daniel




Tom Ogilvy

Compile Error: Procedure too Large Question
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.count 1 then exit sub
If Target.Column = 7 then
if Target.Value = "Yes" then
set rng = Target.Offset(-3,-1).Resize(8,4)
Application.Dialogs(xlDialogInsertPicture).Show
Selection.Height = rng.Height
Selection.Width = rng.Width
Selection.Top = rng.Top
Selection.Left = rng.Left
Selection.Placement = xlMoveAndSize
End if
End if
End Sub

--
Regards,
Tom Ogilvy

"Daniel R. Young" wrote in message
...
I am very new at this. Can you help me a little be more?

Thank you,
dAn

"Toppers" wrote:

Hi,
Consider holding the target address and corresponding ranges in

a
table and using VLOOKUP or INDEX/MATCH. The code would only be a minor
modification to your code below.

VLOOKUP table would be of format

Target Address Data Range
$G$9748 F9745:I9753


HTH

"Daniel R. Young" wrote:

I cannot make it smaller. Here is the code:
If Target.Address = "$G$9748" Then
If Me.Range("G9748").Value = "Yes" Then
Application.Dialogs(xlDialogInsertPicture).Show
Selection.Height = Range("F9745:I9753").Height
Selection.Width = Range("F9745:I9753").Width
Selection.Top = Range("F9745:I9753").Top
Selection.Left = Range("F9745:I9753").Left
Selection.Placement = xlMoveAndSize
End If
End If
This is repeated 176 times with different values. Is there a way to

make it
smaller?

"JM" wrote:

Umm, make it smaller?




"Daniel R. Young" wrote in

message
...
If my procedure is too large what can I do to make it work?

Thank you,

Daniel







All times are GMT +1. The time now is 04:06 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com