|
Responder
|
| Autor | |
acilu55
Asiduo
Unido: 27/Septiembre/2011 Estado: Sin conexión Puntos: 223 |
Tema: rellenar rango con nombres de hojas seleccionadosEnviado: 17/Octubre/2023 a las 11:53 |
|
Buenos Dias a todos:
estoy intentando que 28 de las 31 tablas de un libro se reflejen en el rango a22: a22+nºdetablas-3) y que las tres que no deben aparecer son aquellas cuyo nombre empieza por z, mi intento es ordenarlas y presentarlas en un rango con tres celdas menos pero no lo logro, es mas me aparecen algunas duplicadas este es mi código: x = Sheets.Count - 3 For j = 3 To x + 1 Worksheets("zresumen").Range("A" & 19 + j).Value = Worksheets(j).Name Next With ActiveWorkbook.Worksheets(ActiveSheet.Name).Sort .SortFields.Clear .SortFields.Add Key:=Range("A22:A" & 22 + x), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Range("A22:A" & 19 + x) '.Header = xlYes .MatchCase = False '.Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Worksheets("zresumen").Range("A22:" & "A" & 22 + x).Select Selection.Interior.Color = RGB(0, 255, 255) '----------------------------------------- y no me aparecen todos y los que aparecen no estan ordenados ¿Alguien me puede ayudar? |
|
|
Gracias a todos de antemano
|
|
![]() |
|
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3878 |
Enviado: 17/Octubre/2023 a las 12:30 |
|
Mira a ver:
Solo cambia el nombre Hoja 1 por el que tu tengas. Si quieres que salga en ptra posición cambia m=1 por la fila que quieras (en tu caso parece que 22). Dim n As Long Dim m As Long m = 1 For n = 1 To Sheets.Count If Left(Worksheets(n).Name, 1) <> "z" Then Worksheets("hoja1").Range("A" & m).Value = Worksheets(n).Name m = m + 1 End If Next n Para ordenarlas, pon en marcha la grabadora de macros y haz un sort, luego el mismo código que te genere te vale. Luis
Editado por lbauluz - 17/Octubre/2023 a las 12:30 |
|
|
El Búho es un pajarraco
|
|
![]() |
|
acilu55
Asiduo
Unido: 27/Septiembre/2011 Estado: Sin conexión Puntos: 223 |
Enviado: 17/Octubre/2023 a las 12:51 |
|
muchas gracias:
El codifgo ha quedado asi,
`primero pongo los nombres de las tablas Dim n As Long Dim m As Long m = 1 For n = 1 To Sheets.Count If Left(Worksheets(n).Name, 1) <> "z" Then Worksheets("hoja1").Range("A" & m).Value = Worksheets(n).Name m = m + 1 End If Next n `segundo las ordeno alfabeticamenta ActiveWorkbook.Worksheets("zresumen").Sort.SortFields.Clear ActiveWorkbook.Worksheets("zresumen").Sort.SortFields.Add Key:=Range("A22"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortTextAsNumbers With ActiveWorkbook.Worksheets("zresumen").Sort .SetRange Range("A22:A50") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ActiveWindow.SmallScroll Down:=3 |
|
|
Gracias a todos de antemano
|
|
![]() |
|
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3878 |
Enviado: 19/Octubre/2023 a las 08:32 |
|
¿Y te funciona así?
Un saludo. Luis
|
|
|
El Búho es un pajarraco
|
|
![]() |
|
acilu55
Asiduo
Unido: 27/Septiembre/2011 Estado: Sin conexión Puntos: 223 |
Enviado: 21/Febrero/2024 a las 19:17 |
|
si y perdon por no haber pedido que cerrarais el hilo,
|
|
|
Gracias a todos de antemano
|
|
![]() |
|
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |