23 abril, 2021

EXTRAER DATOS DE UNA CELDA Y COLOCARLOS EN DIAGONAL

Hola a todos : )

Este fin de semana he tenido que resolver dos consultas bastante complicadas que me enviaron unos lectores y no tuve tiempo para subir el post que había preparado. Pero hoy ya puedo hacerlo : )

La entrada de hoy se basa en una consulta que me enviaron hace unas semanas, aunque se trata de una tarea sencilla, realmente no sé cual es el destino o función para la que se necesita. En la petición se solicitaba una macro que extrajera el contenido de una celda (letras o números) y que colocase los datos en diagonal.

Intuyo que se trata de algo para generar claves o correspondencias, pero bueno ... yo me he limitado a enviar el código según sus especificaciones.

Imaginad estos datos:

EXTRAER DATOS DE UNA CELDA Y COLOCARLOS EN DIAGONAL

y ahora tenemos que colocar cada letra o número de la palabra en diagonal, ¿cómo lo hacemos?, pues con esta macro:

Sub PASAR_A_DIAGONAL()
'Declaramos variables
Dim i As Long, j As Long
Dim fin As Long, n As Long
'Desactivamos actualización de pantalla
Application.ScreenUpdating = False
With Sheets("Hoja1")
'Eliminamos datos anteriores
If .Range("B2").Value <> vbNullString Then
.Range("B2", ActiveCell.SpecialCells(xlLastCell)).Select
Selection.ClearContents
End If
'Iniciamos loop que recorra todas las celdas
fin = Application.CountA(.Range("A:A"))
For i = 2 To fin
miCelda = .Cells(i, 1)
n = Application.CountA(.Range("B:B")) + 2
'Iniciamos loop que recorra toda la palabra
'y colocamos números o letras en diagonal
For j = 1 To Len(miCelda) Step 1
Letra = Mid(miCelda, j, 1)
.Cells(n, j + 1) = Letra
.Cells(n, j + 1).HorizontalAlignment = xlRight
n = n + 1
Next j
n = 0
Next i
.Range("A1").Select
Application.ScreenUpdating = True
End With
End Sub

Como podéis observar, básicamente utilizamos dos loop para localizar y extraer los datos. Luego solo tenemos que utilizar las variables creadas para indicar el lugar (horizontal y vertical) en que se debemos mostrar la información.

El resultado de aplicar la macro es este:

EXTRAER DATOS DE UNA CELDA Y COLOCARLOS EN DIAGONAL1

Efectivamente, los datos se han ordenado en diagonal, tanto las letras como los números. Sin duda una petición curiosa : )

Y esto ha sido todo por hoy, espero que os resulte interesante.

Descarga el archivo de ejemplo pulsando en: EXTRAER DATOS DE UNA CELDA Y COLOCARLOS EN DIAGONAL

 

 

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Comparte este post

2 comentario en “EXTRAER DATOS DE UNA CELDA Y COLOCARLOS EN DIAGONAL

  1. Podrias pasar esos datos a diagonal. Por decirlo asi un una serie de valores ejemplo 100 200 350 400 estan ubicados en una columna, esos valores los puedes poner en forma diagonal. La finalidad es hacer graficas a 3D sin hacerlo tan engorroso con muchos datos

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies