Repetir una formula en varias celda cambiando el nombre de hoja

hola gente

tengo que copiar una formula Si en una hoja, el problema es que tengo 400 hojas y en cada celda la formula cambia de nombre de hoja.

=SI(Y(Lucas!F3>30;Lucas!F3<4000);Lucas!B2;"")

=SI(Y(Martin!F3>30;Martin!F3<4000);Martin!B2;"")

1 Respuesta

Respuesta
1

¿Tienes las 400 hojas dentro del mismo libro?. Si es así, selecciona todas las hojas y escribe la fórmula en la celda que quieres para todas las hojas. Verás que se te copia a todas las hojas correctamente.

Para seleccionar todas las hojas, haz clic en la primera y después teniendo la tecla Mayusc. Presionada haz clic en la última hoja.

Se me olvidaba decirte que no es necesario que pongas el nombre de la hoja. La fórmula quedará así:

=SI(Y(F3>30;F3<4000);B2;"")

No te olvides de cerrar la pregunta y puntuarla.

me explico mejor, tengo 400 hojas pero en la hoja 1

celda A1 va la formula =SI(Y(Lucas!F3>30;Lucas!F3<4000);Lucas!B2;"")

celda A2 va la formula =SI(Y(Martin!F3>30;Martin!F3<4000);Martin!B2;"")

celda A3 va la formula =SI(Y(jose!F3>30;jose!F3<4000);jose!B2;"")

el trabajo es en una hoja sola

Gracias

Ok. Te paso esta pequeña macro que recorre todas las hojas del libro, hace la comparación de las celdas F3 de cada hoja, si se cumple, pone el valor de la celda B2 de cada hoja en A2, A2, A3,... de la PRIMERA HOJA (Ojo!).

Espero haberte comprendido ahora.

Un saludo y no olvides cerrar la pregunta y puntuarla. Gracias.

Sub RecorrerHojas()
Dim numHojas As Integer, celda As Integer
numHojas = ActiveWorkbook.Worksheets.Count
celda = 1
For t = 2 To numHojas
ActiveWorkbook.Worksheets(t).Activate
If Cells(3, 6) > 30 And Cells(3, 6) < 4000 Then
valor = Cells(2, 2)
ActiveWorkbook.Worksheets(1).Activate
Cells(celda, 3) = valor
Else
ActiveWorkbook.Worksheets(1).Activate
Cells(celda, 3) = ""
End If
celda = celda + 1
Next t
End Sub

muy bueno, te molesto una vez mas. puedo elegir yo en que hoja me pone los datos por ejemplo en vez de la primer hoja en la 3. y ademas de traerme el dato B2 me traiga B1?.

Lo que me pasaste me trae el dato B2 a la primer hoja en la celda C2 de ahi para abajo c3,c4,c5 me gustaría que en D2 para abajo me traiga el dato B1

te cuento la celda B2 es un tel y B1 es el nombre, las hojas son cuentas de clientes y lo que quiero con esta formula es que cuando pasen mas de treinta días me traiga el nombre y tel asi los comunico.

desde ya muchas gracias, ya me ayudaste un monton

Aquí tienes el nuevo código para que copie los dos valores:

Sub RecorrerHojas()
Dim numHojas As Integer, celda As Integer
numHojas = ActiveWorkbook.Worksheets.Count
celda = 2
For t = 1 To numHojas
If t = 3 Then t = t + 1 ' Este 3 indica las hoja en la que se grabarán los datos.
ActiveWorkbook.Worksheets(t).Activate
If Cells(3, 6) > 30 And Cells(3, 6) < 4000 Then
valor1 = Cells(1, 2) ' B1
valor2 = Cells(2, 2) ' B2
ActiveWorkbook.Worksheets(3).Activate ' Aquí le indico que grabe en la hoja 3
' Celdas de la 3ª hoja donde pone los datos
Cells(celda, 3) = valor1 ' Celda Cx
Cells(celda, 4) = valor2 ' Celda Dx
Else
ActiveWorkbook.Worksheets(1).Activate
Cells(celda, 3) = ""
Cells(celda, 4) = ""
End If
celda = celda + 1
Next t
End Sub

No olvides cerrar la pregunta y puntuarla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas