Buscar dato en tabla, según condiciones, y que me devuelva otro

Tengo esta hoja, con dato "1" en c9, quiero que si b6("2016"), del boletin=c3(tabla coloreada), y

d6("Enero"), del boletín=b4(tabla coloreada). Me busque "1" en la tabla coloreada y me devuelva el día de semana(L, M, X, J, V, S, D), en B9 del boletín, y a poder ser que se rellene hasta B15(del boletín) con los siguientes días. Gracias y un saludo. CARPE DIEM

1 Respuesta

Respuesta
1

Esta es la macro que necesitas para las tablas de la imagen. A la primer hoja la llamé Boletin y a la segunda Hoja2. Ajusta estos nombres en la macro.

Sub acomodDias()
'x Elsamatilde
'se empieza en C9 de hoja Boletin mirando Hoja2(ajustar nombres)
Set ho2 = Sheets("Hoja2")
Sheets("Boletin").Select
[C9].Select
fil = 9      '1er fila destino
'si coinciden en año se busca la fila del mes
If [B6] = ho2.[C3] Then
    Set busco = ho2.[B4:B15].Find([D6], LookIn:=xlValues, lookat:=xlWhole)
    'si lo encontró acomoda los 7 días
    If Not busco Is Nothing Then
        x = busco.Row
        'se recorre la fila encontrada, col D:J
        For y = 4 To 10
            If ho2.Cells(x, y) <> "" Then
                'y es la col del primer día. Los días están en fila 3
                Cells(fil, 2) = ho2.Cells(3, y)
                Cells(fil, 3) = ho2.Cells(x, y)
                'se incrementa en 1 la fila del boletín
                fil = fil + 1
            End If
        Next y
    Else
        'borra posibles datos anteriores - opcional
        [B9:C15] = ""
    End If
Else
    'borra posibles datos anteriores - opcional
    [B9:C15] = ""
End If
End Sub

Luego de probarla no olvides valorar la respuesta para darla por cerrada. 

gracias por la respuesta, pero no hace nada, cambio los nombres de boletín por "boleto", y hoja2 por "calendario"(que son cómo se llaman las hojas), y no pasa nada. La macro la he asociado a un botón en la hoja "boleto".

En cada línea donde aparece la palabra 'Hoja2' debes colocar el nombre de la hoja con los colores y donde dice 'Boletin' donde necesitas el resultado.

En algo te estás equivocando. También es posible que no tengas habilitadas las macros, eso es muy probable ;)

Podés solicitarme el ejemplo FUNCIONANDO a mi correo (aparecen en la portada de mi sitio que dejo al pie).

Sub acomodDias()
'x Elsamatilde
'se empieza en C9 de hoja Boletin mirando Hoja2(ajustar nombres)
Set ho2 = Sheets("calendario")
Sheets("boleto").Select
[C9].Select
fil = 9 '1er fila destino
'si coinciden en año se busca la fila del mes
If [B6] = ho2.[C3] Then
Set busco = ho2.[B4:B15].Find([D6], LookIn:=xlValues, lookat:=xlWhole)
'si lo encontró acomoda los 7 días
If Not busco Is Nothing Then
x = busco.Row
'se recorre la fila encontrada, col D:J
For y = 4 To 10
If ho2.Cells(x, y) <> "" Then
'y es la col del primer día. Los días están en fila 3
Cells(fil, 2) = ho2.Cells(3, y)
Cells(fil, 3) = ho2.Cells(x, y)
'se incrementa en 1 la fila del boletín
fil = fil + 1
End If
Next
Else
'borra posibles datos anteriores - opcional
[B9:B15] = ""
End If
Else
'borra posibles datos anteriores - opcional
[B9:B15] = ""
End If
End Sub

Así lo dejé y no hace nada, macros activados.Gracias.

¿Y a donde te puedo enviar el archivo con la macro que SI se ejecuta para que puedas comparar?

Sdos!

Ya te lo envié. Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas