Eliminar filas al seleccionar el texbox o combobox vba excel

Tengo un formulario donde ingreso los datos lo que necesito es que al momento de seleccionar el dato desde el combobox me elimine esa fila desde el botón eliminar ejemplo de código:

Private Sub BtnEliminar_Click()

Dim i As Long

With Worksheets("POLIZA GASTOS ")

    For i = 2 To 1 Step -1

        If IsEmpty(.Cells(i, 1)) Then .Rows(i).Delete

    Next i

     MsgBox "REGISTRO ELIMINADO", vbInformation + vbOKOnly

End With

End Sub

Este código elimina el primer y segundo registro únicamente y lo que quiero que al seleccionar el dato desde el combobox lo elimine por medio del botón eliminar

2 respuestas

Respuesta
1

Esta macro borra la fila que selecciones en el combobox lee los datos partiendo de la celda B5 (este es el único dato que modificas de la macro), ya que borres el registro la macro actualizara el combobox para mostrarte los registros sin el registro que borraste.

Private Sub CommandButton1_Click()
registro = ComboBox1.ListIndex + 1
Range("b5").CurrentRegion.Rows(registro).EntireRow.Delete
matriz = Range("b5").CurrentRegion
ComboBox1.List = matriz
End Sub

¡Gracias! por tu pronta respuesta tengo el mismo conflicto de código en el botón buscar desde un botón. Agradecería tu apoyo tengo el siguiente código desde un botón buscar pero me crea conflicto desde el combobox que podría hacer te envio código:

Private Sub BtnBuscar_Click()
Dim FILA, FINAL, I As Integer
If TexBoxFolio = Empty Then
MsgBox "ES NECESARIO INGRESAR NUMERO DE FOLIO PARA REALIZAR LA BUSQUEDA", vbExclamation
TexBoxFolio.SetFocus
Exit Sub
Else
FILA = 3
Do While Hoja1.Cells(FILA, 3) <> Empty
FILA = FILA + 1
Loop
FINAL = FILA - 1
For I = 2 To FINAL

If TexBoxFolio.Text = Hoja1.Cells(I, 3) Then

ComboBoxMes.Text = Hoja1.Cells(I, 2)
TexBoxIdGasto.Text = Hoja1.Cells(I, 4)
ComboBoxCuentaContable.Text = Hoja1.Cells(I, 5)


MsgBox "DATOS CARGADOS CON EXITO!!"

Exit Sub
End If
Next I

End If
End Sub

Este es el código en el Combobox:

Private Sub ComboBoxBuscarFolio_Change()

Dim ws As Worksheet
Dim Rng As Range
Dim Sel

Set ws = Sheets("POLIZA GASTOS 2020")
Sel = Me.ComboBoxBuscarFolio.Value

If Sel <> "" Then
Set Rng = ws.Columns(4).Find(Sel, lookat:=xlWhole)
If Not Rng Is Nothing Then
Me.ComboBoxMes.Value = ws.Cells(Rng.Row, "B")
Me.TexBoxIdGasto.Value = ws.Cells(Rng.Row, "C")
Me.TexBoxFolio.Value = ws.Cells(Rng.Row, "D")
Me.ComboBoxCuentaContable.Value = ws.Cells(Rng.Row, "E")
Me.ComboBoxRazonSocial.Value = ws.Cells(Rng.Row, "F")
Me.TexBoxConceptoCompra.Value = ws.Cells(Rng.Row, "G")
Me.TexBoxNumFactura.Value = ws.Cells(Rng.Row, "H")
Me.TexBoxFecha.Value = ws.Cells(Rng.Row, "I")
Me.TexBoxImporte.Value = ws.Cells(Rng.Row, "J")
Me.TexBoxIVA.Value = ws.Cells(Rng.Row, "K")
Me.TexBoxTotal.Value = ws.Cells(Rng.Row, "L")
Me.CheckBoxBajaDctoSI.Value = ws.Cells(Rng.Row, "M")
Me.ComboBoxTipoGasto.Value = ws.Cells(Rng.Row, "N")

End If
End If

End Sub

me crea conflicto con el botón buscar y modificar Gracias por tu apoyo

Respuesta

Acabo de publicar un video con un ejemplo corto y completo para buscar registros y modificarlos y/o eliminarlos. Allí encontrarás también el enlace para descargar el ejemplo o directamente copiar el código desde mi blog.

https://www.youtube.com/watch?v=n1xELUOt-LY&t=54s 

Sdos.

Elsa

¡Gracias! Por tu atención Elsa

Si luego necesitas ayuda para adaptar el código a tu hoja o formulario enviame una muestra a mi correo para ajustar códigos.

Si el tema queda resuelto no olvides valorar las respuestas.

Elsa

Buenas tardes Elsa una pregunta en vba Excel se puede programar como guardar datos en diferentes celdas (filas) de acuerdo a un Combobox. Es decir selecciono desde el combobox la cuenta y de acuerdo a lo seleccionado en el Combobox me guarde los datos en un rango de celdas Ejemplo:

Cuenta 701-Gastos Rango de Celdas o Fila B3

Cuenta 702-Prestamos Rango de Celdas B170 o Fila B170 y así sucesivamente

Gracias por tu atención

Si se puede. Pero no es tan fácil explicarlo así sobre la nada... veamos un ejemplo.

Cuenta 701-Gastos (B3)

Cuenta 702-Prestamos (B170)

Entonces si desde el combo seleccionaste Cuenta 701-Gastos habrá que buscar ese texto en col B . Y si lo encuentra se guarda esa fila para alguna acción, por ejemplo modificar el registro.

O para eliminarlo. Dejo las 2 opciones.

Sub Ejemplo()
If combobox1 = "" Then Exit Sub
Set busco = Range("B:B").Find(combobox1.Text, LookIn:=xlValues, lookat:=xlWhole)
'Si lo encuentra esa será la primer fila del rango 
If Not busco Is Nothing Then
    filx = busco.Row      'guarda la fila para alguna tarea posterior
    Range("B" & busco.Row).EntireRow.Delete   'para eliminarlo
Else
    'no se encontró la cuenta
End If
End Sub

El texto que aparece en el combo debe coincidir con el contenido de la celda en col B.

Sdos y no olvides valorar las respuestas.

Elsa

Gracias por tu respuesta Elsa

Este código que me envías seria en el evento del botón guardar o crear una rutina Sub para guardar a través de un formulario y botón guardar gracias

El título de tu consulta dice 'Eliminar Filas' por lo que iría en un botón para eliminar... no tiene nada que ver con Guardar...

Private Sub CommandButton1_Click()    'botón para eliminar
End Sub

PD) Desde el blog que se observa en mi video podrías copiar las macros de cada botón ;)

¡Gracias! Elsa

Estoy probando código y te aviso en próxima semana como voy con ese combobox que al seleccionar el dato me lo guarde en diferente fila o celda en un evento clic de un botón guardar Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas