Llenar una hoja según los datos de otra

Tengo un archivo con un calendario perpetuo en cuyos días voy poniendo colores y letras en función de los días que trabajo. Necesito algún código que, cuando yo ponga por ejemplo en el dia 10 de enero la marca L1, en otra hoja me ponga la fecha, es decir "10 de enero del año en curso" y el texto" Libre", o en su defecto si pongo cualquier otra marca como "S", en la misma fecha en vez de libre me ponga "servicio".

2 Respuestas

Respuesta
1

Más información

En la hoja 1 tengo un calendario perpetuo. En la hoja 2 columna A(dia), columna B(concepto). La idea es que cuando ponga en el calendario en cualquier fecha L1,en la hoja 2 reconozca la fecha del calendario y me la ponga completa, además reconozca L1 como día libre y lo ponga en la columna B.  

Puedes mandarme tu archivo a mi correo y así puedo ayudarte mejor! Mi correo es jd_correa1 @ hotmail.com

Respuesta
1

Debes subir una imagen dando idea de la ubicación de datos en el calendario para controlar el ingreso de tus letras. Además indica en qué celda o rango de la otra hoja debe colocar el texto convertido.

Si te es más fácil podés enviarme copia de tu hoja y aclaraciones a alguno de mis correos que aparecen en mi sitio que dejo al pie,.

Gracias te he mandado el archivo a esta dirección que no si es correcta:

[email protected]  

Es correcta y ya te devolví el libro con esta macro colocada en el objeto HOJA:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'se controla lo ingresado en filas pares en rango C6:AR30
If Intersect(Target, Range("C6:AR30")) Is Nothing Then Exit Sub
If Target.Row Mod 2 <> 0 Then Exit Sub
'si se modifica un rango o si se borra contenido no se ejecuta
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
'tampoco se ejecuta si 'arriba'no hay nro de día
If Target.Offset(-1, 0) = "" Then Exit Sub
Dim busco
'se pasa fecha (fila anterior) y texto según valor de target. Tabla de conversión en col M
filx = Sheets("DIASTRABAJO").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("DIASTRABAJO").Range("A" & filx) = Target.Offset(-1, 0)
Set busco = Sheets("DIASTRABAJO").Range("M:M").Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not busco Is Nothing Then
    Sheets("DIASTRABAJO").Range("B" & filx) = busco.Offset(0, 1)
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas