Saltar al contenido

modificar macros


ARPMETAL

Recommended Posts

publicado

que tal resulta que tengo una macro que lo que hace es poner una letra en la celda segun el color de la celda pero el problema es que tarda mucho en ejecutarse ya que son muchas celdas, solo para pedir si alguien me puede decir como hacer que se ejecute mas rapido aqui dejo el programa, saludos.

Sub prueba()

Application.ScreenUpdating = False

Dim celda As Range

Range("h:h").Select

For Each celda In Selection

If celda.Interior.Color = RGB(255, 255, 255) Then

celda = "V"

End If

Next

Application.ScreenUpdating = True

For Each celda In Selection

If celda.Interior.Color = 255 Then

celda = "R"

End If

Next

Application.ScreenUpdating = True

For Each celda In Selection

If celda.Interior.Color = RGB(34, 139, 34) Then

celda = "A"

End If

Next

Application.ScreenUpdating = True

For Each celda In Selection

If celda.Interior.Color = RGB(192, 192, 192) Then

celda = "V"

End If

Next

Application.ScreenUpdating = True

End Sub

publicado

Saludos.

Pues yo lo haria asi:

Sub prueba1()
Dim celda As Range
rango = Selection.Address
For Each celda In Range(rango)
Select Case celda.Interior.Color
Case Is = vbYellow
celda = "Y"
Case Is = vbRed
celda = "R"
Case Is = vbGreen
celda = "G"
Case Is = vbBlue
celda = "B"
End Select
Next celda
End Sub[/PHP]

Prueba y comentas.

Atte.

joshua

publicado

aunque sabes no se podria agregar un end if para que se detuviera en el momento en que terminan las celdas de colores como por la celda 5000?, saludos y gracias

publicado

Saludos.

La macro va a tomar su tiempo si seleccionas toda la columna, si interpretas bien la macro veras que solo debes seleccionar aquellas celdas que contengan colores y esto ara que la macro sea más efeciente en cuanto al tiempo, en tu caso como me indicas que las celdas de colores llegan hasta la fila 5000 bueno solo selecciona ese rango.

Atte.

joshua

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.