Crear un archivo nuevo en una hoja si tiene un valor determinado
Para Elsa Matilde.
Partiendo de esta consulta:
"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."
He intentado ejecutar esa macro desde Ejecutar en la ficha Programador, 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, soy nuevo en temas de Visual Basic.
¿Cómo puedo ejecutar ésto?
Gracias
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
1 Respuesta
Respuesta de Elsa Matilde
1