Macro para copiar un texto y pegarlo como comentario

5 envíos / 0 nuevos
Último envío
luismigueldelepe
Imagen de luismigueldelepe
Offline
última acción: Hace 5 años 5 meses
alta: 20/07/2018 - 07:44
Puntos: 245
Macro para copiar un texto y pegarlo como comentario

Muy buenas a todos y todas y gracias por dedicarme unos minutos. Estoy tratando de preparar una macro para que cumpla un objetivo y no lo consigo. Es algo sencillo, pero no soy capaz... Me explico: estoy preparando una plantilla de evaluación en excel (soy docente) y quiero que en la lista de estudiantes, que aparecerán solo con su número de lista (1, 2, 3...), la celda de cada número muestre un comentario con el nombre del estudiante.

Ahora mismo, el archivo que subo he conseguido que la macro rescate el nombre de los estudiantes y los pegue como comentario en la lista de estudiantes, pero lo hace mal, como ahora veréis.

Muchas gracias de nuevo.

AdjuntoTamaño
File prueba.xlsm16.31 KB

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 21 horas 16 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Según pones en tu hoja,

Según pones en tu hoja, quieres que tu macro copie la celda C4 y pegue su texto como comentario en las celdas A4, A5 Y A6; Luego, pasa a la celda C5 y utiliza su contenido como comentario en las celdas A13,A14 y A15; luego la celda C6, iría a las celdas A22, A23, A24; y así sucesivamente.

así que hay una relación directa entre la fila en la columan C (origen) y las filas en la columna A (destino)

1ª -> 4 -> 4
2ª -> 5 -> 13
3ª -> 6 -> 22

 

empezamos en la 4 y hay un salto de 9 entre uno y otro, así que puedes calcular cuál es tu fila de destino por ejemplo así (para la primera fila de destino de las 3 que tienes

filadestino=4 + 9*(filaorigen-4)

Haz un bucle que recorra las filas del origen y con esto puedes calcular las filas de destino

si necesitas tres filas de destino, seria un bucle para repetirlo 3 veces, por ejemplo:

For i=0 to 2

  filadestino=4 + 9*(filaorigen-4) + i

Next

 

------
Ya sé Excel, pero necesito más.

luismigueldelepe
Imagen de luismigueldelepe
Offline
última acción: Hace 5 años 5 meses
alta: 20/07/2018 - 07:44
Puntos: 245
Muchas gracias, parece una

Muchas gracias, parece una solución bastante elegante. Sin embargo, dado el mínimo conocimiento de macros que tengo no soy capaz de integrar tus líneas de código dentro de mi macro. Entiendo que das solución al problema y que tus líneas hay que integrarlas en mi macro, pero sinceramente no consigo que reproduzca lo que pretendo que, por cierto, es exactamente como lo has explicado (no sabía si me explicaría bien). Mi macro (seguramente que no esté muy depurada, pero bueno) es esta:

For i = 4 To 24 Step 6

        

        For k = 4 To 6 Step 1

        

        

        

        Sheets("Hoja1").Cells(i, 1).ClearComments

        

            

            

                Sheets("Hoja1").Cells(i, 1).AddComment

                Sheets("Hoja1").Cells(i, 1).Comment.Visible = False

                Sheets("Hoja1").Cells(i, 1).Comment.Text Text:=Sheets("Hoja1").Cells(k, 3).Text

                Sheets("Hoja1").Cells(i, 1).Comment.Shape.Width = 150

                Sheets("Hoja1").Cells(i, 1).Comment.Shape.Height = 15

                

                i = i + 1

                

                    

        Next

        k = k + 1

        

    Next

 

 

 

End Sub

 

Y tus líneas son:

For i = 0 To 2

 

  filadestino = 4 + 9 * (filaorigen - 4) + i

 

Next

 

Si alguien sabe cómo integrarlas, se lo agradecería mucho (yo voy a serguir intentandolo, pero como ya llevo 24 horas y no me sale, pido ayuda de nuevo). Por supuesto te agradecería de nuevo tu ayuda pacomegia, pero no quiero abuscar.

Muchas gracias a la comunidad y especialmente a pacomegia.

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 21 horas 16 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Vamos a verSub Prueba()   Dim

Vamos a ver

Sub Prueba()

   Dim i, filaorigen, filadestino

   For filaorigen = 4 To 6 Step 1 'bucle por tus filas de origen

      For i = 0 To 2 'para cada origen tenemos 3 celdas de destino

         filadestino = 4 + 9 * (filaorigen - 4) + i  'tu fila de destino

         With Sheets("Hoja1").Cells(filadestino, 1)

            .ClearComments

            .AddComment

            With .Comment

               .Visible = False

               .Text Text:=Sheets("Hoja1").Cells(filaorigen, 3).Text

               .Shape.Width = 150

               .Shape.Height = 15

            End With

         End With

      Next

   Next

End Sub

 

------
Ya sé Excel, pero necesito más.

luismigueldelepe
Imagen de luismigueldelepe
Offline
última acción: Hace 5 años 5 meses
alta: 20/07/2018 - 07:44
Puntos: 245
Muchísimas gracias. FUnciona

Muchísimas gracias. FUnciona perfectmente y la he podido adaptar a mi excel de verdad, cambiando un par de parámetros. Muchas gracias de nuevo.