Microsoft Excel me da un error al seleccionar una columna para borrar su contenido
Me funciona correctamente, pero me daun error cuando selecciono la columna B7:B28 para borrar todo su contenido que me sale un error 13 en periodo de ejecución, no coinciden los tipos, ¿qué puedo añadirle para que me deje borrar el contenido y el color de todas las celdas de la columna b a la vez?
En la misma Hoja tengo una base de datos ( Buscar V) donde en unas determinadas celdas aparecen las provincias según la comunidad autónoma que has seleccionado en "B4"
En la columna "B" tengo validación a dichas celdas por lo que me aparece un desplegable con las provincias según la comunidad autónoma seleccionada en "B4", hasta aquí todo bien.
Necesito adjudicarle a cada provincia un color de fondo en las celdas de la columna "B", pero con la particularidad de poder cambiarlo cuantas veces necesite y que si en un desplegable de una celda de la columna "B" selecciono una provincia me aporte también el color,
no se si tengo que poner celdas con el nombre de la provincia y el color en una misma celda o en celdas distintas,
tengo: Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Asigna color segun provincia insertada en Hoja Datos
Set Relcell = Range("B7:B28")
If Not Application.Intersect(Relcell, Range(Target.Address(False, False))) Is Nothing Then
Application.EnableEvents = False
Select Case UCase(Trim(Target.Value))
Case "ÁLAVA"
Target.Interior.ColorIndex = RGB(80, 237, 194)
La idea es que el color en vez de decirle el color que es, decirle que lo copie de una celda determinada, por ejemplo en H2 tengo Alicante con fondo amarillo, o en H2 tengo Alicante y en I2 tengo la celda sin valor y con fondo amarillo
Un saludo y gracias de antemano
09/07/2009
Experto
Hola, mira esta macro y comprueba si te soluciona tu problema:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$7" Then
If Target.Value = "ALAVA" Then
Target.Interior.ColorIndex = Range("F7").Interior.ColorIndex
End If
End If
End Sub
Tan solo le dices de donde tiene que tomar el color. Si necesitas alguna aclaración me lo dices.
>Un saludo
>Julio
PD: Puntúa y finaliza la consulta, si quieres dejar un comentario es bienvenido. Gracias.
09/07/2009
Usuario
Soy muy novato en sba y he puesto la macro y no me funciona he itentado ponerla tal cual y no funciona y sustituyendo en mi macro por esta en la parte de la provincia alaba tampoco me funciona, me tiene que valerpara que coloree la celda independientemente de la altura de la fila B en que la ponga
10/07/2009
Experto
Hola, vamos a ver si lo hacemos correctamente, para colocar la macro debes de hacerlo así:
1º Estando en tu hoja de Excel (supongamos que es la Hoja1) pulsas Alt+F11 y se abrirá el editor de VBA en la columna de la izquierda verás los objetos que contiene el Libro que por defecto son Hoja1, Hoja2, Hoja3 y ThisWorkbook. Como estamos en la Hoja1 hacemos doble click sobre ese icono (Hoja1) y se te abrirá una pantalla en blanco en esa pantalla copias y pegas esta macro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Colunm=2 Then
If Target.Value = "ALAVA" Then
Target.Interior.ColorIndex = Range("F7").Interior.ColorIndex
End If
End If
End Sub
Esta macro comprueba que estés en la Col B(2) que en la celda esté escrito ALABA y si es así copia el color de la celda F7 y lo pega en la celda donde escribiste ALABA, si quieres poner un color diferente dependiendo de los valores que escribas o selecciones de una lista para cada provincia tendrás que seguir poniendo instrucciones y tener una tabla de colores en celdas diferentes:
If Target.Value="ASTURIAS"
Target.Interior.ColorIndex = Range("C7").Interior.ColorIndex
En fin que tendrás que ir llenando la macro con todos los datos, tantas provincias diferentes tantas lineas, si quieres colorear por ejemplo un grupo con el mismo color quedaría así:
If Target.Value="ALAVA" Or Target.Value="VIZCAYA" Or Target.Value="GUIPUZCOA" Then
Target.Interior.ColorIndex = Range("C7").Interior.ColorIndex
Vas añadiendo Or y coloreas el conjunto de provincias a tu conveniencia.
Esperemos que me hayas entendido.
>Un saludo
>Julio
En la misma Hoja tengo una base de datos ( Buscar V) donde en unas determinadas celdas aparecen las provincias según la comunidad autónoma que has seleccionado en "B4"
En la columna "B" tengo validación a dichas celdas por lo que me aparece un desplegable con las provincias según la comunidad autónoma seleccionada en "B4", hasta aquí todo bien.
Necesito adjudicarle a cada provincia un color de fondo en las celdas de la columna "B", pero con la particularidad de poder cambiarlo cuantas veces necesite y que si en un desplegable de una celda de la columna "B" selecciono una provincia me aporte también el color,
no se si tengo que poner celdas con el nombre de la provincia y el color en una misma celda o en celdas distintas,
tengo: Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Asigna color segun provincia insertada en Hoja Datos
Set Relcell = Range("B7:B28")
If Not Application.Intersect(Relcell, Range(Target.Address(False, False))) Is Nothing Then
Application.EnableEvents = False
Select Case UCase(Trim(Target.Value))
Case "ÁLAVA"
Target.Interior.ColorIndex = RGB(80, 237, 194)
La idea es que el color en vez de decirle el color que es, decirle que lo copie de una celda determinada, por ejemplo en H2 tengo Alicante con fondo amarillo, o en H2 tengo Alicante y en I2 tengo la celda sin valor y con fondo amarillo
Un saludo y gracias de antemano
09/07/2009
Experto
Hola, mira esta macro y comprueba si te soluciona tu problema:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$7" Then
If Target.Value = "ALAVA" Then
Target.Interior.ColorIndex = Range("F7").Interior.ColorIndex
End If
End If
End Sub
Tan solo le dices de donde tiene que tomar el color. Si necesitas alguna aclaración me lo dices.
>Un saludo
>Julio
PD: Puntúa y finaliza la consulta, si quieres dejar un comentario es bienvenido. Gracias.
09/07/2009
Usuario
Soy muy novato en sba y he puesto la macro y no me funciona he itentado ponerla tal cual y no funciona y sustituyendo en mi macro por esta en la parte de la provincia alaba tampoco me funciona, me tiene que valerpara que coloree la celda independientemente de la altura de la fila B en que la ponga
10/07/2009
Experto
Hola, vamos a ver si lo hacemos correctamente, para colocar la macro debes de hacerlo así:
1º Estando en tu hoja de Excel (supongamos que es la Hoja1) pulsas Alt+F11 y se abrirá el editor de VBA en la columna de la izquierda verás los objetos que contiene el Libro que por defecto son Hoja1, Hoja2, Hoja3 y ThisWorkbook. Como estamos en la Hoja1 hacemos doble click sobre ese icono (Hoja1) y se te abrirá una pantalla en blanco en esa pantalla copias y pegas esta macro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Colunm=2 Then
If Target.Value = "ALAVA" Then
Target.Interior.ColorIndex = Range("F7").Interior.ColorIndex
End If
End If
End Sub
Esta macro comprueba que estés en la Col B(2) que en la celda esté escrito ALABA y si es así copia el color de la celda F7 y lo pega en la celda donde escribiste ALABA, si quieres poner un color diferente dependiendo de los valores que escribas o selecciones de una lista para cada provincia tendrás que seguir poniendo instrucciones y tener una tabla de colores en celdas diferentes:
If Target.Value="ASTURIAS"
Target.Interior.ColorIndex = Range("C7").Interior.ColorIndex
En fin que tendrás que ir llenando la macro con todos los datos, tantas provincias diferentes tantas lineas, si quieres colorear por ejemplo un grupo con el mismo color quedaría así:
If Target.Value="ALAVA" Or Target.Value="VIZCAYA" Or Target.Value="GUIPUZCOA" Then
Target.Interior.ColorIndex = Range("C7").Interior.ColorIndex
Vas añadiendo Or y coloreas el conjunto de provincias a tu conveniencia.
Esperemos que me hayas entendido.
>Un saludo
>Julio
1 Respuesta
Respuesta de paramisolo
1