Option Explicit
Sub ActualizarAcciones()
Dim Acciones As Long, Fila As Long, CODE As String, i As Long, _
F As Long, C As Long, CATEGORIA As String
Dim Columna_Desde As Long, FECHA_DESDE As Date, _
Columna_Hasta As Long, FECHA_HASTA As Date, Columna As Long
Application.ScreenUpdating = False
' ---&--- Limpia la Tabla
Sheets("Calendario").Select
Range("C3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.ClearContents
Range("C3").Select
' ---&--- Proceso
Sheets("Bitacora").Select
Acciones = WorksheetFunction.CountA(Range("A:A"))
For i = 2 To Acciones Step 1
Sheets("Bitacora").Select
CATEGORIA = Range("B" & i).Value
FECHA_DESDE = Range("D" & i).Value
FECHA_HASTA = Range("E" & i).Value
CODE = Range("C" & i).Value
Sheets("Calendario").Select
' ---&--- Busca la Columna
Columna_Desde = 0
Columna_Hasta = 0
C = 3
While Cells(1, C) <> "" And (Columna_Desde = 0 Or Columna_Hasta = 0)
If Cells(1, C) = FECHA_DESDE Then Columna_Desde = C
If Cells(1, C) = FECHA_HASTA Then Columna_Hasta = C
C = C + 1
Wend
' ---&--- Busca la fila
Fila = 0
F = 3
While Cells(F, "A") <> "" And Fila = 0
If Cells(F, "A") = CATEGORIA Or Cells(F, "B") = CATEGORIA Then Fila = F
F = F + 1
Wend
' ---&--- Si tengo Fila y Columna Guardoo
If Fila > 0 And Columna_Desde > 0 And Columna_Hasta Then
For Columna = Columna_Desde To Columna_Hasta
Cells(Fila, Columna) = CODE
Next
Else
MsgBox "No puedo localizar:" & _
vbCrLf & _
vbCrLf & _
"CATEGORIA: " & CATEGORIA & _
vbCrLf & _
vbCrLf & _
"Fecha Desde: " & FECHA_DESDE & _
vbCrLf & _
vbCrLf & _
"Fecha Hasta: " & FECHA_HASTA, _
vbCritical + vbOKOnly, "ERROR LOCALIZAR"
End If
Next
Application.ScreenUpdating = True
MsgBox "Acciones Procesadas"
' ActiveWorkbook.Save
End Sub