Al teclear un valor en celda F2, en automático se replique hasta donde hay datos de esa misma columna F

Quiero meter una fecha en la columna F2 pero me gustaría que en automático se rellenen las demás celdas de esa misma columna F hasta donde hay datos de las demás columnas y no tener que copiar y pegar... ¿se puede?

2 respuestas

Respuesta
4

El evento que controla el ingreso de datos en una celda es Change... en cambio SelectionChange se ejecuta al seleccionar una celda... y no es eso lo que necesitas.

Entra al Editor, selecciona con doble clic la hoja donde vayas a trabajar y allí copiá esta macro. Se replicará lo que ingreses en F2 hasta la última celda según columna A ... aquí coloca la columna que tenga todos los datos.

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'controla si se ingresó un valor en F2
If Target.Address(False, False) = "F2" Then
    'se replica en el resto de la col hasta la última según A
    Range("F3:F" & Range("A" & Rows.Count).End(xlUp).Row) = [F2]
End If
End Sub

 Sdos y no olvides valorar mis respuestas (opciones: excelente o buena). Tengo otra enviada con anterioridad.

¡Gracias! Elsa y me gustaría aprender a programar ya que mi trabajo es el manejo de muchos datos y es rutinario  

En mi sitio que dejo al pie podrás encontrar material (Conceptos básicos de macros, ejemplos, demos y por supuesto manuales (dejo los índices de contenidos allí mismo).

Si deseas contactarme allí encontrarás también mis correos.

Respuesta
2

Pega esta macro en el modulo de la hoja donde quieras hacer la copia cuando pongas algo en f2 de esa hoja en automático se rellenara todas las celdas hasta donde tengan datos las otras columnas, estoy suponiendo que tu información empieza en a1, la macro solo servirá en la hoja donde la pegues

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
filas = Range("a1").CurrentRegion.Rows.Count
Range("f3").Resize(filas - 2, 1).Value = Range("f2").Value
End Sub

¡Gracias! James Bond

Puedo integrarla de forma que cada que abra cualquier archivo, claro con el mismo formato pueda utilizar la macro?

No, al ser macro evento este solo tienes 2 alcances o a nivel hoja o a nivel libro, si es a nivel hoja esta macro solo funcionara en la hoja donde este ubicada y a nivel libro funcionara en todas las hojas del libro donde este la macro evento, esta evento que ves abajo funciona a nivel libro, y la que te pase funciona a nivel hoja, si quieres usarla en otros libros abiertos debes instalar macro ya sea en el modulo de la hoja o en el modulo Thisworkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Address = "$F$2" Then
        filas = Range("a1").CurrentRegion.Rows.Count
        Range("f3").Resize(filas - 2, 1).Value = Range("f2").Value
    End If
End Sub

y esta es la macro evento para una hoja en especifico, por favor usa esta en vez de la que tienes es mas estable.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$2" Then
        filas = Range("a1").CurrentRegion.Rows.Count
        Range("f3").Resize(filas - 2, 1).Value = Range("f2").Value
    End If
End Sub

pongo la macro en el Thisworkbook PERSONAL pero no me hace nasa y si quiero que funcione para cualquier libro ya que son 500 libros que tengo que abrir y poner fecha en la columna F, pero funciona muy bien para un solo libro u hoja

Checa si la macro esta asi, si copiaste la macro private worksheets_sheetchange a THISWORKBOOK esta no va a funcionar, necesitas copiarla de la manera que esta indicada en el recuadro, respecto a lo de los 500 libros para eso requieres una macro especializada y no una macro evento, se puede hacer solo que esa ya es otra consulta diferente.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Address = "$F$2" Then
        filas = Range("a1").CurrentRegion.Rows.Count
        Range("f3").Resize(filas - 2, 1).Value = Range("f2").Value
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas