Extender formato

Hola,
Tengo la siguiente duda y sería estupendo si pudierais ayudarme.
Estoy haciendo una hoja donde se registran una serie de pagos. Cada fila corresponde a un cliente y las columnas contienen fórmulas y listas. Yo he hecho una plantilla donde solo he rellenado las celdas de la fila 2 y otra persona tendrá que ir rellenando la hoja con los clientes, es decir, que tendrá que ir agregando información al resto de las filas. El número de clientes que irán a la hoja no es conocido así que no sé hasta qué fila tengo que extender el formato (fórmulas, listas y demás) de la fila 2.
Mi pregunta es si hay alguna forma para que automáticamente el formato se extienda a las filas que están siendo utilizadas. Por ahora la solución que he hecho ha sido extender la fórmulas hasta un número de filas mucho mayor del que se va a acabar utilizando, pero claro, esto no resulta muy eficiente.
Gracias por adelantado.
Saludos.

1 respuesta

Respuesta
1
Una manera sería rellenando la fila ocupada al momento de ingresar un valor en la última celda de esa fila.
Te dejo 1 ejemplo que considera que la fila se llena de A hasta F, por lo que actúa luego de ingresar el valor en F.
Allí encontrarás como rellenar fórmulas y cómo copiar formato enla fila que se acaba de llenar.
Entrá al Editor de macros, seleccioná el objeto HOJA donde esto deberá ejecutarse y allí pegás la rutina. Modificale las referencias y si todo quedó tal lo esperado no olvides finalizar la consulta.
Private Sub Worksheet_Change(ByVal Target As Range)
' Macro desarrollada el 08/05/2009 por Elsamatilde
'acoto rango de acción
If Target.Column <> 6 Or Target.Row < 3 Then Exit Sub
fil = Target.Row - 1
'
'para rellenar con fórmulas col B y E
Cells(fil, 2).Select
Selection.AutoFill Destination:=Range(Cells(fil, 2), Cells(fil + 1, 2)), Type:=xlFillDefault
Cells(fil, 5).Select
Selection.AutoFill Destination:=Range(Cells(fil, 5), Cells(fil + 1, 5)), Type:=xlFillDefault
'para copiar formato
Range(Cells(fil, 1), Cells(fil, 8)).Select
Selection.Copy
Range(Cells(fil + 1, 1), Cells(fil + 1, 8)).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'posicionarse en la 1er celda de la fila sgte
Cells(fil + 2, 1).Select
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas