Cambiar Fórmula por código de vba

Tengo esta fórmula y funciona muy bien. Cada ves que hago una copia de la hoja tengo que estar copiando y pegando los datos para que se borren las fórmulas ya que tengo que capturar más información.

=SI(K$7=$F14,"D",SI(K$7=$G14,"D",""))

No se si se pueda hacer con código, que haga lo que hace la función. Colocar un botón en "5o" y que haga lo que hace la función colocar la D en el descanso seleccionado.

Lo que hace esto es que cada ves que capturo los días de descanso se coloca la de "D" de descanso

1 respuesta

Respuesta
2

Visita:

Cursos de Excel y Macros - YouTube



Sub PonerD()
'Por Dante Amor
  Dim j As Long
  '
  For j = Columns("I").Column To Cells(7, Columns.Count).End(1).Column
    If LCase(Cells(7, j).Value) = LCase(Range("F11").Value) Or _
       LCase(Cells(7, j).Value) = LCase(Range("G11").Value) Then
      Cells(11, j).Value = "D"
    End If
    If LCase(Cells(7, j).Value) = LCase(Range("F14").Value) Or _
       LCase(Cells(7, j).Value) = LCase(Range("G14").Value) Then
      Cells(14, j).Value = "D"
    End If
  Next
End Sub



Curso 

Función sumaproducto - YouTube

Sumaproducto con condicion en Excel - YouTube


Sal u dos Dante Amor

¡Gracias! Un millón de gracias. 

Y cuando es así consecutivo como le hago para no repetir el código es que se son más de veinte empleados.

Y gracias por seguir ayudando a tantas dudas.

el código funciona muy bien solo que cuando no hay días de descanso me coloca de "D" en las columnas siguientes. ejemplo

No entiendo. Del lado izquierdo veo las letras "d" y "l". Qué otra condición debe considerar, explica claramente qué necesitas.

Las letras de la izquierda son los días de descanso D=Domingo, L=Lunes etc. la macro qué me envió la coloque en un botón. Y si funciona  muy bien pero si algun empleado no le pongo su día de descanso me coloca la "D" de descanso fuera de los días del mes.

Yo no sé en cuál columna termina el mes. La macro supone que son todas las columnas de la derecha.

Entonces, si tú conoces en cuál es la última columna del mes, cambia esta línea:

For j = Columns("I").Column To Cells(7, Columns.Count).End(1).Column

Por esta

For j = Columns("I").Column To Columns("X").Column

Y cambia "X" por la letra de la columna donde termina el mes.

Sal u dos Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas