Macro en excel que complete n cantidad de celdas con un texto

Tengo una planilla que en la columna B tiene un número entero, también tiene columnas calendarizadas, es decir D, E, F... Etc. Tienen Lun, ma, mie, jue ... Etc (todo un año).

La macro debería tomar el número entero de la columna B y completar tantas celdas como este valor indique con un texto.

Vamos al caso en concreto: las filas son cursos, por ejemplo:

A2 (Curso) "Costura martes de 17 a 20"

B2 (Cant clases) 12

C2 (Fecha inic)

D2 Lun

E2 Mar - "Clase 1"

F2 Mie

G2 Jue

H2 Vie

I2 Sa

J2 Lu

K2 Ma - "Clase 2" ... Hasta clase 12

Hay cursos de 4 clases y cursos de 20 clases

Adjunto un link de descarga de hasta donde tengo resuelta la planilla

Desde ya mil gracias

Planilla control de cursos ==> Descarga

2 Respuestas

Respuesta

debes realizar un bucle forn next o wil wend

https://youtu.be/uiVRPrzP-5k

https://youtu.be/Zz_dpviPzKs

https://youtu.be/Oukw65zwnzE

Debes detectar la última fila con datos para decir al bucle ya sea for o while hasta donde quieres realice el rellenado de celdas en el caso que requieras hasta la última fila con datos esto te permite detectar la última fila con dato y el otro ejemplo ultima fila de una selección de un rango

https://youtu.be/_XegDeHiORc

https://youtu.be/Z9Rv4Y-cF24

[url=https://www.youtube.com/c/programarexcel?sub_confirmation=1]
https://www.youtube.com/c/programarexcel?sub_confirmation=1[/url] 

Respuesta
2

Te anexo la macro

Sub Completar_Clases()
'Por Dante Amor
    Application.ScreenUpdating = False
    fila = 4
    Do While Cells(fila, "A") <> ""
        fila = fila + 1
    Loop
    fila = fila - 1
    ucol = Cells(2, Columns.Count).End(xlToLeft).Column
    Range(Cells(4, "J"), Cells(fila, ucol)).ClearContents
    '
    For i = 4 To fila
        fecha = Cells(i, "H").Value
        clases = Cells(i, "F").Value
        n = 1
        Set b = Rows(2).Find(fecha, lookat:=xlWhole, LookIn:=xlValues)
        If Not b Is Nothing Then
            col = b.Column
            For j = 1 To clases
                Cells(i, col).Value = "Clase " & n
                n = n + 1
                col = col + 6
            Next
        Else
            Cells(i, "J").Value = "No existe la fecha"
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Te regreso el archivo con el ejemplo. La macro va en el módulo3

Matriz



'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas