abrir varios libros excel

23/08/2005 - 01:56 por Alberto G | Informe spam
Hola a todos
Se que este es el mejor sitio para aclar dudas..y solucionar problemas...
con excel.
1.- Como puedo con una Macro desde excel; abrir todos los libros que estan
en una carpeta llamada "Lista"
2.- supongamos que tenemos todos los libros abierto... los datos estan una
celda llamada "articulos" en cada libro Ej. LIBRO 1:
A2="AZUCAR",A3="HARINA", A4= "SAL", A5="PAN",A6="AGUA" LIBRO 2: A2="AZUCAR",
A3="AGUA" LIBRO 3: A2="SAL"
Entonces la solucion deberia decir:
1.- Cuales son los articulos que estan en todos los libros
2.- Los debe colocra en una lista sin repetirlos..
para este caso debera LISTAR LOS ARTICULOS es decir:
b2=AZUCAR
b3=HARINA
b4=SAL
b5=PAN
b6=AGUA
Alberto Gonzalez
 

Leer las respuestas

#1 Héctor Miguel
23/08/2005 - 09:06 | Informe spam
hola, Alberto !

... con una Macro... abrir todos los libros que estan en una carpeta llamada "Lista"
... los datos estan... en cada libro... Ej.
LIBRO 1: A2="AZUCAR",A3="HARINA", A4= "SAL", A5="PAN",A6="AGUA"
LIBRO 2: A2="AZUCAR", A3="AGUA"
LIBRO 3: A2="SAL"
... los articulos que estan en todos los libros... en una lista sin repetirlos...



-> el siguiente ejemplo 'supone' que [todos] los libros contienen los articulos en el rango A2:An de la hoja (1)
-> 'abre' cada libro en la ruta especificada... 'toma' los datos... y cierra cada libro
-> al finalizar... 'devuelve' un listado con los elementos 'unicos' que se encontraron de todos los libros abiertos ;)

si cualquier duda [o en alguna parte mis supuestos estan equivocados]... comentas?
saludos,
hector.

[importante] -> deberas establecer una referencia a la biblioteca de objetos 'microsoft scripting runtime'
en el proyecto de macros-vba [menu] herramientas / referencias... -> la encuentras por orden alfbetico
== copia las liguientes lineas en un modulo de codigo 'normal' ==Sub ListarArticulosUnicos()
Application.ScreenUpdating = False
Dim BuscarDonde As String, Sig As Integer, Celda As Range, Articulo
Dim Articulos As New Scripting.Dictionary
' en la siguiente linea ESPECIFICA el directorio donde quieres 'buscarlos' '
BuscarDonde = "c:uta y\sub-carpeta donde estan\los archivos\" ' NO olvides al final el ->\<- '
With Application.FileSearch
.NewSearch
.LookIn = BuscarDonde
.SearchSubFolders = False
.FileType = msoFileTypeExcelWorkbooks
If .Execute() > 0 Then
For Sig = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(Sig)
Worksheets(1).Activate
For Each Celda In Range(Range("a2"), Range("a65536").End(xlUp))
Articulo = Application.Trim(UCase(Celda))
If Not Articulos.Exists(Articulo) Then Articulos.Add Articulo, Articulo
Next
ActiveWorkbook.Close False
Next
Sig = 1
For Each Articulo In Articulos.Items
Sig = Sig + 1
Range("b" & Sig) = Articulo
Next
Else: MsgBox "No existen documentos en " & BuscarDonde
End If
End With
End Sub

Preguntas similares