Jump to content

Macro para transponer datos Excel Vba


temp01

Recommended Posts

[Hola 

Buenas tardes necesito de su ayuda.

Tengo una base de datos de 1200 registros de estudiantes con sus notas respectivas por cada ciclo.

En la hoja Base tengo todas las notas y necesito pasar a otra hoja resumen con los datos transpuestos


Aquí mi archivo de ejemplo con el resultado deseado.

BD-notas.xlsb

Link to post
Share on other sites

Pues aquí dejo esto:

Sub Transponer()
Dim BASE, RESUMEN, Fila
'--.
Application.ScreenUpdating = False
Set BASE = Sheets("BASE")
Set RESUMEN = Sheets("RESUMEN")
'--
Fila = 1
RESUMEN.Range("A2:E" & RESUMEN.Range("A" & Rows.Count).End(xlUp).Row + 1).ClearContents
For x = 3 To BASE.Range("A" & Rows.Count).End(xlUp).Row
   For y = 5 To BASE.Cells(2, Columns.Count).End(xlToLeft).Column
      If BASE.Cells(x, y) <> "" Then
         Fila = Fila + 1
         RESUMEN.Range("A" & Fila) = BASE.Range("B" & x)
         RESUMEN.Range("B" & Fila) = BASE.Range("C" & x)
         RESUMEN.Range("C" & Fila) = BASE.Range("D" & x)
         RESUMEN.Range("D" & Fila) = Replace(BASE.Cells(2, y), Chr(10), " ")
         RESUMEN.Range("E" & Fila) = BASE.Cells(x, y)
      End If
   Next
Next
End Sub

Macro válida para cualquier número de alumnos y asignaturas.

Link to post
Share on other sites
Hace 11 horas, temp01 dijo:

[Hola estimado Gerson  no se como aplicarlo a mi demás registros con power query  haber si me indica gracias 

 

Power Query, trabaja similar a VBA, pero con otro lenguaje de programación, llamado M

Es una maravilla! , digamos que viene a reemplazar muchos procesos, en Excel (incluso mucho de VBA) 

Tiene 2 usos, con la interfaz y el otro con programación 

Para que veas, mi solución, posicionarse en la tabla, podrás ver en la barra título, herramientas de tabla, das clic en "Consultar", luego "Editar" consulta [todo esto varía según la versión de Excel] 

Para 2010 y 2013 puedes bajar el complemento para utilizarlo, es gratis y version posterior ya viene integrada, como parte de sus herramientas nativas, en el menú DATOS 

Busca por el foro, distintas soluciones y explicaciones, como además por la red

 

Saludos!!! 

Link to post
Share on other sites
Hace 11 horas, temp01 dijo:

Hola ANTONI me gustaría entender que hace esta línea 


RESUMEN.Range("D" & Fila) = Replace(BASE.Cells(2, y), Chr(10), " ")

Un ejemplo vale mas que 1000 palabras, observa la celda O2 de la hoja BASE, verás que esta formada por 2 palabras Investigación y Educativa y que están en líneas diferentes, esto es así porque hay un carácter LF entre ambas. (Esto lo provocaste tú al pulsa Alt+Enter entre ambas palabras).

Para conseguir el efecto contrario y que ambas palabras aparezcan como una sola línea de texto es necesario eliminar el carácter LF(Carácter 10 ASCII), esto lo conseguimos sustituyéndolo por un espacio en blanco.

Para que te quede mas claro, prueba la macro con esta línea para observar la diferencia.

RESUMEN.Range("D" & Fila) = BASE.Cells(2, y)

 

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
  • Crear macros Excel

  • Posts

    • Private Sub CommandButton1_Click() Dim Celda As Range, x As Long Application.ScreenUpdating = False For x = 2 To Range("A" & Rows.Count).End(xlUp).Row Range("K" & x) = "" Set Celda = Sheets("Sheet2").Columns("A").Find(Range("A" & x), , , xlWhole) If Not Celda Is Nothing Then Range("K" & x) = Celda.Offset(0, 1) Next End Sub  
    • Hola @Galactico, ¿has probado a extraer el texto de la etiqueta "a"? Y si ha sido así, ¿qué resultado has obtenido?
    • buenas noches, estoy trabajando en una macro para obtener datos web, de a poco he ido aprendiendo como poder obtener objetos desde las diferentes paginas pero ahora he llegado a un punto donde no puedo seguir avanzando, precisamente con lo siguiente   tengo este código de pagina fuente <a href="www.google.com" data-original-title="" title=""> <span itemprop="category">Hola</span> "Adios" </a> con el siguiente código htmlDeRespuesta.getElementsByTagName("span")(0).innerText puedo obtener el texto Hola, pero no he logrado dar con la solución para obtener el dato Adios   por favor agradecería mucho su apoyo y gracias por el espacio   saludos!
    • hola Sergio. Gracias por tu respuesta. Pues algo así también he pensado. traducir las diferentes cantidades e ir cambiándolas en la macro saludos
    • Pues creo que si hay algo... aunque si ya lo hiciste, pues no estaría mal que lo compartas   Saludos!
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy