Contenido de una celda o color de fondo

Hola Amigos...
Necesito evaluar el contenido total o parcial de una celda, o en su defecto el color de fondo de la misma, ya que si contiene el string 'total' o el color de fondo gris.
Les explico... Tengo una macro que inserta una linea y dentro del formato existen lineas de subtotales, la macro no debe permitir insertar lineas si mi celda activa se encuentra en una linea de subtotal. Gracias...

1 Respuesta

Respuesta
1
Con procedimientos que te anexo puedes hacer lo que quieres, solo adapta el que mejor se acomode a tus datos...
'Aqui SI la celda contiene en alguna parte de su cotenido la palabra Total, no inserta la fila
Public Sub InsertarFilas_1()
Dim strValor As String
strValor = ActiveCell.Value
If InStr(1, strValor, "Total", vbTextCompare) > 0 Then
MsgBox "No se puede insertar fila"
Else
ActiveCell.EntireRow.Insert
End If
End Sub
'Aqui SI el color de fondo es Gris 25%, no inserta la fila
Public Sub InsertarFilas_2()
Dim lngColor As Long
lngColor = ActiveCell.Interior.ColorIndex
If lngColor = 15 Then
MsgBox "No se puede insertar fila"
Else
ActiveCell.EntireRow.Insert
End If
End Sub
'Aqui, SI la celda contiene la palabra Total "Y" el color del fondo es Gris25%, no inserta la fila
Public Sub InsertarFilas_3()
Dim strValor As String
Dim lngColor As Long
Dim lngRes As Long
strValor = ActiveCell.Value
lngColor = ActiveCell.Interior.ColorIndex
lngRes = InStr(1, strValor, "Total", vbTextCompare)
If lngColor = 15 And lngRes > 0 Then
MsgBox "No se puede insertar fila"
Else
ActiveCell.EntireRow.Insert
End If
End Sub
'Aqui, SI la celda contiene la palabra Total "O" el color del fondo es Gris25%, no inserta la fila
Public Sub InsertarFilas_4()
Dim strValor As String
Dim lngColor As Long
Dim lngRes As Long
strValor = ActiveCell.Value
lngColor = ActiveCell.Interior.ColorIndex
lngRes = InStr(1, strValor, "Total", vbTextCompare)
If lngColor = 15 Or lngRes > 0 Then
MsgBox "No se puede insertar fila"
Else
ActiveCell.EntireRow.Insert
End If
End Sub
'Ten cuidado con los tonos de grises que uses, estos son los valores para los diferentes grises en la paleta de colores estandar
'Gris 80% = 56
'Gris 50% = 16
'Gris 40% = 48
'Gris 25% = 15
Saludos desde México...
Mauricio Baeza
[email protected]
Todo lo que no es dado es perdido
*==========================================*
La presente respuesta ha demandado un tiempo de lectura,
análisis, elaboración y redacción. A cambio, simplemente,
pretendo que te tomes un minuto para FINALIZARLA, si
hubiera satisfecho -en alguna medida- tu requerimiento.
En caso contrario, puedes preguntarme nuevamente
aclarando qué entendí mal o qué faltó.
Amigo Mauricio, tus ejemplos han sido muy buenos y útiles, pero debido a mi poca experiencia en visual basic, te pregunto lo siguiente, el fondo de las lineas de totales y sub totales son diferente (azul, celeste) por tal motivo se me ocurre que seria bueno preguntar al contrario si la celda no tiene ningún color de fondo que permita insertar la fila. Por otro lado la palabra total en el formato se encuentra escrita de varias formas "total", TOTAL, Total, por tanto no se si la va a procesar para todas. Te agradecería cualquier idea al respecto... y nuevamente gracias por tu colaboración...
Melvyn.
El siguiente procedimiento cumple las condiciones que quieres
Fondo = Ninguno
Total = cualquier variante TOTAL, total, Total, ToTaL, etc...
Public Sub InsertarFilas_5()
Dim strValor As String
Dim lngColor As Long
Dim lngRes As Long
strValor = LCase(ActiveCell.Value)
lngColor = ActiveCell.Interior.ColorIndex
lngRes = InStr(1, strValor, "total", vbTextCompare)
If lngRes = 0 And lngColor = -4142 Then
ActiveCell.EntireRow.Insert
Else
MsgBox "No se puede insertar fila"
End If
End Sub
Saludos desde México...
Mauricio Baeza
[email protected]
Todo lo que no es dado es perdido
*==========================================*
La presente respuesta ha demandado un tiempo de lectura,
análisis, elaboración y redacción. A cambio, simplemente,
pretendo que te tomes un minuto para FINALIZARLA, si
hubiera satisfecho -en alguna medida- tu requerimiento.
En caso contrario, puedes preguntarme nuevamente
aclarando qué entendí mal o qué faltó.
Amigo Mauricio, necesito de tu ayuda para saber como puedo evaluar la columna activa, para poder validar que si me encuentro el la columna 'AA' o una mayor no se pueda insertar ninguna linea en la macro, ya que se encuentra fuera del rango de la hoja,... gracias de antemano y ha sido muy valiosa tu colaboración...
Te sugiero mucho hacer una pregunta por sesión, te agradeceré si FINALIZAS esta pregunta y vuelves a realizar tu pregunta en otra sesión.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas