Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Como convertir una tabla en rango de datos?

1,162 views
Skip to first unread message

ye...@yeyda.com

unread,
Feb 21, 2009, 7:30:18 PM2/21/09
to
Un saludo. Utilizo Excel 2007

Tengo una tabla y quiero convertirla a rango de datos, pero quiero hacerlo
mediante codigo. He intentado hacerlo mediante la grabacion de macros, pero
no sale nada.

Gracias

Héctor Miguel

unread,
Feb 21, 2009, 7:45:08 PM2/21/09
to
hola (...), ?????

> ... Utilizo Excel 2007


> Tengo una tabla y quiero convertirla a rango de datos, pero quiero hacerlo mediante codigo.
> He intentado hacerlo mediante la grabacion de macros, pero no sale nada.

asumiendo que tu codigo ya tiene seleccionada alguna celda "dentro" de la tabla (o lista)...

With Application
.DisplayAlerts = False
.CommandBars.ExecuteMso "TableConvertToRange"
.DisplayAlerts = True
End With

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.


ye...@yeyda.com

unread,
Feb 21, 2009, 7:49:54 PM2/21/09
to
Gracias, Hector. Esto ya la habia utilizado. Pero vamos a imaginar que en la
hoja1 tenga 10 tablas de forma consecutiva, aunque pudieran ser lo mismo 5 o
25, o x. Ahora bien, como hago para automatizar este proceso, es decir, que
cada vez que ejecute el codigo, me ponga en una celda de cada tabla y se
ejecute dicho codigo?


"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje de
noticias news:OK0sQbIl...@TK2MSFTNGP06.phx.gbl...

Héctor Miguel

unread,
Feb 21, 2009, 8:29:58 PM2/21/09
to
hola (...), ?????

> ... Esto ya la habia utilizado.

=> siempre es bueno "conocer" lo que ya has utilizado y hasta donde te ha funcionado -???-

> ... vamos a imaginar que... tenga 10 tablas... aunque pudieran ser lo mismo 5 o 25, o x.
> ... como... automatizar este proceso, es decir, que cada vez que ejecute el codigo, me ponga en una celda de cada tabla y se ejecute ...

prueba con esta variante...

Sub Quitar_de_Lista()
Dim n As Byte
With ActiveSheet
For n = 1 To .ListObjects.Count
.ListObjects(1).Unlist
Next
End With
End Sub

o... si prefieres hacerlo seleccionando alguna celda de cada objeto...

Sub Quitar_de_Lista_2()
Dim n As Byte
With ActiveSheet
For n = 1 To .ListObjects.Count
.ListObjects(1).Range.Cells(1).Select


With Application
.DisplayAlerts = False
.CommandBars.ExecuteMso "TableConvertToRange"
.DisplayAlerts = True
End With

Next
End With
End Sub

saludos,
hector.


ye...@yeyda.com

unread,
Feb 22, 2009, 2:27:58 PM2/22/09
to
Muchas Gracias, con la primera parte me vale, eres, bueno, lo que te digo
siempre, genial. Ahora solo me falta estudiarlo un poco para comprender como
lo has hecho.
He utilizado la primera que me has pasado.


"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje de

noticias news:%23iQaU0I...@TK2MSFTNGP04.phx.gbl...

bonif...@gmail.com

unread,
Aug 23, 2018, 2:25:19 PM8/23/18
to
Se puede al revés si, pero NO SE COMO convertir cualquier rango en Tabla, es decir, que un rango de una hoja activa sea del A1:D5 y si el rango cambia por ejemplo a A1:D10 que tambien la convierta en tabla.

La instrucción:

ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$D$5"), , xlYes).Name = "Table_Uno"

Al parecer solo indica que los datos que estén dentro del rango seleccionado serán covertidos a Tabla, esto da un problema si se pretende usar un archivo de excel como plantilla para después pegar datos que usen más filas o columnas.
0 new messages