"CONTROL DE NUMERO"

14/04/2009 - 23:23 por JORGE EC | Informe spam
Mi consulta es la siguiente:

Como crear un botón de "CONTROL DE NUMERO" UTILIZANDO LA BARRA DE
HERRAMIENTAS DE "FORMULARIOS" O EL DE "CUADOR DE CONTROLES", que haga que la
celda a la que está vinculado el valor que va aumentando o disminuyendo tenga
como valor máximo y minimo los limites establecidos en dos celdas, es decir,
por ejemplo en la celda A1=1, Y LA CELDA A2 , entonces límites serían entre
1 y 20.

El problema es que estos limites solo se los puede establecer en el "CONTROL
DE NUMEROS" MANUALMENTE cunado se va al "FORMATO DE CONTROL" y las celdas A1
y A2 van variando según otros calculos.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
15/04/2009 - 02:04 | Informe spam
hola, jorge !

(creo que) seria mejor utilizar un control de numero de "cuadro de controles"
si suponemos que cambian por modificacion directa (NO por resultado de calculos y formulas en "otras celdas")
la instruccion podria ser tan sencilla como poner algo +/- como lo siguiente en el modulo de codigo de "esa" hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a1:a2")) Is Nothing Then Exit Sub
With SpinButton1
.Min = Range("a1")
.Max = Range("a2")
End With
End Sub

PERO... si el cambio es por modificaciones y variados calculos "en otras celdas", lo que hay que determinar es:
cual es (exactamente) la causa por la que cambiarian de valor las celdas "control" (A1 y A2 ???)

saludos,
hector.

__ OP __
Como crear un boton de "CONTROL DE NUMERO"
UTILIZANDO LA BARRA DE HERRAMIENTAS DE "FORMULARIOS" O EL DE "CUADOR DE CONTROLES"
que haga que la celda a la que esta vinculado el valor que va aumentando o disminuyendo
tenga como valor maximo y minimo los limites establecidos en dos celdas
es decir, por ejemplo en la celda A1=1, Y LA CELDA A2 , entonces limites serian entre 1 y 20.
El problema es que estos limites solo se los puede establecer en el "CONTROL DE NUMEROS" MANUALMENTE
cunado se va al "FORMATO DE CONTROL" y las celdas A1 y A2 van variando segun otros calculos.
Respuesta Responder a este mensaje
#2 JORGE EC
15/04/2009 - 15:21 | Informe spam
Muchas gracias hector por la información:

Te explico mas o menos como va el asunto

Las celdas A1 siempre va a ser = 1
Pero la Celda A2 puede variar, ya que en la celda A2 existe una instrucción
de INDICE, que busca un valor en una matriz según sea el caso, por esta razon
puede variar siendo A2, 50, 20, 17, etc.

Entonces lo que yo quería es que en una celda por ejemplo la A3 me devuelva
un numero general por "CONTROL DE NUMERO", ya sea este utilizando el de
"CUADRO DE CONTROLES" O EL DE "FORMULARIOS".

Entonces el valor de la celda A3, no va a ser mayor que el de la celda A2,
ya que el valor de la celda A3, yo lo ulizo para un hipervínculo.

Basicamente lo que estoy haciendo es un administrador de documentos por
medio de excel, en el que tu ingresas o buscas en un "CUADRO COMBINADO", el
nombre de una área, en otro cuadro combinado el nombre de un tipo de
documento, y con el "CONTROL DE NUMERO", ubicas el numero del documento por
ejemplo: \\SERVIDOR\INGENIERIA\REGISTRO1.XLS O
\\SERVIDOR\CONTABILIDAD\REPORTE34.DOC, entonces la cantidad de registros que
tiene INGENIERIA es 38, y la cantidad de reportes de CONTABILIDAD es 49,
entonces ya logre generar en las celda A2 estos valores, 38 o 49, etc según
sea el caso, y lo que quiero es que con el "CONTROL DE NUMERO", no sea mayor
al de la celda A2, ya que al generar un numero mayor que el de la celda A2 en
la celda A3, genera un hipervinculo que no existe.

"Héctor Miguel" wrote:

hola, jorge !

(creo que) seria mejor utilizar un control de numero de "cuadro de controles"
si suponemos que cambian por modificacion directa (NO por resultado de calculos y formulas en "otras celdas")
la instruccion podria ser tan sencilla como poner algo +/- como lo siguiente en el modulo de codigo de "esa" hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a1:a2")) Is Nothing Then Exit Sub
With SpinButton1
.Min = Range("a1")
.Max = Range("a2")
End With
End Sub

PERO... si el cambio es por modificaciones y variados calculos "en otras celdas", lo que hay que determinar es:
cual es (exactamente) la causa por la que cambiarian de valor las celdas "control" (A1 y A2 ???)

saludos,
hector.

__ OP __
> Como crear un boton de "CONTROL DE NUMERO"
> UTILIZANDO LA BARRA DE HERRAMIENTAS DE "FORMULARIOS" O EL DE "CUADOR DE CONTROLES"
> que haga que la celda a la que esta vinculado el valor que va aumentando o disminuyendo
> tenga como valor maximo y minimo los limites establecidos en dos celdas
> es decir, por ejemplo en la celda A1=1, Y LA CELDA A2 , entonces limites serian entre 1 y 20.
> El problema es que estos limites solo se los puede establecer en el "CONTROL DE NUMEROS" MANUALMENTE
> cunado se va al "FORMATO DE CONTROL" y las celdas A1 y A2 van variando segun otros calculos.



Respuesta Responder a este mensaje
#3 Héctor Miguel
15/04/2009 - 19:18 | Informe spam
hola, Jorge !

Te explico mas o menos como va el asunto
Las celdas A1 siempre va a ser = 1
Pero la Celda A2 puede variar ...



ok, entonces solo nos debe interesar el "como/por que" cambia el contenido de A2

ya que en la celda A2 existe una instruccion de INDICE
que busca un valor en una matriz segun sea el caso
por esta razon puede variar siendo A2, 50, 20, 17, etc.



y... cual es (exactamente) esa instruccion usando "indice" ???

saludos,
hector.
Respuesta Responder a este mensaje
#4 JORGE EC
15/04/2009 - 21:40 | Informe spam
Gracias nuevamente:

Te copio los datos con todos los valores que de las celdas,

El CONTROL DE NUMERO que cree, genera por lo pronto numeros del 1 al 100, y
estos numeros se generan en una hoja llamada CUADRO COMBINACIONES en la celda
I1 de esa hoja.

Luego en esta hoja la celda B26=CONTAR.SI(DATOS!J9:J336;B25)

EN donde la celda B25=CONCATENAR(F19;F5)

y F5=INDICE(A5:B17;E5;2) en donde E5 = a un numero que se genera al usar un
CUADRO COMBINADO de FORMULARIOS

y F19=INDICE(A20:B21;E19;2) en donde E19 a un numero que se genera al usar
un CUADRO COMBINADO de FORMULARIOS

FINALMENTE en la celda I2=CONCATENAR(F19;F5;I1), lo que me genera el inicio
del nombre de un documento.

En otra celda I3=CONCATENAR("\\SERVIDOR\INGENIERIA\";I2;".pdf"), este
genera el vinculo del documento.

Y POR ÚLTIMO EN UNA CELDA I4=HIPERVINCULO(I3), con lo que logro ir al
documento, que para mi caso todos son formatos pdf.

Volviendo al principio es que el "CONTRO DE NUMERO" genera en la celda I1
hasta el numero 100, pero hay casos en que no son 100, y como te puedes dar
cuenta, el valor máximo es el de la celda B26, que es la que va cambiando.












"Héctor Miguel" wrote:

hola, Jorge !

> Te explico mas o menos como va el asunto
> Las celdas A1 siempre va a ser = 1
> Pero la Celda A2 puede variar ...

ok, entonces solo nos debe interesar el "como/por que" cambia el contenido de A2

> ya que en la celda A2 existe una instruccion de INDICE
> que busca un valor en una matriz segun sea el caso
> por esta razon puede variar siendo A2, 50, 20, 17, etc.

y... cual es (exactamente) esa instruccion usando "indice" ???

saludos,
hector.



Respuesta Responder a este mensaje
#5 Héctor Miguel
15/04/2009 - 23:45 | Informe spam
hola, Jorge !

por lo que comentas, la celda [B26] es la que realmente determina el maximo para el control de numero
hay algunos inconvenientes, como el hecho de que los eventos de la hoja (como el '_change') NO se disparan
cuando los cambios en celdas son por modificaciones a objetos incrustados (como los combos de formuario)
en este caso se requiere del evento '_calcuate' (con algunas restricciones para evitar una constante repeticion del codigo)

OJO: el control de numero SI tendras que cambiarlo por un SpinButton de la barra de herramientas "cuadro de controles"
y el codigo que puedes usar en el modulo de "esa" hoja es +/- el siguiente:

Dim Actual As Integer
Private Sub Worksheet_Calculate()
If Range("b26") = Actual Then Exit Sub
Actual = Range("b26")
SpinButton1.Max = Actual
If Range("i1") > Actual Then Range("i1") = Actual
End Sub

saludos,
hector.

__ OP __
El CONTROL DE NUMERO que cree, genera por lo pronto numeros del 1 al 100
y estos numeros se generan en una hoja llamada CUADRO COMBINACIONES en la celda I1 de esa hoja.
Luego en esta hoja la celda B26=CONTAR.SI(DATOS!J9:J336;B25)
EN donde la celda B25=CONCATENAR(F19;F5)
y F5=INDICE(A5:B17;E5;2) en donde E5 = a un numero que se genera al usar un CUADRO COMBINADO de FORMULARIOS
y F19=INDICE(A20:B21;E19;2) en donde E19 a un numero que se genera al usar un CUADRO COMBINADO de FORMULARIOS
FINALMENTE en la celda I2=CONCATENAR(F19;F5;I1), lo que me genera el inicio del nombre de un documento.
En otra celda I3=CONCATENAR("\\SERVIDOR\INGENIERIA\";I2;".pdf"), este genera el vinculo del documento.
Y POR ULTIMO EN UNA CELDA I4=HIPERVINCULO(I3), con lo que logro ir al documento, que para mi caso todos son formatos pdf.
Volviendo al principio es que el "CONTRO DE NUMERO" genera en la celda I1 hasta el numero 100
pero hay casos en que no son 100, y como te puedes dar cuenta, el valor maximo es el de la celda B26, que es la que va cambiando...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida