Macro para insertar datos en diferentes hojas con calendario anual

Me podéis ayudar hacer una macro para un archivo excel con varias hojas en las cuales hay un calendario anual en el que tengo que introducir datos como ... Vacaciones desde el 7 de agosto al 15 de agosto de pepe. ¿Es posible?

1 respuesta

Respuesta
1

Envíame tu archivo y me explicas con ejemplos y colores lo que necesitas.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “José Luis Junco” y el título de esta pregunta.

Ya te envíe el archivo dante

Anexo la parte para cargar el formulario

Private Sub UserForm_Activate()
'Por.Dante Amor
    'Cargar
    Set h2 = Sheets("NOMBRES")
    h2.Range("A2:B" & h2.Range("A" & Rows.Count).End(xlUp).Row + 2).Clear
    j = 2
    For Each h In Sheets
        una = True
        Select Case UCase(h.Name)
            Case Is = "PLANTILLA", "BUSCAR", "NOMBRES"
            Case Else
                'carga hojas
                ComboBox1.AddItem h.Name
                'carga nombres
                For i = 4 To h.Range("A" & Rows.Count).End(xlUp).Row
                    If una Then
                        pri = h.Cells(i, "A")
                        una = False
                    Else
                        If h.Cells(i, "A") = pri Then Exit For
                    End If
                    If h.Cells(i, "A") <> "" Then
                        h2.Cells(j, "A") = h.Cells(i, "A")
                        h2.Cells(j, "B") = h.Name
                        j = j + 1
                    End If
                Next
        End Select
    Next
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    ListBox1.RowSource = h2.Name & "!A2:B" & u
    '
    'Carga tipos
    '"vacaciones, permiso o pex"
    ComboBox2. AddItem "Vacaciones"
    ComboBox2. AddItem "Permiso"
    ComboBox2. AddItem "Pex"
End Sub

sal u dos

Anexo la macro para actualizar las fechas

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Dim fec1 As Date, fec2 As Date
    If ListBox1.ListIndex = -1 Then
        MsgBox "Selecciona un nombre"
        Exit Sub
    End If
    If ComboBox2 = "" Then
        MsgBox "Selecciona un tipo de descanso"
        ComboBox2.SetFocus
        Exit Sub
    End If
    If TextBox2 = "" Or Not IsDate(TextBox2) Then
        MsgBox "Captura una fecha desde"
        TextBox2.SetFocus
        Exit Sub
    End If
    If TextBox3 = "" Or Not IsDate(TextBox3) Then
        MsgBox "Captura una fecha Hasta"
        TextBox3.SetFocus
        Exit Sub
    End If
    fec1 = TextBox2
    fec2 = TextBox3
    If fec2 < fec1 Then
        MsgBox "La fecha Hasta tiene que ser mayor o igual a la fecha Desde"
        TextBox3.SetFocus
        Exit Sub
    End If
    '
    nombre = ListBox1.List(ListBox1.ListIndex, 0)
    hoja = ListBox1.List(ListBox1.ListIndex, 1)
    Set h3 = Sheets(hoja)
    u = h3.Range("A" & Rows.Count).End(xlUp).Row
    For fecha = fec1 To fec2
        Set b = h3.Columns("B:AZ").Find(fecha, lookat:=xlWhole)
        If Not b Is Nothing Then
            'b.Select
            col = b.Column
            existe = False
            For i = b.Row To u
                If h3.Cells(i, "A") = nombre Then
                    h3.Cells(i, col) = ComboBox2.List(ComboBox2.ListIndex, 1)
                    existe = True
                    Exit For
                End If
            Next
            If existe = False Then
                MsgBox "nombre no existe"
                Exit Sub
            End If
        Else
            MsgBox "Fecha no encontrada"
            Exit Sub
        End If
    Next
    MsgBox "Periodo guardado"
End Sub

sal u dos

Hola gran experto dante, no se si te acuerdas de esta macro tan buena que me creaste... la cual me facilita mucho mi trabajo.. mi pregunta es:

- ¿Para el año 2018 solo tengo que cambiar las fechaz y seguirá funcionando igual?

- Hay una mejora que me gustaría incorparar a ver si es posible si es así te haría una nueva pregunta en todoexpertos, la cual es ... de cada grupo se puede ir de vacaciones cierto numero de gente .. ¿se puede introducir un mensaje que ha pasado del numero autorizado?

Muchas muchas gracias de antemano por tu preciado tiempo

Para las fechas del 2008 prueba y me comentas.

Para el mensaje crea la nueva pregunta.

Comprobado las fechas funciona perfectamente... gracias 

he creado una nueva pregunta para que salga el mensaje de advertencia, me ha contestado un experto llamado boomerang pero no eres tu  verdad?

un saludo gran experto 

No soy yo, mi usuario es aprendemos y mi nombre Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas