Foros del Web » Soporte técnico » Ofimática »

[SOLUCIONADO] validar Edicion en ListBox

Estas en el tema de validar Edicion en ListBox en el foro de Ofimática en Foros del Web. Como dice el titulo, Validar en el ListBox: Este libro de ejemplo me tiene loco para y con mis flacos conocimientos. Al crear nuevo cliente ...
  #1 (permalink)  
Antiguo 07/07/2014, 12:17
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 12 años
Puntos: 39
validar Edicion en ListBox

Como dice el titulo, Validar en el ListBox:

Este libro de ejemplo me tiene loco para y con mis flacos conocimientos.

Al crear nuevo cliente funciona muy bien, Ingresa nuevo en la hoja y ListBox al instante y además ordena en la hoja y por supuesto en el ListBox

Cuando abro el form para EDITAR un cliente, Seleciono cliente del ListBox y edito los datos que tengo que editar de dicho cliente, presiono el botón Validar Cliente y en la hoja SI se actualisa, pero no así estantaneo en el LlistBox ni ordena en ninguno de los 2.

Vuelta y vuelta y no logro hacerlo que se actualise instantáneo en el ListBox y ordene en la hoja y ListBox

El ordenamiento tiene que darse sobre la columna B tal como esta en el evento del botón Nuevo Cliente

Podria recibir alguna ayuda de algún [email protected]?

Aquí el libro. Libre de cualquier bicho

Gracias
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Última edición por JoaoM; 07/07/2014 a las 12:29
  #2 (permalink)  
Antiguo 07/07/2014, 17:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.946
Antigüedad: 11 años, 1 mes
Puntos: 2183
Respuesta: validar Edicion en ListBox

No es posible ayudarte sin ver el código que usas para guardar los datos y como intentas actualizar la hoja y el listbox; me refiero a tu código y no al del libro.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/07/2014, 18:08
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 12 años
Puntos: 39
Respuesta: validar Edicion en ListBox

Pues el código esta en el libro. dejemolo así.

Gracias por tu "ayuda"
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg
  #4 (permalink)  
Antiguo 07/07/2014, 18:17
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.946
Antigüedad: 11 años, 1 mes
Puntos: 2183
Respuesta: validar Edicion en ListBox

Insisto en que, por mucha intención de ayudar, habemos quienes no descargamos archivos y preferimos ver código.

De qué vale que alguien quiera ayudarte si no estás dispuesto a hacer lo necesario para recibir ayuda?
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 07/07/2014, 19:10
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 12 años
Puntos: 39
Respuesta: validar Edicion en ListBox

No es que no este dispuesto pero para colocar todo el código tendrías que usar media pagina por que además del codigo del evento del botón tiene dos mas 3 o 4 mas que hacen la conformacion del evento.

No lo tomes a mal
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg
  #6 (permalink)  
Antiguo 07/07/2014, 19:24
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.946
Antigüedad: 11 años, 1 mes
Puntos: 2183
Respuesta: validar Edicion en ListBox

De igual forma, te pido que no tomes a mal mi costumbre de no descargar archivos.

En fin, así sin ver lo que estás haciendo:

1- Crea una macro para ordenar el listado en la hoja:
- Ficha programador -> Macros -> Grabar nueva macro
- Realizas las tareas necesarias para ordenar y luego grabas

2- En tu formulario crea una subrutina para cargar el contenido, pero no lo hagas en la inicialización del formulario, que sea en rutina aparte:
- Limpia el contenido con ListBox.clear
- Un ejemplo de como sería: http://msdn.microsoft.com/en-us/libr...ice.15%29.aspx

3- Tanto en la inicialización del formulario, como al terminar la edición ejecuta las dos macros anteriores y eso debería solucionar el problema
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 07/07/2014, 19:31
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 12 años
Puntos: 39
Respuesta: validar Edicion en ListBox

Estaba editando y no me dejo entrar la edición del post

el problema aquí es ue tien que ordenarlos por la B y arrastrar consigo la A, la C ect hasta la G

Código:
En modulo
Public Modificar As Boolean     '<==
Public FilaModificacion As Long '<==

Sub client()
BuscaClientes.Show
End Sub
En formulario
Código:
Private Sub cbtEdCli_Click()
    Dim strfila$
    Dim fila As String
    With Worksheets("Clientes")
        [A65536].End(xlUp).Offset(1, 0).Select
        strfila$ = .Range("a1:a50000").Find(txtRIF, lookat:=xlWhole).Row
        .Range("A" + strfila$) = txtRIF
        .Range("B" + strfila$) = txtNombre
        .Range("C" + strfila$) = txtDirecci
        .Range("D" + strfila$) = txtP_Ciud
        .Range("E" + strfila$) = txtTelf1
        .Range("F" + strfila$) = txtTelf2
        txtRIF = "": txtNombre = "": txtDirecci = "": txtP_Ciud = "": _
        txtTelf1 = "": txtTelf2 = "": txtFech = ""
        If Modificar = True Then Modificar = False
        Call actualizar_lista
        Exit Sub
    End With
    'buscar.SetFocus
End Sub

Private Sub actualizar_lista()
    lista.RowSource = ""
    lista.RowSource = "Filtro!A2:G" & Sheets("Filtro").Range("A" & Rows.Count).End(xlUp).Row
    Buscar.SetFocus
End Sub
Sobre el ordenar los datos cuando se edita cualquier cliente tiene que ordenarlos por el nombre (columna B). Este ordenamiento tien que llevarse conjuntamente el cod Cliente (A) y los demás de la C, D, ect hasta la G




"Filtro" es una hoja para el filtro de la búsqueda y algo mas
Gracias Hector
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg
  #8 (permalink)  
Antiguo 07/07/2014, 19:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.946
Antigüedad: 11 años, 1 mes
Puntos: 2183
Respuesta: validar Edicion en ListBox

Prueba la solución sugerida en el mensaje anterior y nos cuentas.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 07/07/2014, 19:46
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 12 años
Puntos: 39
Respuesta: validar Edicion en ListBox

Cuando ingreso nuevo cliente estos son los eventos involucrados con el botón

Código:
Private Sub cbtNueClien_Click()
    On Error Resume Next
    Dim fila As Integer
    With Sheets("CLIENTES")
       fila = .Range("b5:b50000").Find(txtRIF, lookat:=xlWhole).Row
       If Err.Number = 91 Then
          fila = .Range("b" & .Rows.Count).End(xlUp)(2).Row
         ' fila = .Range("b5:b50000").Find("").Row
          Call ingresar_datos(fila)
          Exit Sub
       End If
       Call ingresar_datos(fila)
    End With
End Sub

'Inserta y luego ordena alfabeticamente de A hasta G por la columna B
Sub ingresar_datos(fila As Integer, Optional OrdenarPor As String = "B")
    With Sheets("CLIENTES")
        .Cells(fila, 1) = txtRIF
        .Cells(fila, 2) = txtNombre
        .Cells(fila, 3) = txtDirecci
        .Cells(fila, 4) = txtP_Ciud
        .Cells(fila, 5) = txtTelf1
        .Cells(fila, 6) = txtTelf2
        .Cells(fila, 7) = txtFech
        .Range("A2:G" & fila).Sort key1:=.Range(OrdenarPor & fila)
    End With
    Dim tbx As Control
    For Each tbx In Me.Controls
        If TypeName(tbx) = "TextBox" Then tbx = ""
    Next tbx
    Call buscar_Change
    Call actualizar_lista
    txtRIF.SetFocus
End Sub
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg
  #10 (permalink)  
Antiguo 07/07/2014, 19:48
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 12 años
Puntos: 39
Respuesta: validar Edicion en ListBox

Código:
Private Sub actualizar_lista()
    lista.RowSource = ""
    lista.RowSource = "Filtro!A2:G" & Sheets("Filtro").Range("A" & Rows.Count).End(xlUp).Row
    Buscar.SetFocus
End Sub

Private Sub buscar_Change()
    Application.ScreenUpdating = False
    lista.RowSource = ""
    Sheets("Clientes").Range("A:G").Copy Sheets("Filtro").Range("A1")
    Sheets("Filtro").Range("A2:G2").Insert Shift:=xlDown
    Sheets("Filtro").Range("B2:G2") = ""
    Sheets("Filtro").Range("A2") = Buscar
    
    If FiltrarPor.ListIndex = 1 Then 'Buscar por nombre
       Sheets("Filtro").Range("A2") = ""
       Sheets("Filtro").Range("B2") = Buscar
    End If
    
    Sheets("Filtro").Range("A1:G22").AdvancedFilter _
                     Action:=xlFilterCopy, _
                     CriteriaRange:=Sheets("Filtro").Range("A1:G2"), _
                     CopyToRange:=Sheets("Filtro").Range("H1:N22")
    Sheets("Filtro").Rows(2).Delete
    fila = Sheets("Filtro").Range("H" & Rows.Count).End(xlUp).Row
    If fila > 1 Then lista.RowSource = "Filtro!H2:N" & fila
    Application.ScreenUpdating = True
End Sub
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg
  #11 (permalink)  
Antiguo 29/07/2014, 07:05
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 12 años
Puntos: 39
Respuesta: validar Edicion en ListBox

Solucionado
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Etiquetas: listbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:15.