Funcion CHOOSE pero en VBA

11/08/2004 - 23:17 por lamarse | Informe spam
Hola de nuevo.
Esta vez me encuentro con lo siguiente:

En una hoja (celda D4), tengo aplicada esta funcion:

=CHOOSE(C4;"AVISO";"CONSULTAS";"TECNICO";"902702702";;;;;"")

El caso es que la celda D4 la quiero borrar (su contenido) manualmente
cuando quiera, asi que se me elimina la funcion. Por lo tanto me
gustaria aplicar esa funcion en VBA para que siempre se aplique a D4
(indiferentemente de su contenido).

Otra funcion me indica que cuando D4="" (nada, o sea, lo borro lo que
hubiera tenido) then C4=9 (que a su vez me indica que D4="", como se
puede ver).

El caso es que quisiera usar esa funcion desde VBA pero no se
correctamente hacerlo.

Tengo esta base, (pero sé que me faltan cosas)

Function GetChoice(Ind As Integer)
GetChoice = Choose(Ind, "AVISO", "CONSULTAS", "TECNICO")
End Function

Sí, sí, lo que hay aqui arriba esta incompleto para mis necesidades,
pero el caso es que no sé qué le falta ni cómo hacerlo para que me
funcione como si estubiera la funcion en D4 (como esta ahora y
funciona... hasta que borro su contenido a mano).

Gracias de antemano.

Victor

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
12/08/2004 - 01:08 | Informe spam
hola, victor !

... celda D4 tengo aplicada esta funcion:
=CHOOSE(C4;"AVISO";"CONSULTAS";"TECNICO";"902702702";;;;;"")
... la celda D4 la quiero borrar ... manualmente cuando quiera, asi que se me elimina la funcion.
... me gustaria aplicar esa funcion en VBA para que siempre se aplique a D4 [...]



[creo que] podrias 'simplificarte' las cosas si 'simplemente'...
-> sumas 1 al contenido de 'c4' [en la funcion 'choose'] y...
-> 'agregas' una cadena 'vacia' como 'primera seleccion' [misma funcion] p.e.
=choose(c4+1;"";"AVISO";..)
[a menos que llegaran a 'quedar' valores 'negativos' en 'c4', en cuyo caso, modificarias a]...
=choose(abs(c4)+1;"";"AVISO";..)

saludos,
hector.
Respuesta Responder a este mensaje
#2 L. A. M.
12/08/2004 - 01:10 | Informe spam
Hola Víctor, inicia la grabación de una macro, te ubicas en la celda de la
fórmula, oprimes la tecla F2 para editar la fórmula, das Enter y terminas de
grabar la macro. Revisa el código de la macro y ahí está la instrucción que
debes colocar en VBA.

Luis


"victor" escribió en el mensaje
news:
Hola de nuevo.
Esta vez me encuentro con lo siguiente:

En una hoja (celda D4), tengo aplicada esta funcion:

=CHOOSE(C4;"AVISO";"CONSULTAS";"TECNICO";"902702702";;;;;"")

El caso es que la celda D4 la quiero borrar (su contenido) manualmente
cuando quiera, asi que se me elimina la funcion. Por lo tanto me
gustaria aplicar esa funcion en VBA para que siempre se aplique a D4
(indiferentemente de su contenido).

Otra funcion me indica que cuando D4="" (nada, o sea, lo borro lo que
hubiera tenido) then C4=9 (que a su vez me indica que D4="", como se
puede ver).

El caso es que quisiera usar esa funcion desde VBA pero no se
correctamente hacerlo.

Tengo esta base, (pero sé que me faltan cosas)

Function GetChoice(Ind As Integer)
GetChoice = Choose(Ind, "AVISO", "CONSULTAS", "TECNICO")
End Function

Sí, sí, lo que hay aqui arriba esta incompleto para mis necesidades,
pero el caso es que no sé qué le falta ni cómo hacerlo para que me
funcione como si estubiera la funcion en D4 (como esta ahora y
funciona... hasta que borro su contenido a mano).

Gracias de antemano.

Victor





Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.733 / Virus Database: 487 - Release Date: 08/02/2004
Respuesta Responder a este mensaje
#3 David García
12/08/2004 - 02:10 | Informe spam
Otra posibilidad, tal vez más fácil de manipular a tus
necesidades: Intentá con este código...

Sub choo()
Range("A4").Select
n = ActiveCell.Value
Select Case n
Case 0: r = ""
Case 1: r = "AVISO"
Case 2: r = "CONSULTAS"
Case 3: r = "TECNICO"
Case Else: r = "No registrado..."
End Select
ActiveCell.Value = r
End Sub

Este código "captura" el contenido de la celda A4, así
que ya no tenés ni siquiera qué posicionarte en esa
celda. Simplemente ejecutás el macro... y ya!

Exitos. ;)

Hola de nuevo.
Esta vez me encuentro con lo siguiente:

En una hoja (celda D4), tengo aplicada esta funcion:

=CHOOSE


(C4;"AVISO";"CONSULTAS";"TECNICO";"902702702";;;;;"")

El caso es que la celda D4 la quiero borrar (su


contenido) manualmente
cuando quiera, asi que se me elimina la funcion. Por lo


tanto me
gustaria aplicar esa funcion en VBA para que siempre se


aplique a D4
(indiferentemente de su contenido).

Otra funcion me indica que cuando D4="" (nada, o sea, lo


borro lo que
hubiera tenido) then C4=9 (que a su vez me indica que


D4="", como se
puede ver).

El caso es que quisiera usar esa funcion desde VBA pero


no se
correctamente hacerlo.

Tengo esta base, (pero sé que me faltan cosas)

Function GetChoice(Ind As Integer)
GetChoice = Choose


(Ind, "AVISO", "CONSULTAS", "TECNICO")
End Function

Sí, sí, lo que hay aqui arriba esta incompleto para mis


necesidades,
pero el caso es que no sé qué le falta ni cómo hacerlo


para que me
funcione como si estubiera la funcion en D4 (como esta


ahora y
funciona... hasta que borro su contenido a mano).

Gracias de antemano.

Victor
.

Respuesta Responder a este mensaje
#4 Héctor Miguel
12/08/2004 - 06:08 | Informe spam
hola [de nuevo], victor !

're-leyendo' la consulta que has hecho... me doy cuenta de lo que solicitas :))
... la celda D4 la quiero borrar ... manualmente cuando quiera [...]
... me gustaria aplicar esa funcion en VBA para que siempre se aplique a D4 [...]



[al parecer...] necesias 'reponer' la formula que [intencionalmente] borras en ocasiones :))
-> basandome en tu anterior mensaje <-... prueba con una macro +/- como la siguiente...
[cuando 'estes' en alguna celda 'borrada' dentro del rango 'D4:D33']
en un modulo de codigo 'normal' ==Sub ReponerFormula()
If Intersect(ActiveCell, Range("d4:d33")) Is Nothing Then Exit Sub
ActiveCell.Formula = _
"=Choose(c" & ActiveCell.Row & ",""Aviso"",""Consultas"",""Tecnico"",""Equis"")"
End Sub
¨¨¨¨¨¨¨¨¨¨¨¨
'observa' que el separador de argumentos 'debe ser' la coma [vba=US] :((
y las formula con textos 'entre-comillados'... 'requieren' DOBLES comillas dobles :))
-> si quieres usar el separador de argumentos que 'acostumbras' [diferente de coma -US-]...
puedes usar la propiedad 'FormulaLocal' [en lugar de ActiveCell.Formula] ->pero<-...
'deberas' estar cierto que es el 'apropiado' [en caso de correr la macro] en otra/s maquina/s

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida