UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

AlexGlez


Hola Buenas Noches estoy tratando de cargar datos en listbox y se puedan seleccionar con un label, estos datos se encuentran en la hoja 2 del libro, el siguiente código es el que tengo como base pero no logro cargar los datos, espero puedan ayudarme, gracias...


'Cerrar Formulario
Private Sub CommandButton4_Click()
Unload FrmBuscar
End Sub

'Abrir el formulario para modificar
Private Sub CommandButton2_Click()
If Me.ListBox1.ListIndex < 0 Then
MsgBox "No se ha elegido ningún registro"
Else
FrmModificar.Show
End If
End Sub
'
'Eliminar el registro
Private Sub CommandButton3_Click()
Pregunta = MsgBox("Está seguro de eliminar el registro?", vbYesNo + vbQuestion, "Eliminar")
If Pregunta <> vbNo Then
ActiveCell.EntireRow.Delete
End If
Call CommandButton1_Click
End Sub
'
'Mostrar resultado en ListBox
Private Sub CommandButton1_Click()
On Error GoTo Errores
If Me.TxtDCN.Value = "" Then Exit Sub
Me.ListBox1.Clear
j = 1
Filas = Range("B1").CurrentRegion.Rows.Count
For i = 2 To Filas
If LCase(Cells(i, j).Offset(0, 2).Value) Like "*" & LCase(Me.TxtDCN.Value) & "*" Then
Me.ListBox1.AddItem Cells(i, j)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, j).Offset(0, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, j).Offset(0, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, j).Offset(0, 3)
Else
End If
Next i
Exit Sub
Errores:
MsgBox "No se encuentra."
End Sub
'
'Activar la celda del registro elegido
Private Sub ListBox1_Click()
Range("B2").Activate
Cuenta = Me.ListBox1.ListCount
Set Rango = Range("B1").CurrentRegion
For i = 0 To Cuenta - 1
If Me.ListBox1.Selected(i) Then
Valor = Me.ListBox1.List(i)
Rango.Find(What:=Valor, LookAt:=xlWhole, After:=ActiveCell).Activate
End If
Next i
End Sub
'
'Dar formato al ListBox y traer datos de la tabla
Private Sub FrmBuscar_Initialize()

For i = 1 To 4
Me.Controls("Label" & i) = Sheets(1, i).Value
Next i

With ListBox1
.ColumnCount = 2
.ColumnWidths = "60 pt;60 pt;60 pt;60 pt"
End With
End Sub
Archivos
Nueva Prueba Cartas1.xlsm
Formulario Alta,Buscar, Modificar y eliminar
No tienes los permisos para descargar los archivos.
(32 KB)

tyno


Hola Alex. Bien venido
Paso el archivo con un código que le agregue al TextBox TxtDCN del formulario FrmBuscar.
En este vas ingresando un dato buscado de forma parcial o completa, en este caso filtra por DCN (el tipo de datos que se encuentra en la columna B de la Hoja2). Los resultados se van filtrando en el Listbox a medida que vas ingresando el dato buscado
Como no estoy seguro que tiene que hacerse cuando seleccionas el ListBox provisoriamente le agregué un código que resalta en amarillo las celdas que tienen la misma referencia que del ListBox de la 4ta columna, es solo a modo de ejemplo.

Saludos

AlexGlez


Hola Buenas Noches muchas gracias por el aporte se ve, que conocen sobre el tema, el propósito de mi formulario es que quede como se muestra en el siguiente
enlace 

http://blogs.itpro.es/exceleinfo/2014/03/29/formularios-para-bsqueda-alta-baja-y-actualizacin-de-registros-en-excel/

yo he realizado algunos cambios ya que, todo se debe almacenar y modificar en la hoja dos; soy bastante principiante en esto espero que ustedes que dominan el tema me puedan ayudar a realizar los cambios; espero sus comentarios gracias.

tyno


Hola Alex
Prueba el archivo que subo.
En el mismo he creado un nuevo formulario que creo resume los otros 3 que estas utilizando y a su vez creo que este solo formulario cumple las mismas funciones que los demás. A veces es mas fácil encarar el archivo desde cero antes que revisar y modificar un código creado por otra persona.
Se llama form_datos y se ejecuta con el botón verde DATOS.
Cualquier cosa avisas

Saludos

AlexGlez


Hola Tyno 

Buenas Noche esta excelente cubre al 100% es lo que necesito, ha sido de gran ayuda; un favor mas, necesito agregar 7 campos mas de cartas; es decir que sean de Carta No. 1 a la 10; y por ultimo como hacer que los datos se registren en otro libro de excel ya que lo estaré ocupando en red.

Muchas gracias por la ayuda, si puedo calificar o hay alguna forma de dar ´puntos explíquenme como hacerlo porque los mereces, Gracias nueva mente.

Quedo en espera de tu Comentarios....

tyno


Alex.

Paso el archivo modificado para 10 "cartas".
Con respecto al tema de que los datos se graben en otro archivo pues hay que modificar las referencias que corresponden al destino de los datos.
Ahora el archivo hace referencia a la Hoja 2 Sheets("Hoja2"), entonces si se trata de otro libro quedaría así por ejemplo:

Workbooks("Libro1.xlsx").Sheets("Hoja2")


En este caso mi "otro archivo" es Libro1.xlsx, en tu caso tendrá el nombre que quieras junto con la extensión que corresponda: .xls, .xlsx, .xlsm.
Por lo que te quedaría la tarea de ir modificando en el código de la macro dichas referencias.
Donde este guardado el "otro archivo" no viene al caso ambos, el de la macro y el de destino, van a tener que estar abiertos simultáneos para que esto funcione.

Saludos
Archivos
Nueva Prueba Cartas1.xlsm
No tienes los permisos para descargar los archivos.
(48 KB)

AlexGlez


Buen día Tyno

Muchas gracias ha quedado excelente y cubre al 100% lo que necesito, con esto doy por cerrado este tema, agradezco mucho la ayuda y poder seguir aprendiendo mas sobre VBA para que en un futuro porque no también poder ayudar.


Gracias....

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.