Crear nuevo archivo excel solo con una de las sheet si tiene un valor determinado

-Tengo en una carpeta un excel con varias sheet.

-En la primera sheet tengo la celda A5 en la que el usuario mete un valor numerico.

-Si por ejemplo la celda A5 meto el valor 7 que busque en las celdas A5 de todas las hojas de ese excel

Y la que contenga un 7 me genere un nuevo fichero de excel dentro de la carpeta en la que esta el excel inicial solo con las hojas que haya coincidido que en la celda A5 tengan un 7.

2

2 respuestas

Respuesta
4

La macro que adjunto se coloca en el Editor, en objeto HOJA donde vayas a ingresar el valor en A5.

Dejo comentarios 'ajustar en aquellas instrucciones que quizás debas modificar, como el rango donde se coloca la lista de hojas y ruta y nombre donde se guardará el libro creado.

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
Dim miArray() As String
'controla si se ingresó un valor en A5
If Target.Address(False, False) <> "A5" Then Exit Sub
'se arma una lista de hojas encontradas en col H   'ajustar
i = 1
For Each sh In Sheets
    'no se incluye la hoja activa
    If sh.Name <> "Hoja1" Then
        If sh.[A5] = Target.Value Then
            Range("H" & i) = sh.Name
            i = i + 1
        End If
    End If
Next sh
'defino la cantidad de hojas que alimentarán la matriz
y = i - 2     'se resta 2 porque la matriz empieza en 0
ReDim miArray(y)
For i = 0 To y
    miArray(i) = Range("H" & i + 1)
Next i
'se arma nuevo libro solo con hojas elegidas
ActiveWorkbook.Sheets(Array(miArray())).Copy
'controla posible error en el guardado
On Error Resume Next
'se crea un libro con las hojas copiadas y lo llamé RESUMEN.... ajustar
Set wb = ActiveWorkbook
With wb
    .SaveAs ThisWorkbook.Path & "\" & RESUMEN & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    'cerramos el nuevo libro
    .Close
End With
End Sub

¡Gracias! Salvo 2 ajustes me va perfecto mil gracias. Esta aplicación va a servir para un proyecto muy importante.Gracias de nuevo.

Hola:

Tengo problemas a la hora de manejar los ficheros en foramto .csv

Hay alguna forma de que solo ese excel me lo abra siempre con formato de numero texto?

Saludos 

gracias de nuevo

Inicia una nueva consulta en el tablón y aclara un poco más lo que necesitas... no lo comprendí ;)

Sdos!

Respuesta

He intentado ejecutar esa macro desde Ejecutar, pero al hacerlo me pide crear una macro, le doy un nombre y me pone esto debajo, pero no me lo ejecuta.

Sub macro2()

End Sub

Perdona la pregunta, he votado tu respuesta, pero soy nuevo en temas de Visual Basic.

¿Cómo puedo probarlo?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas