OVH Cloud OVH Cloud

Importation dans excel

1 réponse
Avatar
Nadyajah
Bonjour,

J'ai enregistré la macro permettant d'importer un fichier excel dans un
autre en passant par : Données - Données externes - Importer des données.
Cepedant, je souhaiterais laisser le choix du fichier à l'utilisateur.
Quelle information dois-je modifier dans ma macro?
Cordialement.

Nadyajah

Sub Importation()

With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User
ID=Admin;Data Source=C:\Documents and
Settings\NADIA\Bureau\glem_nc_mai_05.xls" _
, _
";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;Jet OLEDB:Global Bul" _
, _
"k Transactions=1;Jet OLEDB:New Database Password="""";Jet
OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet " _
, _
"OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without
Replica Repair=False;Jet OLEDB:SFP=False" _
), Destination:=Range("A2"))
.CommandType = xlCmdTable
.CommandText = Array("glem_nc_mai_05$")
.Name = "glem_nc_mai_05"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = False
.SourceDataFile = _
"C:\Documents and Settings\NADIA\Bureau\glem_nc_mai_05.xls"
.Refresh BackgroundQuery:=False
End With
End Sub

1 réponse

Avatar
JB
Bonjour,


http://cjoint.com/?ctimroBn4J

Sub ImportExcel()
' Macro enregistrée le 19/02/2006 par CEGOS-FRANCE
nomFichier = [A2] ' le nom du fichier Excel est en A2
Range("F1").CurrentRegion.ClearContents
With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User
ID­min;Data Source=C:mesdocexcel_macro_nouveau401exemples" &
nomFichier & ";M" _
, _
"ode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet
OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet
OLEDB:Database P" _
, _
"assword="""";Jet OLEDB:Engine Type5;Jet OLEDB:Database
Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global
Bulk " _
, _
"Transactions=1;Jet OLEDB:New Database Password="""";Jet
OLEDB:Create System Databaseúlse;Jet OLEDB:Encrypt Databaseúlse;Jet
OL" _
, _
"EDB:Don't Copy Locale on Compactúlse;Jet OLEDB:Compact
Without Replica Repairúlse;Jet OLEDB:SFPúlse" _
), Destination:=Range("F1"))
.CommandType = xlCmdTable
.CommandText = Array("MaBD")
.Name = "MaBDExcel"
.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 = "C:mesdocexcel_macro_nouveau401exemples"
& nomFichier
.Refresh BackgroundQuery:úlse
End With
End Sub

Pour récupérer les noms des fichiers Excel en colonne C:

Private Sub Workbook_Open()
ChDir ActiveWorkbook.Path
nf = Dir("Mabd*.xls")
i = 2
Do While nf <> ""
Cells(i, 3) = nf
i = i + 1
nf = Dir
Loop
End Sub

Pour un menu déroulant en A2:

Données/Validation/Liste: ÞCALER($C$2;;;NBVAL($C:$C)-1)


Cordialement JB