Agregar un botón especifico, para grupo de personas que tengan el criterio de especifico en la base de datos.,

En la imagen sale más especifico lo que ando buscando, en la base de datos que tengo creada

En la celda donde dice bloque que dependiendo a esa celda se asocien a cada uno de los nombre

De cada botón. La base de datos esta en un libro de excel la de los botones esta en un libro habilitado para macros.

1 respuesta

Respuesta
1

Estás son las macros, tienes que poner en las macros algunos datos que no mencionaste en tu ejemplo.

Los datos que tienes que poner en cada macro son:

- El nombre del libro "base de datos"

- El nombre de la hoja del libro "base de datos", en la macro puse "Hoja1"

- La columna del trabajador, en la macro puse la columna "B"

- La columna del bloque, en la macro puse la columna "J"

- La columna destino, es decir, en cuál columna de la hoja con los botones se van a poner los nombres, en la macro puse la "A" para los Trabajadores que tienen "A" en el bloque, "C" para los que tienen "B" y "D" para los que tienen "C".

Macro Bloque "A"

Sub nombres_A()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    '
    Set l2 = Workbooks("base de datos")
    Set h2 = l2.Sheets("Hoja1")
    '
    cb = "J" 'columna del bloque
    ct = "B" 'columna del trabajador
    '
    ca = "A" 'columna destino para poner los nombres
    '
    For i = 2 To h2.Range(cb & Rows.Count).End(xlUp).Row
        If h2.Cells(i, cb) = "A" Then
            h1.Range(ca & h1.Range(ca & Rows.Count).End(xlUp).Row + 1) = _
            h2.Cells(i, ct)
        End If
    Next
End Sub

Macro Bloque "B"

Sub nombres_B()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    '
    Set l2 = Workbooks("base de datos")
    Set h2 = l2.Sheets("Hoja1")
    '
    cb = "J" 'columna del bloque
    ct = "B" 'columna del trabajador
    '
    ca = "C" 'columna destino para poner los nombres
    '
    For i = 2 To h2.Range(cb & Rows.Count).End(xlUp).Row
        If h2.Cells(i, cb) = "B" Then
            h1.Range(ca & h1.Range(ca & Rows.Count).End(xlUp).Row + 1) = _
            h2.Cells(i, ct)
        End If
    Next
End Sub

Macro Bloque "C"

Sub nombres_C()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    '
    Set l2 = Workbooks("base de datos")
    Set h2 = l2.Sheets("Hoja1")
    '
    cb = "J" 'columna del bloque
    ct = "B" 'columna del trabajador
    '
    ca = "E" 'columna destino para poner los nombres
    '
    For i = 2 To h2.Range(cb & Rows.Count).End(xlUp).Row
        If h2.Cells(i, cb) = "C" Then
            h1.Range(ca & h1.Range(ca & Rows.Count).End(xlUp).Row + 1) = _
            h2.Cells(i, ct)
        End If
    Next
End Sub

Ah, se me olvidó comentarte, los 2 libros tienen que estar abiertos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas