selcet statement verses if then statement looking to speed up macro

THIS CODE WORKS with the if then statements its just slow as a snail . I tried converting the code lines into a select statement. When I use the select case statements several of my test scenarios came up with the incorrect answer. Not sure why the code does not work on all of the scenarios when converted to a select statement. The reason why I am attempting to change this to a select case statement is to enhance the speed on computing the macro. Can someone tell how I can speed up this macro or tell me what the select case statement should look like for this code. Please note I am a newbie at this. Thanks

Private Sub Worksheet_Change(ByVal Target As Range)

' ERROHANDLER AND APPLICATON EVENT OBJECT AFTER STACK FLOW ERROR
On Error GoTo ErrorHandler
'Enable error-handling routine for any run-time error
Application.EnableEvents = False

If Target.Address = "$A$1" And Range("A1") = 271 Then
Call Copy_550_271
End If
If Target.Address = "$A$1" And Range("A1") = 271.5 Then
Call Copy_271_5
End If
If Target.Address = "$A$1" And Range("A1") = 272 Then
Call Copy_550_272
End If
If Target.Address = "$A$1" And Range("A1") = 272.5 Then
Call Copy_272_5
End If
If Target.Address = "$A$1" And Range("A1") = 273 Then
Call Copy_550_273
End If
If Target.Address = "$A$1" And Range("A1") = 273.5 Then
Call Copy_273_5
End If
If Target.Address = "$A$1" And Range("A1") = 274 Then
Call Copy_550_274
End If
If Target.Address = "$A$1" And Range("A1") = 274.5 Then
Call Copy_274_5
End If
If Target.Address = "$A$1" And Range("A1") = 275 Then
Call Copy_550_275
End If
If Target.Address = "$A$1" And Range("A1") = 275.5 Then
Call Copy_275_5
End If
If Target.Address = "$A$1" And Range("A1") = 276 Then
Call Copy_550_276
End If
If Target.Address = "$A$1" And Range("A1") = 276.5 Then
Call Copy_276_5
End If
If Target.Address = "$A$1" And Range("A1") = 279.5 Then
Call M271271

End If
If Target.Address = "$A$1" And Range("A1") = 281 Then
Call Copy_550_281
End If
If Target.Address = "$A$1" And Range("A1") = 281.5 Then
Call Copy_281_5
End If
If Target.Address = "$A$1" And Range("A1") = 282 Then
Call Copy_550_282
End If
If Target.Address = "$A$1" And Range("A1") = 282.5 Then
Call Copy_282_5
End If
If Target.Address = "$A$1" And Range("A1") = 283 Then
Call Copy_550_283
End If
If Target.Address = "$A$1" And Range("A1") = 283.5 Then
Call Copy_283_5
End If
If Target.Address = "$A$1" And Range("A1") = 284 Then
Call Copy_550_284
End If
If Target.Address = "$A$1" And Range("A1") = 284.5 Then
Call Copy_284_5
End If
If Target.Address = "$A$1" And Range("A1") = 285 Then
Call Copy_550_285
End If
If Target.Address = "$A$1" And Range("A1") = 285.5 Then
Call Copy_285_5
End If
If Target.Address = "$A$1" And Range("A1") = 286 Then
Call Copy_550_286
End If
If Target.Address = "$A$1" And Range("A1") = 286.5 Then
Call Copy_286_5

End If
If Target.Address = "$A$1" And Range("A1") = 289.5 Then
Call M281281

End If
If Target.Address = "$A$1" And Range("A1") = 291 Then
Call Copy_550_291
End If
If Target.Address = "$A$1" And Range("A1") = 291.5 Then
Call Copy_291_5
End If
If Target.Address = "$A$1" And Range("A1") = 292 Then
Call Copy_550_292
End If
If Target.Address = "$A$1" And Range("A1") = 292.5 Then
Call Copy_292_5
End If
If Target.Address = "$A$1" And Range("A1") = 293 Then
Call Copy_550_293
End If
If Target.Address = "$A$1" And Range("A1") = 293.5 Then
Call Copy_293_5
End If
If Target.Address = "$A$1" And Range("A1") = 294 Then
Call Copy_550_294
End If
If Target.Address = "$A$1" And Range("A1") = 294.5 Then
Call Copy_294_5
End If
If Target.Address = "$A$1" And Range("A1") = 295 Then
Call Copy_550_295
End If
If Target.Address = "$A$1" And Range("A1") = 295.5 Then
Call Copy_295_5
End If
If Target.Address = "$A$1" And Range("A1") = 296 Then
Call Copy_550_296
End If
If Target.Address = "$A$1" And Range("A1") = 296.5 Then
Call Copy_296_5

End If
If Target.Address = "$A$1" And Range("A1") = 299.5 Then
Call M291291

End If
If Target.Address = "$A$1" And Range("A1") = 301 Then
Call Copy_550_301
End If
If Target.Address = "$A$1" And Range("A1") = 301.5 Then
Call Copy_301_5
End If
If Target.Address = "$A$1" And Range("A1") = 302 Then
Call Copy_550_302
End If
If Target.Address = "$A$1" And Range("A1") = 302.5 Then
Call Copy_302_5
End If
If Target.Address = "$A$1" And Range("A1") = 303 Then
Call Copy_550_303
End If
If Target.Address = "$A$1" And Range("A1") = 303.5 Then
Call Copy_303_5
End If
If Target.Address = "$A$1" And Range("A1") = 304 Then
Call Copy_550_304
End If
If Target.Address = "$A$1" And Range("A1") = 304.5 Then
Call Copy_304_5
End If
If Target.Address = "$A$1" And Range("A1") = 305 Then
Call Copy_550_305
End If
If Target.Address = "$A$1" And Range("A1") = 305.5 Then
Call Copy_305_5
End If
If Target.Address = "$A$1" And Range("A1") = 306 Then
Call Copy_550_306
End If
If Target.Address = "$A$1" And Range("A1") = 306.5 Then
Call Copy_306_5

End If
If Target.Address = "$A$1" And Range("A1") = 309.5 Then
Call M301301

End If
If Target.Address = "$A$1" And Range("A1") = 311 Then
Call Copy_550_311
End If
If Target.Address = "$A$1" And Range("A1") = 311.5 Then
Call Copy_311_5
End If
If Target.Address = "$A$1" And Range("A1") = 312 Then
Call Copy_550_312
End If
If Target.Address = "$A$1" And Range("A1") = 312.5 Then
Call Copy_312_5
End If
If Target.Address = "$A$1" And Range("A1") = 313 Then
Call Copy_550_313
End If
If Target.Address = "$A$1" And Range("A1") = 313.5 Then
Call Copy_313_5
End If
If Target.Address = "$A$1" And Range("A1") = 314 Then
Call Copy_550_314
End If
If Target.Address = "$A$1" And Range("A1") = 314.5 Then
Call Copy_314_5
End If
If Target.Address = "$A$1" And Range("A1") = 315 Then
Call Copy_550_315
End If
If Target.Address = "$A$1" And Range("A1") = 315.5 Then
Call Copy_315_5
End If
If Target.Address = "$A$1" And Range("A1") = 316 Then
Call Copy_550_316
End If
If Target.Address = "$A$1" And Range("A1") = 316.5 Then
Call Copy_316_5

End If
If Target.Address = "$A$1" And Range("A1") = 319.5 Then
Call M311311

End If
If Target.Address = "$A$1" And Range("A1") = 321 Then
Call Copy_550_321
End If
If Target.Address = "$A$1" And Range("A1") = 321.5 Then
Call Copy_321_5
End If
If Target.Address = "$A$1" And Range("A1") = 322 Then
Call Copy_550_322
End If
If Target.Address = "$A$1" And Range("A1") = 322.5 Then
Call Copy_322_5
End If
If Target.Address = "$A$1" And Range("A1") = 323 Then
Call Copy_550_323
End If
If Target.Address = "$A$1" And Range("A1") = 323.5 Then
Call Copy_323_5
End If
If Target.Address = "$A$1" And Range("A1") = 324 Then
Call Copy_550_324
End If
If Target.Address = "$A$1" And Range("A1") = 324.5 Then
Call Copy_324_5
End If
If Target.Address = "$A$1" And Range("A1") = 325 Then
Call Copy_550_325
End If
If Target.Address = "$A$1" And Range("A1") = 325.5 Then
Call Copy_325_5
End If
If Target.Address = "$A$1" And Range("A1") = 326 Then
Call Copy_550_326
End If
If Target.Address = "$A$1" And Range("A1") = 326.5 Then
Call Copy_326_5

End If
If Target.Address = "$A$1" And Range("A1") = 329.5 Then
Call M321321

End If
If Target.Address = "$A$1" And Range("A1") = 331 Then
Call Copy_550_331
End If
If Target.Address = "$A$1" And Range("A1") = 331.5 Then
Call Copy_331_5
End If
If Target.Address = "$A$1" And Range("A1") = 332 Then
Call Copy_550_332
End If
If Target.Address = "$A$1" And Range("A1") = 332.5 Then
Call Copy_332_5
End If
If Target.Address = "$A$1" And Range("A1") = 333 Then
Call Copy_550_333
End If
If Target.Address = "$A$1" And Range("A1") = 333.5 Then
Call Copy_333_5
End If
If Target.Address = "$A$1" And Range("A1") = 334 Then
Call Copy_550_334
End If
If Target.Address = "$A$1" And Range("A1") = 334.5 Then
Call Copy_334_5
End If
If Target.Address = "$A$1" And Range("A1") = 335 Then
Call Copy_550_335
End If
If Target.Address = "$A$1" And Range("A1") = 335.5 Then
Call Copy_335_5
End If
If Target.Address = "$A$1" And Range("A1") = 336 Then
Call Copy_550_336
End If
If Target.Address = "$A$1" And Range("A1") = 336.5 Then
Call Copy_336_5

End If
If Target.Address = "$A$1" And Range("A1") = 339.5 Then
Call M331331

End If
If Target.Address = "$A$1" And Range("A1") = 341 Then
Call Copy_550_341
End If
If Target.Address = "$A$1" And Range("A1") = 341.5 Then
Call Copy_341_5
End If
If Target.Address = "$A$1" And Range("A1") = 342 Then
Call Copy_550_342
End If
If Target.Address = "$A$1" And Range("A1") = 342.5 Then
Call Copy_342_5
End If
If Target.Address = "$A$1" And Range("A1") = 343 Then
Call Copy_550_343
End If
If Target.Address = "$A$1" And Range("A1") = 343.5 Then
Call Copy_343_5
End If
If Target.Address = "$A$1" And Range("A1") = 344 Then
Call Copy_550_344
End If
If Target.Address = "$A$1" And Range("A1") = 344.5 Then
Call Copy_344_5
End If
If Target.Address = "$A$1" And Range("A1") = 345 Then
Call Copy_550_345
End If
If Target.Address = "$A$1" And Range("A1") = 345.5 Then
Call Copy_345_5
End If
If Target.Address = "$A$1" And Range("A1") = 346 Then
Call Copy_550_346
End If
If Target.Address = "$A$1" And Range("A1") = 346.5 Then
Call Copy_346_5

End If
If Target.Address = "$A$1" And Range("A1") = 349.5 Then
Call M341341

End If
If Target.Address = "$A$1" And Range("A1") = 351 Then
Call Copy_550_351
End If
If Target.Address = "$A$1" And Range("A1") = 351.5 Then
Call Copy_351_5
End If
If Target.Address = "$A$1" And Range("A1") = 352 Then
Call Copy_550_352
End If
If Target.Address = "$A$1" And Range("A1") = 352.5 Then
Call Copy_352_5
End If
If Target.Address = "$A$1" And Range("A1") = 353 Then
Call Copy_550_353
End If
If Target.Address = "$A$1" And Range("A1") = 353.5 Then
Call Copy_353_5
End If
If Target.Address = "$A$1" And Range("A1") = 354 Then
Call Copy_550_354
End If
If Target.Address = "$A$1" And Range("A1") = 354.5 Then
Call Copy_354_5
End If
If Target.Address = "$A$1" And Range("A1") = 355 Then
Call Copy_550_355
End If
If Target.Address = "$A$1" And Range("A1") = 355.5 Then
Call Copy_355_5
End If
If Target.Address = "$A$1" And Range("A1") = 356 Then
Call Copy_550_356
End If
If Target.Address = "$A$1" And Range("A1") = 356.5 Then
Call Copy_356_5

End If
If Target.Address = "$A$1" And Range("A1") = 359.5 Then
Call M351351
'Call Copy_550_281

End If
If Target.Address = "$A$1" And Range("A1") = 361 Then
Call Copy_550_361
End If
If Target.Address = "$A$1" And Range("A1") = 361.5 Then
Call Copy_361_5
End If
If Target.Address = "$A$1" And Range("A1") = 362 Then
Call Copy_550_362
End If
If Target.Address = "$A$1" And Range("A1") = 362.5 Then
Call Copy_362_5
End If
If Target.Address = "$A$1" And Range("A1") = 363 Then
Call Copy_550_363
End If
If Target.Address = "$A$1" And Range("A1") = 363.5 Then
Call Copy_363_5
End If
If Target.Address = "$A$1" And Range("A1") = 364 Then
Call Copy_550_364
End If
If Target.Address = "$A$1" And Range("A1") = 364.5 Then
Call Copy_364_5
End If
If Target.Address = "$A$1" And Range("A1") = 365 Then
Call Copy_550_365
End If
If Target.Address = "$A$1" And Range("A1") = 365.5 Then
Call Copy_365_5
End If
If Target.Address = "$A$1" And Range("A1") = 366 Then
Call Copy_550_366
End If
If Target.Address = "$A$1" And Range("A1") = 366.5 Then
Call Copy_366_5

End If
If Target.Address = "$A$1" And Range("A1") = 369.5 Then
Call M361361

End If
If Target.Address = "$A$1" And Range("A1") = 371 Then
Call Copy_550_371
End If
If Target.Address = "$A$1" And Range("A1") = 371.5 Then
Call Copy_371_5
End If
If Target.Address = "$A$1" And Range("A1") = 372 Then
Call Copy_550_372
End If
If Target.Address = "$A$1" And Range("A1") = 372.5 Then
Call Copy_372_5
End If
If Target.Address = "$A$1" And Range("A1") = 373 Then
Call Copy_550_373
End If
If Target.Address = "$A$1" And Range("A1") = 373.5 Then
Call Copy_373_5
End If
If Target.Address = "$A$1" And Range("A1") = 374 Then
Call Copy_550_374
End If
If Target.Address = "$A$1" And Range("A1") = 374.5 Then
Call Copy_374_5
End If
If Target.Address = "$A$1" And Range("A1") = 375 Then
Call Copy_550_375
End If
If Target.Address = "$A$1" And Range("A1") = 375.5 Then
Call Copy_375_5
End If
If Target.Address = "$A$1" And Range("A1") = 376 Then
Call Copy_550_376
End If
If Target.Address = "$A$1" And Range("A1") = 376.5 Then
Call Copy_376_5

End If
If Target.Address = "$A$1" And Range("A1") = 379.5 Then
Call M371371

End If
If Target.Address = "$A$1" And Range("A1") = 381 Then
Call Copy_550_381
End If
If Target.Address = "$A$1" And Range("A1") = 381.5 Then
Call Copy_381_5
End If
If Target.Address = "$A$1" And Range("A1") = 382 Then
Call Copy_550_382
End If
If Target.Address = "$A$1" And Range("A1") = 382.5 Then
Call Copy_382_5
End If
If Target.Address = "$A$1" And Range("A1") = 383 Then
Call Copy_550_383
End If
If Target.Address = "$A$1" And Range("A1") = 383.5 Then
Call Copy_383_5
End If
If Target.Address = "$A$1" And Range("A1") = 384 Then
Call Copy_550_384
End If
If Target.Address = "$A$1" And Range("A1") = 384.5 Then
Call Copy_384_5
End If
If Target.Address = "$A$1" And Range("A1") = 385 Then
Call Copy_550_385
End If
If Target.Address = "$A$1" And Range("A1") = 385.5 Then
Call Copy_385_5
End If
If Target.Address = "$A$1" And Range("A1") = 386 Then
Call Copy_550_386
End If
If Target.Address = "$A$1" And Range("A1") = 386.5 Then
Call Copy_386_5

End If
If Target.Address = "$A$1" And Range("A1") = 389.5 Then
Call M381381

End If
If Target.Address = "$A$1" And Range("A1") = 391 Then
Call Copy_550_391
End If
If Target.Address = "$A$1" And Range("A1") = 391.5 Then
Call Copy_391_5
End If
If Target.Address = "$A$1" And Range("A1") = 392 Then
Call Copy_550_392
End If
If Target.Address = "$A$1" And Range("A1") = 392.5 Then
Call Copy_392_5
End If
If Target.Address = "$A$1" And Range("A1") = 393 Then
Call Copy_550_393
End If
If Target.Address = "$A$1" And Range("A1") = 393.5 Then
Call Copy_393_5
End If
If Target.Address = "$A$1" And Range("A1") = 394 Then
Call Copy_550_394
End If
If Target.Address = "$A$1" And Range("A1") = 394.5 Then
Call Copy_394_5
End If
If Target.Address = "$A$1" And Range("A1") = 395 Then
Call Copy_550_395
End If
If Target.Address = "$A$1" And Range("A1") = 395.5 Then
Call Copy_395_5
End If
If Target.Address = "$A$1" And Range("A1") = 396 Then
Call Copy_550_396
End If
If Target.Address = "$A$1" And Range("A1") = 396.5 Then
Call Copy_396_5

End If
If Target.Address = "$A$1" And Range("A1") = 399.5 Then
Call M391391

End If
If Target.Address = "$A$1" And Range("A1") = 401 Then
Call Copy_550_401
End If
If Target.Address = "$A$1" And Range("A1") = 401.5 Then
Call Copy_401_5
End If
If Target.Address = "$A$1" And Range("A1") = 402 Then
Call Copy_550_402
End If
If Target.Address = "$A$1" And Range("A1") = 402.5 Then
Call Copy_402_5
End If
If Target.Address = "$A$1" And Range("A1") = 403 Then
Call Copy_550_403
End If
If Target.Address = "$A$1" And Range("A1") = 403.5 Then
Call Copy_403_5
End If
If Target.Address = "$A$1" And Range("A1") = 404 Then
Call Copy_550_404
End If
If Target.Address = "$A$1" And Range("A1") = 404.5 Then
Call Copy_404_5
End If
If Target.Address = "$A$1" And Range("A1") = 405 Then
Call Copy_550_405
End If
If Target.Address = "$A$1" And Range("A1") = 405.5 Then
Call Copy_405_5
End If
If Target.Address = "$A$1" And Range("A1") = 406 Then
Call Copy_550_406
End If
If Target.Address = "$A$1" And Range("A1") = 406.5 Then
Call Copy_406_5
End If
If Target.Address = "$A$1" And Range("A1") = 409.5 Then
Call M401401

Else: Call TheEnd550
End If

'' ERROHANDLER AND APPLICATON EVENT OBJECT AFTER STACK FLOW ERROR
Application.EnableEvents = True

ErrorHandler:
Application.EnableEvents = True 'EnableEvents is changed back to True on any error

End Sub

Re-design your code

There is no matter which statement you use, either If... Then... End If or Select Case... End Select. Since you have too much Copy_Something subroutines neither of the statements will not optimize your code. My suggestion is to re-design your code at all.

I guess the Copy's subroutines are similar and can be restricted to one or two subroutines.

If you need further help on this, please attach some example file with your Copy's subroutines. You can do this in the current topic -> Edit tab.

...

Private Sub

Try the following select case style..

Private Sub Worksheet_Change(ByVal Target As Range)

' ERROHANDLER AND APPLICATON EVENT OBJECT AFTER STACK FLOW ERROR

On Error GoTo ErrorHandler

'Enable error-handling routine for any run-time error

Application.EnableEvents = False

 

If Target.Address <> "$A$1" Then Exit Sub 'Only performs this test once

 

Select Case Target.Value

    Case 271

        Call Copy_550_271

    Case 271.5

        Call Copy_271_5

    Case Is < 271, Is > 470 'Any other unspecified A1 value

        Call TheEnd550

End Select

 

'' ERROHANDLER AND APPLICATON EVENT OBJECT AFTER STACK FLOW ERROR

Application.EnableEvents = True

 

ErrorHandler:

Application.EnableEvents = True 'EnableEvents is changed back to True on any error

 

End Sub