Forums Últimos mensajes - Powered by IBM
 

Macro q resalta filas

03/05/2005 - 02:44 por Daniel Padilla Cañamero | Informe spam
Esta macro funciona muy bien, el codigo va en la hoja del libro

Private Sub Worksheet_Calculate()
Resalta
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Resalta
End Sub

Private Sub Resalta()
Dim R As Long
Dim C As Long
Dim X As String
R = ActiveCell.Row
C = ActiveCell.Column

If R < 6 Or R > 13 Or C > 6 Then
Range("a6:f13").Interior.ColorIndex = 36
Exit Sub

Else

Range("a6:f13").Interior.ColorIndex = 36
Range("a" & R & ":f" & R).Interior.ColorIndex = 27
End If
End Sub

Como haria si me pueden ayudar a q dentro del rango se pueda copiar, pegar y
usar el ctrl + z varias veces, exactamente donde debo poner las lineas a este
codigo


Saludos Cordiales
Daniel Padilla Cañamero
Lima-Perú
 

Leer las respuestas

#1 Héctor Miguel
03/05/2005 - 05:42 | Informe spam
hola, Daniel !

Esta macro funciona muy bien, el codigo va en la hoja del libro [...]
Como haria... q dentro del rango se pueda copiar, pegar y usar el ctrl + z varias veces [...]



1.- cuando un codigo modifica propiedades de un objeto... 'se pierden' varias 'bondades'/caracteristicas/... :-(
[p.e. undo/ctrl+z... cut/copy/paste... y algunas otras] ya que 'se vacia' la pila de niveles para 'des-hacer'
2.- podrias 'suspender' las acciones de la macro para 'permitir' que se termine un cut/copy/paste... PERO...
-> una vez 'pasteado'... NO podras 'recuperar' los niveles del 'des-hacer' :-((
[ademas de que 'me parece' que es un codigo -demasiado- 'machacante'/repetitivo/recursivo/...]
3.- otra [posibe] alternativa es que utilices [solamente] los formatos condicionales [y un codigo mas 'ligero']

te paso unos ejemplos al final ;)
si cualquier duda... comentas?
saludos,
hector.

1: si requieres que sea 'por codigo' la asignacion de los colores en el rango...
agrega las siguientes lineas a la macro que hace el proceso de 'coloreado' de las celdas...
-> ANTES de que de inicio a los cambios de colores en la linea del... ->If R < 6 Or R > 13 Or C > 6 Then<-
Select Case Application.CutCopyMode
Case xlCut, xlCopy
Do
DoEvents
Loop Until Application.CutCopyMode = False
End Select
=> y a partir de esta linea continuas con el: If R < 6 Or R > 13 Or C > 6 Then...

2: considerando que los formatos condicionales se 'sobre-ponen' a los formatos 'duros'/manuales/etc
selecciona el rango 'a colorear' [segun tu ejemplo: 'A6:F13'] y utiliza lo siguiente:
[menu] formato / formato / formato condicional...
elige condicion1 'por formula' y mete la siguiente formula: =y(fila()=celda("fila"),celda("columna")<7)
selecciona el color de la trama de tu preferencia [el amarillo que estas usando dentro del If...]
y 'acepta'... para posteriormente, pegar las siguientes lineas
en el modulo de codito de 'esa' hoja ==Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = True
End Sub

nota: considera lo comentado acerca de los formatos condicionales ya que [p.e.]
-> si copias 'hacia' el rango colorido 'desde' una celda con formatos condicionales
los formatos condicionales 'traidos'... -> van a prevalecer <- aun sobre los que 'pone' la macro <= OJO

Preguntas similares