ebolo | |
| 2007-05-31 08:33 - Respuestas: 11 - Tema nº: 2450463
Hola de nuevo, es normal que se te quede dentro del bucle porque le vuelves a dar valor a la función Dir$, debes de ponerlo como yo te lo he puesto.
Lo que hace el bucle es añadir al combobox todos los archivos de excel (*.xls) que existen en la ruta C:\curso1\co-01-01\, porque por lo que entiendo
...necesito crear una macro la cual mande a llamar archivos de excel...
tu quieres que puedan abrir cualquier archivo de excel que exista en la ruta c:\curso1\co-01-01\ ó ¿sólo existe un archivo de excel que es c:/curso1/co-01-01/informe1.xls? si fuera éste último caso no sería necesario rellenar ningún combobox.
Saludos.
| |
|
|
minimem | |
|
Re: Como crear una macro Continuación (Solucionado) - 2007-06-01 07:44 - Respuesta 7
te vas a directo al cielo, muchisisisisimas gracias, porque en estos momentos eres la única persona que sé que sabe de que le hablo.
voy a probar y si hay más archivos en excel con la ruta c:/curso1/co-01-01/informe1.xls c:/curso1/co-01-02/informe2 c:/curso1/co-01-03/informe3 etc, por darte un ejemplo son 30 subdirectorios con sus informes e imagino que tengo que repetir 30 veces la rutina para llamarlos al combobox que me enviaste.
espero haber sido lo más claro posible.
de nuevo muchas gracias.
| |
|
|
minimem | |
|
Re: Como crear una macro Continuación (Solucionado) - 2007-06-01 09:05 - Respuesta 8
amigo ya funciona la macro con un archivo, como le hago para que muestre en el combobox la lista de los 30 archivos más.
te muestro el código para que me indiques en donde colocar las instrucciones:
___
Private Sub CommandButton1_Click()
Workbooks.Close
End Sub
Private Sub CommandButton2_Click()
Workbooks.Open "C:\Cursos\CO-01-01\Informe_de_Evaluaciones.xls"
End Sub
Private Sub Worksheet_Activate()
Dim nm As String
On Error Resume Next
Me.ComboBox1.Clear
nm = Dir$("C:\Cursos\CO-01-01\Informe_de_Evaluaciones.xls")
If Err = 0 Then
Do While Len(nm)
ComboBox1.AddItem nm
nm = Dir$
Loop
End If
Err = 0
End Sub
___
gracias y saludos
| |
|
|
ebolo | |
|
Re: Como crear una macro Continuación (Solucionado) - 2007-06-01 09:14 - Respuesta 9
si lo que tienes es un archivo por ruta, podrías hacer algo así:
Private Sub Worksheet_Activate() 'Cuando se activa la hoja de excel
Dim nm As String, q As Integer
Dim ruta, rutappal As String
On Error Resume Next
Me.ComboBox1.Clear
ruta = "C:\curso1\co-01-0"
For q = 1 To 30
rutappal = ruta & q & "\informe" & q & ".xls"
nm = Dir$(rutappal)
If Err = 0 Then
'Va a continuar mientras encuentre ficheros
Do While Len(nm)
'Se añade al combo
ComboBox1.AddItem nm
'Vamos al siguiente fichero
nm = Dir$
Loop
End If
Next q
Err = 0
End Sub
ó hacer algo más sencillo:
Private Sub Worksheet_Activate() 'Cuando se activa la hoja de excel
Dim q As Integer
Dim ruta, rutappal As String
On Error Resume Next
Me.ComboBox1.Clear
ruta = "C:\curso1\co-01-0"
For q = 1 To 30
rutappal = ruta & q & "\informe" & q & ".xls"
ComboBox1.AddItem rutappal
Next q
End Sub
saludos.
| |
|
|
ebolo | |
|
Re: Como crear una macro Continuación (Solucionado) - 2007-06-01 09:23 - Respuesta 10
casi usaría mejor la 2ª opción y el Open lo pondría en el evento
Private Sub ComboBox1_Click()
Workbooks.Open Me.Combobox1.Text
End Sub
en vez de ponerlo
Private Sub CommandButton2_Click()
....
End Sub
Saludos.
| |
|
|
|