Como cambiar autoforma automaticamente con una formua

13/11/2008 - 13:33 por Fran | Informe spam
Haber si alguien me puede explicar como hacerlo si es que se puede
hacer.
Necesito hacer que si en la casilla A10 (por ejemplo) aparece el nº 1,
automáticamente aparezca una autoforma y si aparece el nº 2 aparezca
otra y si aparece el nº3 otra. Esto se tendría que hacer con alguna
formula ósea que tendría que aparecer la autoforma justo después de
escribir el número.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
14/11/2008 - 00:52 | Informe spam
hola, frank !

Mostrar la cita
podrias exponer algunos otros detalles como para poder (re)construir un modelo de trabajo "igual al tuyo" ???

- si las autoformas hay que dibujarlas... (tendra que ser por medio de macros y decidir si de borran las anteriores o que ???)
- si las autoformas ya las tienes en algun lado... (se necesita saber cual, de donde, a donde, etc. etc. etc.)

de preferencia, comenta los detalles +/- exactamente (incluye rangos, hojas, y ???)

saludos,
hector.
#2 Fran
14/11/2008 - 09:54 | Informe spam
Hola Hector, al final he hecho esto haber que te parece, no se si se
podria mejorar.

Dim Direccion As String
Dim Cambiar As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)

Valor = Range("O5").Value
If Valor = 0 Then
ActiveSheet.Shapes("Freeform 11").Visible = False
ActiveSheet.Shapes("Rectangle 14").Visible = False
ActiveSheet.Shapes("Oval 15").Visible = False

ElseIf Valor = 1 And Valor Then
ActiveSheet.Shapes("Freeform 11").Visible = True
ActiveSheet.Shapes("Rectangle 14").Visible = False
ActiveSheet.Shapes("Oval 15").Visible = False
ElseIf Valor = 2 Then
ActiveSheet.Shapes("Freeform 11").Visible = False
ActiveSheet.Shapes("Rectangle 14").Visible = True
ActiveSheet.Shapes("Oval 15").Visible = False
ElseIf Valor = 3 Then
ActiveSheet.Shapes("Freeform 11").Visible = False
ActiveSheet.Shapes("Rectangle 14").Visible = False
ActiveSheet.Shapes("Oval 15").Visible = True
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Direccion = ActiveCell.Address
Cambiar = True
End Sub
#3 Héctor Miguel
15/11/2008 - 01:14 | Informe spam
hola, Frank !

Mostrar la cita
(p.e.)

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$O$5" Then Exit Sub
ActiveSheet.Shapes("Freeform 11").Visible = Target = 1
ActiveSheet.Shapes("Rectangle 14").Visible = Target = 2
ActiveSheet.Shapes("Oval 15").Visible = Target = 3
End Sub

saludos,
hector.

__ el codigo expuesto __
Mostrar la cita
#4 Fran
17/11/2008 - 17:17 | Informe spam
Gracias Hector pero me da un error.

Lo que quiero hacer es por ejemplo cuando en una casilla en concreto
aparezca el nº1 aparezca una autoforma por ejemplo circular si
aparece el nº 2 aparezca una autoforma con forma cuadrada y
desaparezca la que tiene forma circular.

Gracias.
#5 Héctor Miguel
17/11/2008 - 20:56 | Informe spam
hola, Frank !

Mostrar la cita
- segun el codigo de tu ejemplo, la "casilla en concreto" es (o era ?) la celda $O$5

- podrias ser mas explicito en cuanto al error que obtienes ?
- cuando haces "que" y "donde" que sucede ?
- cual es exactamente el error ? (texto del mensaje y numero)
- que linea es la que lo causa ?

saludos,
hector.
Ads by Google
Search Busqueda sugerida