Excel - ayuda con inputbox, relacionada con metodo open

 
Vista:

ayuda con inputbox, relacionada con metodo open

Publicado por daniel (4 intervenciones) el 16/03/2022 00:11:21
Sub MetodoAbrirLibro()

Dim z As String

With ActiveSheet
z = InputBox("Ingrese direccion de busqueda", "BUSQUEDA DE ARCHIVO")

Workbooks(z).Open

End With

End Sub

lo que busco con esta macro es poder abrir un archivo o libro utilizando el inputbox, pero me arroja un erros en tiempo de ejecucion '9', el depurador muestra el error en la linea "Workbooks(z).Open"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

ayuda con inputbox, relacionada con metodo open

Publicado por Antoni Masana (2478 intervenciones) el 16/03/2022 14:20:10
Basicaménte lo que tiene que hacer el procedimiento es esto:

1
2
3
4
5
Sub MetodoAbrirLibro()
    Dim z As String
    z = InputBox("Ingrese direccion de busqueda", "BUSQUEDA DE ARCHIVO")
    Workbooks.Open Filename:=z
End Sub

Ahora bien si lo quieres hacer bien, valga la redundancia, has lo así:

1
2
3
4
5
6
7
8
9
Sub MetodoAbrirLibro()
    Dim z As String
    z = InputBox("Ingrese direccion de busqueda", "BUSQUEDA DE ARCHIVO")
    IF Dir(z)  = "" Then
        MsgBox "No existe el fichero: " & z
    Else
        Workbooks.Open Filename:=z
    End If
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda con inputbox, relacionada con metodo open

Publicado por daniel (4 intervenciones) el 16/03/2022 14:57:38
Sub MetodoAbrirLibro()
Dim z As String
z = InputBox("Ingrese direccion de busqueda", "BUSQUEDA DE ARCHIVO")
IF Dir(z) = "" Then
MsgBox "No existe el fichero: " & z
Else
Workbooks.Open Filename:=z
End If
End Sub

Use esta, pero ahroa me arroja error '52', "nombre o numero de archivo incorrecto"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

ayuda con inputbox, relacionada con metodo open

Publicado por Antoni Masana (2478 intervenciones) el 16/03/2022 15:28:01
No se que tipo de archivo quieres abrir pero a mi me funciona perfectamente.
Puede que sea un problema de versión de Excel.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda con inputbox, relacionada con metodo open

Publicado por daniel (4 intervenciones) el 16/03/2022 16:21:36
es un archivo normal de excel, lo que pasa es que trabajo en una empresa en el area contable, yo hago inventarios lo que quiero hacer realmente es una macro que verifique una planilla de ventas, porque el proceso me toma mucho tiempo, y para hacer esto yo habia diseñado otras macros para inventario y quiero adjuntarla con esas, pero me da problema para abrir el archivo.

Sub NUEVO()

Dim INI As Long
Dim FIN As Long
Dim NOM As String
Dim Shape As Excel.Shapes
Dim Nombre As Name


With Sheets("FORMATO")
INI = .Range("INICIAL").Row
FIN = .Range("FINAL").Row
NOM = Format(.Range("j10").Value, "dd mm yyyy")
If Val(NOM) = 0 Then
MsgBox "Debes ingresar fecha Fecha del Inventario Final!", vbCritical, "Información ...DSMsoft"
.Range("j10").Select
Exit Sub
End If
.Copy After:=Sheets("FORMATO")
Sheets("FORMATO (2)").Name = NOM
.Range("J" & INI & ":L" & FIN).Copy
.Range("D" & INI).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
.Range("G" & INI & ":K" & FIN).ClearContents
.Range("J10:L10").Copy
.Range("D10:F10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
.Range("J10:L10").ClearContents
.Range("J10:L10").Select
End With
For Each Shapes In Sheets(NOM).Shapes
Shapes.Delete
Next Shapes

For Each Nombre In Sheets(NOM).Names
Nombre.Delete
Next Nombre

MsgBox "Proceso terminado, se creo con exito copia de inventario del día " & NOM, vbInformation, "Información ...DSMsoft"
End Sub

esta la hice, para copiar y pegar, la finalidad es reiniciar el inventario para un dia nuevo. ahora quiero anexar a esta. la otra y por eso quiero poder abrir desde el libro en que tengo esta macro otro libro en donde pueda aplicar la busqueda de lo que necesito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

ayuda con inputbox, relacionada con metodo open

Publicado por Antoni Masana (2478 intervenciones) el 16/03/2022 17:19:09
En esta macro veo que copias y pegas datos en una hoja, no se exactamente que hace.
Para abrir un archivo, Libro Excel en este caso, y saber que comandos hay que utilizar lo mejor es, aparte de leer manuales o buscar en internet, preguntarselo al Excel que mejor que nadie para saberlo.

Y te preguntaras como se hace esto, pues bien sencillo y que me ha resultado de mucha utilidad, es GRABAR MACRO, realzar la acción, parar la grabación y ver que ha escrito el Excel.

En el caso de abrir un libro me escribe esto:

1
2
3
Sub Macro1()
    Workbooks.Open Filename:="....."
End Sub

Dentro de las comillas está la ruta y el nombre del libro. Otras veces debo recurrir a Google para buscar la solución.

Te pongo un extracto de una macro mía que abre varios libros para actualizarlos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Ejecutar_Macros()
    ...
    For a = 1 To 15
        c_Book = c_Cabe + " - " + Tipo(a)
        c_File = c_Ruta + "\" + c_Book
 
        If Dir(c_File) <> "" Then
            Workbooks.Open Filename:=c_File, Origin:=xlWindows
 
            ' ---&--- Actualizar
 
            If ActiveWorkbook.ReadOnly Then
                Call Mail_Outlook(MAIL_Uso, c_Book)
            Else
                Texto_1.Caption = "Actualizando:"
                ...
            End If

En esta macro abre hasta 15 libros, antes de intentar abrir el libro verifica que exista y después de abrirlo verifica que no lo abierto por otro usuário.
Cuando hice la macro tenia una versión más antigua que la actual, hacia falta el , Origin:=xlWindows y puede que en tu caso si lo añares ya no de error.

1
2
3
4
5
6
7
8
9
Sub MetodoAbrirLibro()
    Dim z As String
    z = InputBox("Ingrese direccion de busqueda", "BUSQUEDA DE ARCHIVO")
    IF Dir(z)  = "" Then
        MsgBox "No existe el fichero: " & z
    Else
        Workbooks.Open Filename:=z, Origin:=xlWindows
    End If
End Sub

Si puedes pasarme unos libros de ejemplo y explicarme que quieres hacer podría ayudarte.

No entiendo que tiene que ver esta macro con la anterior

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Sub NUEVO()
    Dim INI As Long
    Dim FIN As Long
    Dim NOM As String
    Dim Shape As Excel.Shapes
    Dim Nombre As Name
 
    With Sheets("FORMATO")
        INI = .Range("INICIAL").Row
        FIN = .Range("FINAL").Row
        NOM = Format(.Range("j10").Value, "dd mm yyyy")
        If Val(NOM) = 0 Then
            MsgBox "Debes ingresar fecha Fecha del Inventario Final!", vbCritical, "Información ...DSMsoft"
            .Range("j10").Select
            Exit Sub
        End If
        .Copy After:=Sheets("FORMATO")
        Sheets("FORMATO (2)").Name = NOM
        .Range("J" & INI & ":L" & FIN).Copy
        .Range("D" & INI).PasteSpecial _
                          Paste:=xlPasteValues, _
                          Operation:=xlNone, _
                          SkipBlanks:=False, Transpose:=False
        .Range("G" & INI & ":K" & FIN).ClearContents
        .Range("J10:L10").Copy
        .Range("D10:F10").PasteSpecial _
                          Paste:=xlPasteValues, _
                          Operation:=xlNone, _
                          SkipBlanks:=False, _
                          Transpose:=False
 
        .Range("J10:L10").ClearContents
        .Range("J10:L10").Select
    End With
 
    For Each Shapes In Sheets(NOM).Shapes
        Shapes.Delete
    Next Shapes
 
    For Each Nombre In Sheets(NOM).Names
        Nombre.Delete
    Next Nombre
 
    MsgBox "Proceso terminado, se creo con exito copia de inventario del día " & NOM, vbInformation, "Información ...DSMsoft"
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda con inputbox, relacionada con metodo open

Publicado por daniel (4 intervenciones) el 16/03/2022 17:26:16
dejame un numero de whatsapp o otro medio alterno, para poder darte mas informacion sobre lo que busco hacer, y explicarte en que consiste la ultima macro que te envie
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

ayuda con inputbox, relacionada con metodo open

Publicado por Antoni Masana (2478 intervenciones) el 16/03/2022 17:33:00
Yo estoy en españa y no se tal lo ira lo del Whatsapp, mejor te dejo un correo: [email protected]

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar