Jump to content
Sign in to follow this  
viejo

ANSWERED ultima fila de la primera columna con datos de un listbox

Recommended Posts

buen dia expertos, disculpen la molestia, alguien me podria ayudar para poder resolver lo siguiente:

tengo un listbox en el cual voy registrando un id y un nombre, solo que esto esta condicionado por ponerle id al nombre siempre y cuando sea negativo, si es positivo se le pone otro valor, mi duda radica en que cuando estoy registrando en el listbox los id y nombres que son negativos la consecutividad del id esta bien, es decir no se altera, pero cuando se registra un id y nombre positivo debe ponerse otro valor (sea numerico o lo que sea) entonces esto rompe con la consecutividad del id y nombre negativo

¿como puedo hacer que se tome el ultimo registro numerico (del id y nombre negativo) y asi cuando vuelva a registrar (osea darle click en el boton de registrar) ponga el consecutivo de ese ultimo registro numerico?

ejemplo:

id                         nombre                             resultado

1                            juan                                   negativo

2                           pedro                                 negativo

algo                      pablo                                 positivo

3                            jorge                                  negativo

algo                      leonardo                           positivo

4                            jesus                                 negativo

 

espero haberme dado a entender, ojala puedan ayudarme a poder lograr la consecuvidad numerica del negativo. de ante mano muchas gracias

dejo archivo muestra

 

ConsecutividadenNegativosolamente.xlsm

Share this post


Link to post
Share on other sites
Hace 1 hora, Luis paz dijo:

Etimado, no me funciona tu macro 

tal vez no me di a entender, lo que quiero es que me ayuden a que funcione, el codigo que lleva es porque hasta ahi llegué o hasta ahi pude hacer que funcionara.

Necesito hacer que el id cuando sea negativo y cuando sea positivo sea ...pues lo que sea, aqui lo importante para mi es que pueda "leerse" ese ultimo dato numerico en la columna de id dentro del listbox, para que despues de agregar el label de id cambie al consecutivo correspondiente

Share this post


Link to post
Share on other sites

Hola!

Asumiendo que el ID es un consecutivo definido puedes hacer lo siguiente:

 

Private Sub UserForm_Initialize()
    Call UFila
    Me.LblID.Caption = Uf
    LblID = Range("K1").Value
End Sub

En donde puedes aplicar el contador en la celda K1 donde puedes aplicar una formula:

=CONTARA(A2:A14)+1

 

 Para cargar el valor en el formulario cuando el procedimiento  lo llame.

Espero sea lo que buscas.

 

Saludos

JB

Share this post


Link to post
Share on other sites

no me funciona Jose BN, has de cuenta lo que quiero hacer es lo siguiente:

el id depende del resultado solo si este es negativo, osea si es positivo no se le dara id, esto se registrara en el listbox, entonces cuando existe un resultado positivo y como no se le da id al positivo y este es agregado al listbox deja un "hueco" al momento de poner un id negativo, y es aqui donde existe lo que no he podido hacer, osea que ese id negativo sea detectado (ya que es numerico) para que entonces poder poner el consecutivo de este, si por ejemplo el ultimo id negativo fue 2 entonces poner su consecutivo que seria 3, pero si hay no hay nada numerico saltarse al siguiente renglon y "leerlo" para que entonces si exista la condicion de agregar ese id negativo, aclarando que todo esto debe registrarse en la misma columna...no se si lo estoy explicando bien...espero me puedan ayudar

 

Share this post


Link to post
Share on other sites
Hace 16 horas, viejo dijo:

el id depende del resultado solo si este es negativo

Esto te da el ID correcto, ahora dinos qué quieres que aparezca en el listbox, qué pretendes con cada botómn, etc.
 

Private Sub UserForm_Initialize()
Dim max%, uF&

With Sheets("Hoja1")
    uF = .Range("A" & Rows.Count).End(xlUp).Row
    max = WorksheetFunction.max(.Range("A2:A" & uF))
End With
Me.LblID.Caption = max
End Sub

 

Share this post


Link to post
Share on other sites

gracias Haplox, la aportacion que me acabas de hacer es muy buena y genera que en el lblID aparezca el dato numerico mayor dentro de la columna A pero esto lo hace en la hoja y no en el listbox no digo que este mal de hecho es buen avance y hasta aqui esa parte esta bien, sin embargo lo que me hace falta es hacer la diferenciacion durante el proceso de agregar a listbox; es decir, si cuando yo le doy al botón agregar este agrega  al listbox (dependiendo de los optionbutton negativo o positivo) lo que hay en el LblID, TEXTBOX1, TEXTBOX2 Y TEXTBOX3 al listbox.

Si optbtn_POSITIVO esta en true entonces el lblID se quedará en blanco (o lo que haya en el, eso ya es otro tema) pero si el optbtn_NEGATIVO esta en true entonces pondrá el ultimo ID en lblID que se encuentre dentro del listbox si por ejemplo existiera dentro del listbox el 23 y luego en el siguiente renglon "nada", entonces el ultimo id que tendria que "leer" dentro del listbox es el 23, por lo tanto el siguiente listo para que se agregue seria el 24.

gracias

Share this post


Link to post
Share on other sites
Hace 13 horas, viejo dijo:

gracias Haplox, la aportacion que me acabas de hacer es muy buena y genera que en el lblID aparezca el dato numerico mayor dentro de la columna A

A ver porque sigues sin explicar bien lo que necesitas. De momento te dejo el fichero rellenando el listbox. Ahora ¿Si es positivo se pasa a la hoja con "algo" y no se añade al listbox? ¿Si es negativo se pasa a la hoja con su ID y que se liste en el listbox?

Copia de ConsecutividadenNegativosolamente.xlsm

Share this post


Link to post
Share on other sites

la funcion del formulario debe hacer que antes de ingresar (el boton de registrar) en todo en la hoja se debe ser pasado antes al listbox.

al agregar los datos al listbox antes debe estar condicionado si es positivo o si es negativo

si es positivo los datos de los textbox (1,2 y 3) y lblID se pasan tal cual al renglon que corresponda del listbox

si es negativo (he aqui el porque solicito su ayuda) necesito que exista alguna manera de que se "detecte dentro" del listbox el utimo dato numerico (tal cual en lo que publicaste en el post 7 pero que lo haga dentro del listbox y no dentro de la hoja) para que una vez que se logre tener tener los datos "acomodadas" dentro del listbox hasta ese entonces poderle dar al boton de registrar. gracias

Share this post


Link to post
Share on other sites

Hola viejopienso que deberías realizar un ejemplo en el que se muestre el antes, mientras y después ya que al igual que Haploxno acabo de entender lo que necesitas. Representa tu solicitud aunque sea en un folio donde representes el formulario cuando abre, cuando seleccionamos positivo/negativo y cuando pulsemos Registrar. Un saludo

Share this post


Link to post
Share on other sites
Hace 2 horas, viejo dijo:

exista alguna manera de que se "detecte dentro" del listbox el utimo dato numerico (tal cual en lo que publicaste en el post 7 pero que lo haga dentro del listbox y no dentro de la hoja)

¿Pero a ti que más te da que se detecte en la hoja o el Listbox? Mientras se detecte en algún lado... :huh:

Hace 2 horas, viejo dijo:

si es positivo los datos de los textbox (1,2 y 3) y lblID se pasan tal cual al renglon que corresponda del listbox

si es negativo (he aqui el porque solicito su ayuda) necesito que exista alguna manera de que se "detecte dentro" del listbox el utimo dato numerico

Sigues sin explicar nada de nada, o yo soy muy obtuso :wacko:

Share this post


Link to post
Share on other sites
Hace 21 minutos , Haplox dijo:

¿Pero a ti que más te da que se detecte en la hoja o el Listbox? Mientras se detecte en algún lado...

esto es porque los datos deben estar validados antes de ser ingresados a la hoja, y es por eso que quiero que me ayuden a poderlos detectar dentro del listbox y no dentro de la hoja.

Hace 38 minutos , Haplox dijo:

Sigues sin explicar nada de nada, o yo soy muy obtuso

si ya lo explique de muchas formas, no se porque dices que no explique nada, no creo que seas obtuso pero tampoco creo que no se me entienda lo que explico, a la mejor me desespero y se me pasan detalles pero la idea global ya plantié

Share this post


Link to post
Share on other sites
Hace 3 horas, JSDJSD dijo:

Hola viejopienso que deberías realizar un ejemplo en el que se muestre el antes, mientras y después ya que al igual que Haploxno acabo de entender lo que necesitas. Representa tu solicitud aunque sea en un folio donde representes el formulario cuando abre, cuando seleccionamos positivo/negativo y cuando pulsemos Registrar. Un saludo

todo eso ya lo explique de la mejor manera que puedo y tambien puse el ejemplo muestra, y tambien mencioné hasta donde pude hacer el formulario; pero lo vuelvo a explicar paso por paso para ver si se me logra entender

Share this post


Link to post
Share on other sites

Bueno te subo el archivo con los positivos también, prueba y comenta. Debes tener en cuenta que cuando marques positivo se abre un caja de texto donde debes introducir el id de forma manual y pulsar Enter ya que no especificas si debe llevar un correlativo a los anteriores de positivo, como en el caso de los negativos.

ConsecutividadenNegativosolamente(Prueba2).xlsm

Share this post


Link to post
Share on other sites
Hace 32 minutos , JSDJSD dijo:

Bueno te subo el archivo con los positivos también, prueba y comenta. Debes tener en cuenta que cuando marques positivo se abre un caja de texto donde debes introducir el id de forma manual y pulsar Enter ya que no especificas si debe llevar un correlativo a los anteriores de positivo, como en el caso de los negativos.

la parte de positivo no es necesario lleve un correlativo e introducirlo manualmente es funcional, sin embargo lo que me interesa realmente es el coorelativo en negativo pero dentro del listbox.

osea por ejemplo si al listbox se le agregaron 4 items y estos son asi

1                 dato

2                 dato

                   dato

3                dato

4                dato

 

si te das cuenta en el ejemplo anterior hay un hueco y obviamente este dato hueco es lo que se haya escrito del positivo pero tambien si te das cuenta el "3" se autopuso para asi continuar con la consecutividad y esa consecutividad en negativo dentro del listbox es lo que requiero.

 

Share this post


Link to post
Share on other sites
Hace 10 horas, viejo dijo:

lo que me interesa realmente es el coorelativo en negativo pero dentro del listbox.

Creo que no entiendes la intima relacion entre los litbox y las hojas de donde toman loa datos.

Por eso decia que lo importante es saber el ultimo ID, no de donde se coja: del listbox, de la hoja, de un label o un textbox, etc.

 

Share this post


Link to post
Share on other sites
Hace 13 horas, JSDJSD dijo:

Hola viejo, prueba el adjunto haber, sí por ahí van los tiros, prueba con los negativos y si vamos bien encaminados continuamos  con los positivos.

ConsecutividadenNegativosolamente(Prueba1).xlsm 29 kB · 1 descarga

En el archivo que envió JSDJSD cuando seleccionas el negativo obtienes el consecutivo es lo que entendí que buscas?

Private Sub optbtn_negativo_Click()

Estado = "Negativo"
Max = WorksheetFunction.Max(Hoja1.Range("A2:A" & Uf))

Call UFila
Me.LblID.Caption = CDbl(Max) + 1
End Sub

pero los tiros continúan en el aire!!!!

Share this post


Link to post
Share on other sites

Podrías describir los requisitos que debe cumplir el formulario:

1º Al abrir el formulario  ¿Que debería mostrar en Id ? por ejemplo saber si en el Id debe mostrar el último registrado en la hoja o el siguiente, es decir si en la hoja el último negativo es el 18, que tiene que mostrar el 18 o el 19 que es el siguiente.

2º  ¿Que debe mostrar el listbox?, es decir si al abrir el formulario debe cargar la lista completa de todos los registros de la hoja o simplemente quedarse en blanco.

3º ¿Que debe ocurrir cuando pulsamos el botón agregar?, supongo que agregar al listbox los datos ingresados  en los textbox y el ld.

4º ¿Que debe ocurrir cuando pulsamos el botón Registrar?, supongo que agregar en la hoja el nuevo Id son sus correspondientes datos.

Share this post


Link to post
Share on other sites
Hace 9 horas, JSDJSD dijo:

1º Al abrir el formulario  ¿Que debería mostrar en Id ? por ejemplo saber si en el Id debe mostrar el último registrado en la hoja o el siguiente, es decir si en la hoja el último negativo es el 18, que tiene que mostrar el 18 o el 19 que es el siguiente.

al abrir el formulario el lblid debe mostrar el ultimo dato numerico de mayor valor + 1, el cual debe ser tomado de la hoja y al mismo tiempo poner el optionbutton de negativo en true. (eso ya esta en el formulario que te envie)

 

Hace 9 horas, JSDJSD dijo:

2º  ¿Que debe mostrar el listbox?, es decir si al abrir el formulario debe cargar la lista completa de todos los registros de la hoja o simplemente quedarse en blanco.

el listbox no debe mostrar nada al abrir el formulario, ya que en el listbox se van a ir agregando los datos. (eso ya esta en el formulario que te envie)

 

Hace 9 horas, JSDJSD dijo:

3º ¿Que debe ocurrir cuando pulsamos el botón agregar?, supongo que agregar al listbox los datos ingresados  en los textbox y el ld.

asi es, el boton agregar debe estar condicionado por si es positivo o negativo, pero aqui es donde radica el problema por que lo que pretendo es que el id sea unico solo cuando es negativo, y es aqui donde me planteo la idea de mejor agregar otra columna que se llame resultado y entonces ahi poner si es negativo o positivo esto en razon de la estricta relacion del listbox con la hoja, sin embargo y vuelvo a mencionarlo, mi intension era que dentro del listbox se detectara el ultimo id y asi poderlo nombrar como negativo ya que si es positivo al momento de agregarlo deja un hueco en la columna de id.

 

Hace 9 horas, JSDJSD dijo:

4º ¿Que debe ocurrir cuando pulsamos el botón Registrar?, supongo que agregar en la hoja el nuevo Id son sus correspondientes datos.

si, al pulsar registrar todo lo que esta en el listbox se manda a la hoja y he aqui donde mi intensión es que se envie todo lo del listbox en el orden que ya mencioné anteriormente respecto de los id.

por el momento solo puedo contestar esto; el formulario que te ya envie, ese formulario así tal cual debe hacer las cosas, con  la excepcion de la parte de positivo y negativo, las cuales deben estar dentro de la columna de listbox pero como al poner un id negativo y luego poner un id positivo y luego poner un id negatvio todo eso pues de alguna manera altera el orden y lo que yo queria ver o saber es si dentro del mismo listbox se podia leer ese ultimo id negativo para que cuando se pulsara el optionbutton de negativo este pudiera ponerse en automatico en el lblID listo para agregarse y asi entonces poderlo agregar al listbox para que despues una vez teniendo todos los elementos en el listbox hasta ese momento solo hasta ese momento poder darle al boton de registrar.

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.

Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png