Bienvenido a la mayor comunidad de usuarios EXCEL

Regístrate ahora y podrás: / 💪 Hacer preguntas a los expertos / ⬇️ Descargar ejemplos y plantillas / 🏅 Acceder a contenidos premium

Regístrate gratis

eliminar filas base datos

pompero

New member
Hola de nuevo foreros. Tengo una base de datos que introduciendo en la hoja de registro los datos me los guarda en la hoja de listado personal en orden alfabetico, hasta aqui perfecto, el "problema" me viene que cuando tengo que suprimir una fila de la hoja de datos no se como hacer la macro para ejecutarla. Dejo el archivo de mestra a ver si alguien me puede echar un cable .Gracias.
 

Adjuntos

  • base de datos.xlsm
    98,9 KB · Visitas: 12

protostecnologia

Active member
Hola de nuevo foreros. Tengo una base de datos que introduciendo en la hoja de registro los datos me los guarda en la hoja de listado personal en orden alfabetico, hasta aqui perfecto, el "problema" me viene que cuando tengo que suprimir una fila de la hoja de datos no se como hacer la macro para ejecutarla. Dejo el archivo de mestra a ver si alguien me puede echar un cable .Gracias.

Estimado, te voy dando luz a tu problema.
Te codifique el boton eliminar, para que cuando al hacer click en el, te borre la ultima fila con datos de la hoja registro. (No se si realmente quisieras borrar desde la ultima fila, pero por lo menos para ir dandote una idea de una forma que podrias ir borrando)


v1.JPG



v2.JPG
codigo:

Código:
Sub eliminar()
' Eliminar

   
ultimafila = Sheets("listado personal").Range("A" & Rows.Count).End(xlUp).Row
           
           
'se borra toda la fila
Sheets("listado personal").Range("A" & ultimafila).EntireRow.Delete

MsgBox "registro eliminado!", vbInformation
  
End Sub


Avisame si te sirve y lo vamos puliendo, saludos.
 

Adjuntos

  • Copy of base de datos.xlsm
    94,5 KB · Visitas: 2

protostecnologia

Active member
Vuelvo a reenviar archivo porque tenia un error.
Estimado, ya termine de armar tu pedido.

Se puede consultar los nombres de la base a traves de una lista de validacion.
Y luego de eso se puede eliminar ese registro que se consulta.

aa.JPG

bb.JPG
cc.JPG

dd.JPG

f.JPG

rr.JPG

El Registro que se consulto y se selecciono para eliminar quedo eliminado.


Codigo:

Código:
Sub guardar()
'
' guardar Macro
'

'
    Range("E13:E18").Select
    Selection.Copy
    Sheets("listado personal").Select
    ActiveWindow.SmallScroll Down:=-18
    Range("A11:F11").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Range("D2:D11").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("listado personal").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("listado personal").Sort.SortFields.Add2 Key:=Range _
        ("D2:D11"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("listado personal").Sort
        .SetRange Range("A2:F11")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Sheets("registro").Select
    Range("E13:E18").Select
    Selection.ClearContents
    Range("E15").Select
End Sub

Sub eliminar()
' Eliminar

If MsgBox("¿SEGURO QUE QUIERE ELIMINAR ESTE CLIENTE?", vbExclamation + vbYesNo) = vbYes Then

  ultimafila = Sheets("listado personal").Range("D" & Rows.Count).End(xlUp).Row

  For i = 2 To ultimafila
   
     If Range("E13").Value = Worksheets("listado personal").Range("A" & i).Value And Range("E14").Value = Worksheets("listado personal").Range("B" & i).Value And _
     Range("E15").Value = Worksheets("listado personal").Range("C" & i).Value And Range("E16").Value = Worksheets("listado personal").Range("D" & i).Value _
     And Range("E17").Value = Worksheets("listado personal").Range("E" & i).Value And Range("E18").Value = Worksheets("listado personal").Range("F" & i).Value Then
    
    'se borra toda la fila
    Sheets("listado personal").Range("A" & i).EntireRow.Delete
   
    MsgBox "registro eliminado!", vbInformation
       
     Application.EnableEvents = False
     Range("E13").Value = ""
     Range("E14").Value = ""
     Range("E15").Value = ""
     Range("E16").Value = ""
     Range("E17").Value = ""
     Range("E18").Value = ""
     Application.EnableEvents = True
     Exit For
     End If
    
   Next i
           

End If

End Sub




codigo para la lista de validacion:
Código:
=INDIRECT("'listado personal'!$D$2:$D"&SUMPRODUCT(MAX(('listado personal'!$D:$D<>"")*(ROW(D:D))))) para lista de validacion en otra hoja


Probalo y avisame.
 

Adjuntos

  • bb.JPG
    bb.JPG
    38,1 KB · Visitas: 2
  • eliminar fila base de datos.xlsm
    95,6 KB · Visitas: 5

pompero

New member
Estimado, ya termine de armar tu pedido.

Se puede consultar los nombres de la base a traves de una lista de validacion.
Y luego de eso se puede eliminar ese registro que se consulta.

Ver archivo adjunto 64020

Ver archivo adjunto 64021
Ver archivo adjunto 64016

Ver archivo adjunto 64017

Ver archivo adjunto 64018

Ver archivo adjunto 64019

El Registro que se consulto y se selecciono para eliminar quedo eliminado.


Codigo:

Código:
Sub guardar()
'
' guardar Macro
'

'
    Range("E13:E18").Select
    Selection.Copy
    Sheets("listado personal").Select
    ActiveWindow.SmallScroll Down:=-18
    Range("A11:F11").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Range("D2:D11").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("listado personal").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("listado personal").Sort.SortFields.Add2 Key:=Range _
        ("D2:D11"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("listado personal").Sort
        .SetRange Range("A2:F11")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Sheets("registro").Select
    Range("E13:E18").Select
    Selection.ClearContents
    Range("E15").Select
End Sub

Sub eliminar()
' Eliminar

If MsgBox("¿SEGURO QUE QUIERE ELIMINAR ESTE CLIENTE?", vbExclamation + vbYesNo) = vbYes Then

  ultimafila = Sheets("listado personal").Range("D" & Rows.Count).End(xlUp).Row

  For i = 2 To ultimafila
  
     If Range("E13").Value = Worksheets("listado personal").Range("A" & i).Value And Range("E14").Value = Worksheets("listado personal").Range("B" & i).Value And _
     Range("E15").Value = Worksheets("listado personal").Range("C" & i).Value And Range("E16").Value = Worksheets("listado personal").Range("D" & i).Value _
     And Range("E17").Value = Worksheets("listado personal").Range("E" & i).Value And Range("E18").Value = Worksheets("listado personal").Range("F" & i).Value Then
   
    'se borra toda la fila
    Sheets("listado personal").Range("A" & i).EntireRow.Delete
  
    MsgBox "registro eliminado!", vbInformation
      
     Application.EnableEvents = False
     Range("E13").Value = ""
     Range("E14").Value = ""
     Range("E15").Value = ""
     Range("E16").Value = ""
     Range("E17").Value = ""
     Range("E18").Value = ""
     Application.EnableEvents = True
     Exit For
     End If
   
   Next i
          

End If

End Sub




codigo para la lista de validacion:
Código:
=INDIRECT("'listado personal'!$D$2:$D"&SUMPRODUCT(MAX(('listado personal'!$D:$D<>"")*(ROW(D:D))))) para lista de validacion en otra hoja


Probalo y avisame.
Ok perfecto ,muchas gracias me has ahorrado mucha tarea.
 

Similar threads

Arriba