** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - rellenar rango con nombres de hojas seleccionados
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradorellenar rango con nombres de hojas seleccionados

 Responder Responder
Autor
Mensaje
acilu55 Ver desplegable
Asiduo
Asiduo


Unido: 27/Septiembre/2011
Estado: Sin conexión
Puntos: 223
Enlace directo a este mensaje Tema: rellenar rango con nombres de hojas seleccionados
    Enviado: 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
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3878
Enlace directo a este mensaje 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
Arriba
acilu55 Ver desplegable
Asiduo
Asiduo


Unido: 27/Septiembre/2011
Estado: Sin conexión
Puntos: 223
Enlace directo a este mensaje 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
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3878
Enlace directo a este mensaje Enviado: 19/Octubre/2023 a las 08:32
¿Y te funciona así?

Un saludo.

Luis
El Búho es un pajarraco
Arriba
acilu55 Ver desplegable
Asiduo
Asiduo


Unido: 27/Septiembre/2011
Estado: Sin conexión
Puntos: 223
Enlace directo a este mensaje Enviado: 21/Febrero/2024 a las 19:17
si y perdon por no haber pedido que cerrarais el hilo, 
Gracias a todos de antemano
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable