Macro con funcion dias.lab funcionando con rangos variables
Sobre una hoja que siempre tendrá la misma estructura pero filas diferentes. Deseo realizar varias operaciones sobre los datos de cada línea en función de si un valor concreto supera cierto limite. Si es así debo saber si la fecha en cuestión es laborable, uso la función días.lab pero al meter la función en macro no se como hacer que lo siguiente funcione:
NetworkDays(FECHA, FECHA, VACIONES_ANO)
Donde fecha seria una variable que se define automáticamente con formato fecha y VACACIONES_ANO es un rango fijo en otra hoja con las fiestas nacionales que se define en función del año detectado.
He probado a escribir la fórmula con un:
ActiveCell.FormulaR1C1 = _
"=+NETWORKDAYS(RC[-7],RC[-7],Periodos!R[28]C[1]:R[35]C[1])"
pero soy incapaz de sustituir los valores relativos por variables.
Hasta ahora tengo esto funcionando:
Sub EXCESO_POTENCIA()
Sheets("hoja inicio").Select
'SE DETECTA EL VALOR MINIMO DE POTENCIA CONTRATADA
Range("B4") = WorksheetFunction.Min(Range("B2:G2"))
Range("b4").Select
'SE GUARDA EL VALOR DE POTENCIA MINIMA
pmin = ActiveCell.Value
'SE DEFINE EL RANGO DE TRABAJO
Sheets("HOJA DATOS").Select
Range("h2").Select
Range(Selection, Selection.End(xlDown)).Select
'SE DETECTA SI HAY QUE TRABAJAR CON CADA FILA DE LA SELECCION
For Each celda In Selection
If celda.Value > pmin Then
celda.Select
ActiveCell.Offset(0, -3).Select
'se detecta el año de la fecha y se define el rango de vacaciones escrito en un rango fijo de otra hoja
If ActiveCell.Value = 2015 Then
Sheets("Periodos").Select
Range("I33:I40").Select
VACANO = Selection.Address
End If
If ActiveCell.Value = 2016 Then
Sheets("Periodos").Select
Range("j33:j40").Select
'NO ESTOY SEGURO DE ESTA DEFINICION DE VARIABLE
VACANO = "PERIODOS!" & Selection.Address
'COMIENZA LA DETECCION DE LA FECHA COMO LABORABLE
Sheets("HOJA DATOS").Select
celda.Select
ActiveCell.Offset(0, -6).Select
FECHA = ActiveCell.Value
'seleccionar la casilla donde se va a meter la formula
ActiveCell.Offset(0, 7).Select
ActiveCell.FormulaR1C1 = _
"=+NETWORKDAYS(RC[-7],RC[-7],VACANO)"
ActiveCell.Selection = WorksheetFunction.NetworkDays(FECHA, FECHA, VACANO)
If ActiveCell.Value = 0 Then
End If
End If
If ActiveCell.Value = 2017 Then
Sheets("Periodos").Select
Range("k33:k41").Select
VACANO = Selection.Address
End If
End If
Next celda
End Sub