Autollenado

Necesito una macro que haga lo siguiente: en la columna A tengo un listado( variable en número) de materias (Matemática, Lengua, etc) Y en la columna B tengo el año en que se cursó cada materia. La macro debe copiar el año colocado en la primera celda de la columna y pegarlo en las demás, de acuerdo al número de materias de la columna A.La macro debe funcionar para cualquier columna (no necesariamente la B).
Respuesta
1
Entendí a medias, veamos si es esto:
Supongamos que el la primera fila los títulos son estos...
(A1) (B1) (B2)
Materia Año Año, etc.
Para el titulo de cada columna de "Año", en la celda que va el titulo ej. "B1":
click botón derecho/Formato de Celdas/Número/Personalizar
Y escribir "Año: "0
Tal cual lo puse ...
ComillasAñoDosPuntos (Espacio)Cero.
De ahora en más, cuando escribas ej. 2002
Solo insertará Año: y quedará así Año: 2002.
Ahora en la celda "B2"
Esta fórmula:
=si(a2<>"";$b$1;"")
Significa:
Si la celda "A2" no está vacía; copie el valor (en este caso el num de año) de "B1"; de lo contrario no haga nada.
Luego arrastrá esa fórmula tantas filas hacia abajo como quieras.
Ahora en la celda "C2"
Esta fórmula:
=si(a2<>"";$C$1;"")
Que significa lo mismo solo que copia el año de "C1" y tendrá que ir cambiando en la fórmula la columna correspondiente al año en cuestión.
Espero que sea esto.
Cualquier cosa me preguntas de nuevo y si está bien, no olvides finalizar y valorar la respuesta. Hasta la próxima.
En la columna A tengo un listado de materias(pueden ser 2,3,4,5 .. materias). Y en la columna B, o C, o D... tengo que poner en la 1º celda el año que se cursó la materia.Ese año de la 1º celda se debe copiar automáticamente a las demás celdas de la columna(con macro), de acuerdo al número de materias de la columna A.Así:
Materia Año Cursado
Matemática 2002
Lengua 2002
Física 2002
Espero que me hayas entendido. Gracias
No entiendo...
.. el número de materia qué es, ¿una cantidad o un código
para que identifique cada materia?
.. No necesariamente para la columna "B", no me que claro, pero seguro se puede hacer.
Explicarlo mejor en lo posible con un ej, más amplio.
No es lo mismo para el que sabe lo que necesita, que para el experto.
Espero tu respuesta. Hasta la próxima.

1 respuesta más de otro experto

Respuesta
1
Teniendo en cuenta que partimos de la base que estamos situados en la primera celda (con el año) de la columna a rellenar..:
Sub rellenar()
Dim num As Integer
Dim dato As Variant
Dim celda As String
Dim i As Integer
dato = ActiveCell.Value
ActiveCell.Name = "celda"
Range("A1").Select
Do Until ActiveCell.Value = ""
num = num + 1
ActiveCell.Offset(1, 0).Select
Loop
Range("celda").Select
ActiveCell.Offset(1, 0).Select
For i = 1 To num - 1
ActiveCell.Value = dato
ActiveCell.Offset(1, 0).Select
Next i
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas