Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Colorear Rango Seleccionado con Macro

904 views
Skip to first unread message

x.ma...@gmail.com

unread,
Jun 14, 2007, 4:41:39 PM6/14/07
to
Hola a todos,
Necesito colorear mediante botones macro un rango de celdas
seleccionado. Los colores son varios y el rango es aleatorio, en
función de las necesidades del planning.

Podeis ayudarme.

Gracias anticipadas.
Xavier

zz

unread,
Jun 14, 2007, 5:46:35 PM6/14/07
to
Para colorear el rango activo:

activecell.interior.color=[aqui el color deseado, puede ser expresado en
valores RGB[red,green,blue],o usar las constantes de color de Visual
Basic[VbRed,Vbcyan,Vbwhite,VbBlack,etc.] o tomado de la constante
.colorindex, en cuyo caso sería activecell.interior.colorindex=n, donde n es
el indice del color dentro de la tabla de colores.]

Para colorear una celda constante:

range(col,fila).interior.color=[aqui el color deseado, puede ser expresado
en valores RGB[red,green,blue],o usar las constantes de color de Visual
Basic[VbRed,Vbcyan,Vbwhite,VbBlack,etc.] o tomado de la constante
.colorindex, en cuyo caso sería activecell.interior.colorindex=n, donde n es
el indice del color dentro de la tabla de colores.]

Para colorear la celda activa con un color aleatorio puedes usar la
siguiente función:

Sub rand_color()
Dim red As Integer
Dim blue As Integer
Dim green As Integer
red = Application.WorksheetFunction.RandBetween(0, 255)
blue = Application.WorksheetFunction.RandBetween(0, 255)
green = Application.WorksheetFunction.RandBetween(0, 255)
ActiveCell.Interior.Color = RGB(red, green, blue)
End Sub

de como eligas los criterio con lo que seleccionar la celda depende
completamente de tí.


saludos


--
--
--
Tambien puedes visitar
--
Walter R . [zz]

<x.ma...@gmail.com> wrote in message
news:1181853699....@j4g2000prf.googlegroups.com...

x.ma...@gmail.com

unread,
Jun 15, 2007, 1:58:09 AM6/15/07
to
Gracias Walter, probaré tus indicaciones.
Por cierto, cómo puedo eliminar un comentario si existe en el momento
de colorear el rango seleccionado?

Saludos
Xavier

zz ha escrit:

zz

unread,
Jun 15, 2007, 9:41:25 AM6/15/07
to
si ya tienes seleccionada la celda:


--
--
--
Tambien puedes visitar
--
Walter R . [zz]

<x.ma...@gmail.com> wrote in message
news:1181887089.6...@o11g2000prd.googlegroups.com...

zz

unread,
Jun 15, 2007, 9:42:50 AM6/15/07
to
si ya tienes seleccionada la celda:

ActiveCell.Comment.Delete

si no tienes seleccionada la celda:

range("a1").comment.delete
--------^--cambiar aqui la referencia de la celda.


saludos.


--
--
--
Tambien puedes visitar
--
Walter R . [zz]

<x.ma...@gmail.com> wrote in message
news:1181887089.6...@o11g2000prd.googlegroups.com...

x.ma...@gmail.com

unread,
Jun 25, 2007, 4:46:18 PM6/25/07
to
On 15 jun, 15:42, "zz" <jarious....@gmail.com> wrote:
> si ya tienes seleccionada lacelda:

>
> ActiveCell.Comment.Delete
>
> si no tienes seleccionada lacelda:
>
> range("a1").comment.delete
> --------^--cambiar aqui la referencia de lacelda.
>
> saludos.
> --
> --
> --
> Tambien puedes visitar
> --
> Walter R . [zz]
>
> <x.mas...@gmail.com> wrote in message

>
> news:1181887089.6...@o11g2000prd.googlegroups.com...
> Gracias Walter, probaré tus indicaciones.
> Por cierto, cómo puedo eliminar un comentario si existe en el momento
> decolorearel rango seleccionado?

>
> Saludos
> Xavier
>
> zz ha escrit:
>
> > Paracolorearel rango activo:

>
> > activecell.interior.color=[aqui el color deseado, puede ser expresado en
> > valores RGB[red,green,blue],o usar las constantes de color de Visual
> > Basic[VbRed,Vbcyan,Vbwhite,VbBlack,etc.] o tomado de la constante
> > .colorindex, en cuyo caso sería activecell.interior.colorindex=n, donde n
> > es
> > el indice del color dentro de la tabla de colores.]
>
> > Paracolorearunaceldaconstante:
>
> > range(col,fila).interior.color=[aqui el color deseado, puede ser expresado
> > en valores RGB[red,green,blue],o usar las constantes de color de Visual
> > Basic[VbRed,Vbcyan,Vbwhite,VbBlack,etc.] o tomado de la constante
> > .colorindex, en cuyo caso sería activecell.interior.colorindex=n, donde n
> > es
> > el indice del color dentro de la tabla de colores.]
>
> > Paracolorearlaceldaactiva con un color aleatorio puedes usar la

> > siguiente función:
>
> > Sub rand_color()
> > Dim red As Integer
> > Dim blue As Integer
> > Dim green As Integer
> > red = Application.WorksheetFunction.RandBetween(0, 255)
> > blue = Application.WorksheetFunction.RandBetween(0, 255)
> > green = Application.WorksheetFunction.RandBetween(0, 255)
> > ActiveCell.Interior.Color = RGB(red, green, blue)
> > End Sub
>
> > de como eligas los criterio con lo que seleccionar laceldadepende
> > completamente de tí.
>
> > saludos
>
> > --
> > --
> > --
> > Tambien puedes visitar
> > --
> > Walter R . [zz]
>
> > <x.mas...@gmail.com> wrote in message

> >news:1181853699....@j4g2000prf.googlegroups.com...
> > Hola a todos,
> > Necesitocolorearmediante botonesmacroun rango de celdas

> > seleccionado. Los colores son varios y el rango es aleatorio, en
> > función de las necesidades del planning.
>
> > Podeis ayudarme.
>
> > Gracias anticipadas.
> > Xavier

Hola Walter,
Desde tu mensaje he dado vueltas y vueltas para obtener mi objetivo.
Te informo que gracias a este foro, y a mi perseverancia, he
conseguido parte de mis objetivos.
Te acompaño la parte del mensaje dónde puedo colorear el rango
seleccionado, además de la
función de añadir un comentario en la primera celda del rango
seleccionado.

Sub Macro5()
Dim Celda_color As Range
For Each Celda_color In Selection
With Selection.Interior
.ColorIndex = 38
.Pattern = xlSolid
End With
Next

Call Añadir_comentario

End Sub

Private Sub Añadir_comentario()
Dim Celda_coment As String
With ActiveCell
If Not .Comment Is Nothing Then Exit Sub
Celda = .Address
.AddComment ""
.Comment.Visible = True
ActiveSheet.Shapes(.Comment.Shape.Name).Select
SendKeys " {bs}"
Application.OnTime Now, "Ocultar_comentario"
End With
End Sub

Private Sub Ocultar_comentario()
ActiveCell.Comment.Visible = False
End Sub


Ahora el problema lo tengo con la sub Ocultar_comentario.
Resulta que para ocultar el cuadro de diálogo del comentario tengo que
volver a seleccionar la celda dónde estoy
añadiendo el comentario. Busco la forma de poder de cerrar el
comentario seleccionando
cualquier celda de la hoja y no obligarme el seleccionar la celda del
comentario.

Estoy buscando por el foro la forma de hacerlo, no obstante, si
conoces la forma de hacerlo te agradeceria tu
colaboración.

Saludos Cordiales y gracias de antemano por tu colaboración.

Xavier

zz

unread,
Jun 29, 2007, 12:34:28 PM6/29/07
to
>Busco la forma de poder de cerrar el
>comentario seleccionando
>cualquier celda de la hoja y no obligarme el seleccionar la celda del
>comentario.

quizá, y sólo como sugerencia, pudieras hacer uan ligera modificación al
procedimiento

>Private Sub Ocultar_comentario()
>ActiveCell.Comment.Visible = False
>End Sub

como lo tienes siempre te va a ocultar el comentario de la celda activa,
deberías tener una manera de discernir cual o que comentario quieres
ocultar, sin embargo si te interesa ocultar sólo el último comentario:

declara una variable global en tu procedimiento

Dim LastCell as string

Private Sub Añadir_comentario()
Dim Celda_coment As String
With ActiveCell

LastCell=activecell.address ' colocas el nombre de la ultima celda activa


If Not .Comment Is Nothing Then Exit Sub
Celda = .Address
.AddComment ""
.Comment.Visible = True
ActiveSheet.Shapes(.Comment.Shape.Name).Select
SendKeys " {bs}"
Application.OnTime Now, "Ocultar_comentario"
End With
End Sub

y en el procedimiento de "ocultamiento" del comentario:

Private Sub Ocultar_comentario()
range(LastCell).Comment.Visible = False
End Sub

espero que te sirva.

--
--
--
Tambien puedes visitar
--
Walter R . [zz]

<x.ma...@gmail.com> wrote in message
news:1182804378.1...@j4g2000prf.googlegroups.com...

0 new messages