Macros para importar otros libros excel de igual formato

Hola expertos, necesito ayuda para crear una macros que me de la posibilidad de buscar un archivo para importarlo... Todos los archivos a importar poseen el mismo formato por lo que no hay problema con eso. La idea es que los datos importados se vayan agregando al final de la lista.

Muchas Gracias

1 respuesta

Respuesta
1

Sigue las Instrucciones para ejecutar macro
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Para ejecutarla presiona F5

Sub Macro1()
'Importar archivo de excel
'Por.dam
Dim vrtSelectedItem As Variant
carpeta = "C:\Documents and Settings\"
hoja = "Hoja1$"
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "                     Seleccione un archivo"
        .Filters.Clear
        .Filters.Add "archivos xls", "*.xls*"
        .Filters.Add "All Files", "*.*"
        .FilterIndex = 1
        .AllowMultiSelect = False
        .InitialFileName = carpeta
    If .Show Then
        For Each vrtSelectedItem In .SelectedItems
            archivo = vrtSelectedItem
        Next
    End If
    End With
    With ActiveSheet.QueryTables.Add(Connection:=Array( _
        "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & archivo & "" _
        , _
        ";Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";" _
        , _
        "Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Je" _
        , _
        "t OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt D" _
        , _
        "atabase=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
        ), Destination:=Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1))
        .CommandType = xlCmdTable
        .CommandText = Array(hoja)
        '.Name = "aa_1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .SourceDataFile = archivo
        .Refresh BackgroundQuery:=False
    End With
End Sub

En esta parte de la macro

carpeta = "C:\Documents and Settings\"
hoja = "Hoja1$"

Tienes que indicar la carpeta inicial y el nombre de la hoja que vas a importar

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas