Macros excel

Disculpa Pitcher en relación a los códigos de tu respuesta anterior me parecieron excelente, sin embargo, me gustaría un código para aplicarlos siempre al listado en cuestión (B3:B80), para que al suprimir o borrar estos nombres, estos se vayan y aparezcan en otro rango aparte, me refiero a los nombres borrados por supuesto. Este código, sera para ver con exactitud que personas he borrado. Esto debido a que el puesto o ubicación de cada nombre dentro de ese rango (B3:B80), lo voy variando, es decir por ejemplo si el sr. Julio Cesar Castro, esta en la celda B30, puede que tenga que borrarlo y en su lugar ubicar otra persona, lo cual haga que no recuerde que personas he borrado, después de ciertas modificaciones, pero tomando en cuenta el hecho que esa persona que borre, posteriormente debo de volver a agregarla.
Espero me comprendas, la cuestión es que de esas 77 personas, yo debo de presentar listados diferentes a cada rato y me cuesta reubicar nuevamente a los que borre.
Gracias de antemano, amigo.

1 respuesta

Respuesta
1
Este código es como para orientarte en lo que tu quieres. Si ya tienes el archivo guardado con los nombres. Mira este código lo tienes que pegar en la hoja el cual están los nombres.
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Filas, AuHoja As Long
    AuHoja = 0
    If Target.Column = 2 Then
        If Target.Row >= 3 And Target.Row <= 60 Then
            Open "c:\NombresExcel.txt" For Input As #2
                Filas = 1
                Do Until EOF(2)
                    Line Input #2, MiVariable
                    Nom(Filas) = MiVariable
                    Filas = Filas + 1
                Loop
            Close #2
            For Aux = 1 To ActiveWorkbook.Sheets.Count
                If Sheets(Aux).Name = "Nom_Eliminados" Then
                    AuHoja = 1
                    Exit For
                End If
            Next Aux
            If AuHoja = 0 Then
                ActiveWorkbook.Sheets.Add
                ActiveSheet.Name = "Nom_Eliminados"
            End If
            Sheets("Nom_Eliminados").Activate
            Fila = ActiveSheet.Range("A65535").End(xlUp).Row
            Sheets("Nom_Eliminados").Cells(Fila + 1, 1) = Nom(Target.Row - 2)
          End If
        End If
End Sub
Como no controlo los suprimir solo los cambios. Me imagino que debes complementarlo con el código anterior.
Espero que sea de tu ayuda. Cualquier consulta no dudes en preguntar.
Suerte
Pitcher !

A y no olvides cerrar la pregunta si la respuesta fue de tu ayuda.
Disculpa Pitcher necesito comprender más sobre la colocación de este código, efectivamente lo he pegadoen la hoja donde tengo guardado ya los nombres. Pero el problema es que me entorpece las otras dos macros (cargar-grabar), y si borro esta macros y lo dejo a el solo siempre ahí en la hoja de los nombres, me tira error de compilación.
Ademas de ello mi estimado, no ubico dentro del código, el lugar o rando a donde irían a parar todos aquellos nombres borrados en forma temporal y que por supuesto son parte de los ochenta que tendría ya guardados.
Ayuda por favor amigo.
No tomes encuenta el código anterior, y revisa esta macro.
Sub Registrar_Borrado()
    Dim Filas As Long
    NomHoja = ActiveSheet.Name
    Open "c:\NombresExcel.txt" For Input As #1
        Filas = 1
        Do Until EOF(1)
            Line Input #1, MiVariable
            Nom(Filas) = MiVariable
            Filas = Filas + 1
        Loop
    Close #1
    Ciclo = Filas - 1
    AuxE = 0
    For Aux = 1 To ActiveWorkbook.Sheets.Count
        If Sheets(Aux).Name = "Nom_Eliminados" Then
            AuxE = 1
            Sheets("Nom_Eliminados").Activate
            Cells.Select
            Selection.Clear
            Exit For
        End If
    Next Aux
    If AuxE = 0 Then
        ActiveWorkbook.Sheets.Add
        ActiveSheet.Name = "Nom_Eliminados"
    End If
    Range("A65535").End(xlUp).Select
    ActiveCell.Value = "NOMBRES BORRADOS"
    Sheets(NomHoja).Activate
    For Filas = 3 To Range("B65535").End(xlUp).Row
        For Au = 1 To Ciclo
            AuxE = 0
            If Cells(Filas, 2) = Nom(Au) Then
                AuxE = 1
                Exit For
            End If
        Next Au
        If AuxE = 0 Then
            Sheets("Nom_Eliminados").Activate
            Filasx = Range("A65535").End(xlUp).Row
            Cells(Filasx + 1, 1) = Nom(Filas - 2)
            Sheets(NomHoja).Activate
        End If
    Next Filas
End Sub
Espero que sea de tu ayuda. Cualquier consulta no dudes en preguntar.
Suerte
Pitcher !

A y no olvides cerrar la pregunta si la respuesta fue de tu ayuda.
Hola Hola, amigo Pitcher, con respecto a esta ultima macro, que hace, pues deduzco que guardara un registro de los nombdres que borro, sin embargo al parecer no me hace ninguna acción. Ademas con que otra macro, puede estar esta, pues al menos la macro cargar y ejecutar, se vuelven inoperantes cuando introduzco esta, como tercera macro en el modulo.
Ayúdame con las instrucciones por favor, disculpa mi ignorancia.
Tomando en cuenta el Hecho que deseo ver que personas he borrado.
Gracias amigo las disculpas, respectivas.
Ricardo enviame el archivo a [email protected] y te lo reviso
Infinitas gracias amigo pitcher, me has dado tremenda herramienta, en mis labores cotidianas, con tu ayuda resolví esto que para mi era un dolor de cabeza.
Gracias.
Atentamente. Ricardo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas