Abreviacion de codigo
Hola Cmera :
He desarrollado, un proceso para Insertar fotografías he utilizado SELECT CASE, el cual he utilizado en 80 ocasiones creo son hacen demasiadas, me gustaría utilizar algo parecido que necesitara menos código, el código que tengo es el siguiente.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'-----------------------------------------
On Error GoTo Controlerror
If Target.Column = 1 Then
ActiveCell.Offset(, 2).Select
Application.ScreenUpdating = False
Select Case Target.Value
Case "CN 15951"
ActiveSheet.Pictures.Insert("C:\Images\CN 15951.jpg"). _
Select
ActiveCell.Offset(1, -2).Select
Case "CN 15958"
ActiveSheet.Pictures.Insert("C:\Images\CN 15958.jpg"). _
Select
ActiveCell.Offset(1, -2).Select
Case "CN 1G349"
ActiveSheet.Pictures.Insert("C:\Images\CN 1G349.jpg"). _
Select
ActiveCell.Offset(1, -2).Select
Case "CN 1G350"
ActiveSheet.Pictures.Insert("C:\Images\CN 1G350.jpg"). _
Select
ActiveCell.Offset(1, -2).Select
Case "CN 1H945"
ActiveSheet.Pictures.Insert("C:\Images\ CN 1H945.jpg"). _
Select
ActiveCell.Offset(1, -2).Select
Aqui tengo otros 80 casos como este
..
..
Case ""
Application.EnableEvents = False
Range("a2").Select
End Select
End If
Controlerror:
Application.EnableEvents = True
Application.ScreenUpdating = False
End Sub
En teoría este código funciona muy bien pero el problemas es que son demasiados casos y para mantenerlo al día y son demasiados movimientos de altas y bajas de productos.
Me gustaría me indicarías que código tengo que utilizar para no utilizar CASE.. Pero que haga exactamente lo mismo.
Habrás notado que el nombre de celda es igual al nombre de la imagen + jpg.
Tengo entendido que se puede hacer la instrucción While-Wend. Pero no se como armar el ciclo.
Seria posible utilizar una variable para la ruta de las imágenes
Por la atención que preste a mi correo mil gracias..
Jose Medina Maciel
He desarrollado, un proceso para Insertar fotografías he utilizado SELECT CASE, el cual he utilizado en 80 ocasiones creo son hacen demasiadas, me gustaría utilizar algo parecido que necesitara menos código, el código que tengo es el siguiente.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'-----------------------------------------
On Error GoTo Controlerror
If Target.Column = 1 Then
ActiveCell.Offset(, 2).Select
Application.ScreenUpdating = False
Select Case Target.Value
Case "CN 15951"
ActiveSheet.Pictures.Insert("C:\Images\CN 15951.jpg"). _
Select
ActiveCell.Offset(1, -2).Select
Case "CN 15958"
ActiveSheet.Pictures.Insert("C:\Images\CN 15958.jpg"). _
Select
ActiveCell.Offset(1, -2).Select
Case "CN 1G349"
ActiveSheet.Pictures.Insert("C:\Images\CN 1G349.jpg"). _
Select
ActiveCell.Offset(1, -2).Select
Case "CN 1G350"
ActiveSheet.Pictures.Insert("C:\Images\CN 1G350.jpg"). _
Select
ActiveCell.Offset(1, -2).Select
Case "CN 1H945"
ActiveSheet.Pictures.Insert("C:\Images\ CN 1H945.jpg"). _
Select
ActiveCell.Offset(1, -2).Select
Aqui tengo otros 80 casos como este
..
..
Case ""
Application.EnableEvents = False
Range("a2").Select
End Select
End If
Controlerror:
Application.EnableEvents = True
Application.ScreenUpdating = False
End Sub
En teoría este código funciona muy bien pero el problemas es que son demasiados casos y para mantenerlo al día y son demasiados movimientos de altas y bajas de productos.
Me gustaría me indicarías que código tengo que utilizar para no utilizar CASE.. Pero que haga exactamente lo mismo.
Habrás notado que el nombre de celda es igual al nombre de la imagen + jpg.
Tengo entendido que se puede hacer la instrucción While-Wend. Pero no se como armar el ciclo.
Seria posible utilizar una variable para la ruta de las imágenes
Por la atención que preste a mi correo mil gracias..
Jose Medina Maciel
Respuesta de César Mera
1