Excel - LISTBOX VB EXCEL

   
Vista:

LISTBOX VB EXCEL

Publicado por lug skylug7@gmail.com (211 intervenciones) el 06/12/2015 17:03:55
saludos

soy seguirdo de laweb del programador

estoy tratando de hacer q borre de una tabla de datos en excel una fila wscojida de en un listbox, usando el vb,,, hago todo el procedimiento bien se ejecuta la aplicaicon dellistbox perfectamente,

pero al momento de eliminar esto no lo hace

aqui una foto de mi archivo

donde puede estar el mal funcionamiento, ?? pues nome sale ningun error,,

el problema esta en el comando eliminar pero no borra nada de la tabla de excel

adjunto la imagen del archivo

y el codigo del userform :
---------------------------------------------------------------------------------------- >>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Dim i, items, N
 
Private Sub UserForm_initialize()
 
ListBox1.ColumnCount = 6
 
Me.ListBox1.ColumnWidths = "90 pt; 180 pt;  130 pt; 50 pt;"
 
ListBox1.RowSource = " DATOS "
 
End Sub
 
Private Sub listbox1_click()
 
items = Me.ListBox1 = ListCount
For i = 0 To items - 1
If Me.ListBox1.Selected(i) Then
N = Me.ListBox1.List(1)
End If
 
Next i
 
End Sub
 
Private Sub btn_eliminar_click()
Dim fila As Integer
Dim final As Integer
 
 
fila = 8
Do While Hoja2.Cells(fila, 1) <> ""
     fila = fila + 1
Loop
 
final = fila - 1
 
If MsgBox("¿seguro q desea eliminar este Registro?", vbQuestion + vbYesNo) = vbYes Then
 
For fila = 8 To final
 
If Hoja2.Cells(fila, 1) = N Then
    Hoja2.Cells(fila, 1).EntireRow.Delete
        Exit For
    End If
  Next
    MsgBox "Registro Eliminado", vbInformation = vbOKOnly
 
    Else
         Exit Sub
 
    End If
End Sub


gracias
Sin-titulo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

LISTBOX VB EXCEL

Publicado por GMG (105 intervenciones) el 07/12/2015 12:43:01
Te falta asignarle el valor a N en l aparte de eliminar el registro, es decir ahora no te lo compara con nada, ya que N no vale nada.

Lo mismo ya te valdría con poner:

N = ListBox1.ListIndex +1

después de :

Private Sub btn_eliminar_click()
Dim fila As Integer
Dim final As Integer

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LISTBOX VB EXCEL

Publicado por lug (211 intervenciones) el 07/12/2015 12:48:06
muchisimas gracias,,, me resulto perfecto....

pero no elimina algunos registros

este el video en yotube de donde modifique el codigo pero no encuentro la falla


creo q el problema esta en N en el video se llama xempelado

el q hizo el video no contesta..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LISTBOX VB EXCEL

Publicado por GMG (105 intervenciones) el 07/12/2015 13:37:38
Yo cambiaría alguna cosa de tú código:

mira a ver cambiando la segunda macro por esto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub btn_eliminar_click()
Dim fila As Integer
Dim final As Integer
'N = ListBox1.Value
N = "asdasd"
If MsgBox("¿seguro q desea eliminar este Registro?", vbQuestion + vbYesNo) = vbYes Then
j = 0
i = 0
    While Not IsEmpty(Range("A8").Offset(i, 0))
         If Range("A8").Offset(i, 1) = N Then
            Rows(i + 8).Delete
            j = j + 1
        End If
    i = i + 1
    Wend
MsgBox ("Se han eliminado " & j & " registros")
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LISTBOX VB EXCEL

Publicado por lug (211 intervenciones) el 07/12/2015 19:07:57
hola intervenciones, de paso te agradezco la molestia de contestar

pero sigue el prohlema

cuando doy eliminar sale el mensaje "se han eliminado 0 registros,, y tampoco elimina de la lista de excel

segun el video, donde esta la falla en mi codigo, si es exactamente igual?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LISTBOX VB EXCEL

Publicado por GMG (105 intervenciones) el 09/12/2015 09:25:47
perdona, en mi código olvidé cambiar una cosa que utilicé para testearlo, sería así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub btn_eliminar_click()
Dim fila As Integer
Dim final As Integer
N = ListBox1.Value
 
If MsgBox("¿seguro q desea eliminar este Registro?", vbQuestion + vbYesNo) = vbYes Then
 
j = 0
i = 0
 
    While Not IsEmpty(Range("A8").Offset(i, 0))
         If Range("A8").Offset(i, 1) = N Then
            Rows(i + 8).Delete
            j = j + 1
        End If
    i = i + 1
    Wend
 
MsgBox ("Se han eliminado " & j & " registros")
 
End If
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LISTBOX VB EXCEL

Publicado por lug (211 intervenciones) el 10/12/2015 00:56:08
muchisimas gracias GMG

TODO REsulto perfecto, pero tuve q desbloquear la hoja por q si no me salia "depurar"... es decir el codigo no funciona sino desbloqueo la hoja,,,

pero no importa, ya se soluciono lo q buscaba y era elimninar fila o registros de una tabla de excel...



gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LISTBOX VB EXCEL

Publicado por GMG (105 intervenciones) el 10/12/2015 12:39:56
lug, si quieres, en la misma macro puedes poner que la hoja sea desbloqueada, haga lo que tenga que hacer, y la vuelva a bloquear al final.

Es decir, añadiendo los comandos:

1
2
3
4
5
6
7
Private Sub btn_eliminar_click()
ActiveSheet.Unprotect
 
resto código
 
ActiveSheet.Protect
End Sub

Si quieres ponerte una contraseña, los comandos son estos, cambia asd por la contraseña que quieras:

ActiveSheet.Unprotect Password:="asd"
ActiveSheet.Protect Password:="asd"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar