Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

PB Importation de données

c0rentin59

XLDnaute Nouveau
Bonsoir à tous,

J'ai créer une Macro (en mode enregisteur) pour importer des données.
Celle-ci consiste à importer des données d'un fichier A dans un autre fichier B.

Or le nom du fichier A varie.
il se nomme : "m6 10102010 avant.xls", si nous somme le 10 octobre 2010.
La partie de code doit donc comporter une variable et l'utilisateur
indique la date grâce à un "inputbox"

La variable prend donc la valeur de la date. ex "10102010"

Ensuite il faut insérer la variable dans le code de l'importation des données.

Voilà ce que ça donne mais le résultat > erreur

voici le code:

Public Sub importation()

'Déclaration des variables

Dim v As Integer

' 1ère étape: On demande la date du fichier pour lequel on veut importer les données.

v = InputBox("Entrer la date sous la forme 'jjmmaaaa'", "Date")


' 2ème étape: On copie les éléments du fichier "m6 avant xx/xx/xxxx" (fichier A) dans l'onglet "av" du fichier B.

With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Users\Desktop\test\m6 " & v & " avant.xls;Mode=" _
, _
"Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDBatabase Passw" _
, _
"ord="""";Jet OLEDB:Engine Type=35;Jet OLEDBatabase Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Tran" _
, _
"sactions=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("A1"))
.CommandType = xlCmdTable
.CommandText = Array("Feuil1$")
.Name = "m6 " & v & " avant"
.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:\Users\Desktop\test\m6 " & v & " avant.xls"
.Refresh BackgroundQuery:=False
End With

end sub

Le code n'est pas très clean mais mais compétence en VB ne me permettent pas de le créer sans l'enregisteur de macro.

Si qq à une piste...
Ca m'intéresse

A toute!
 

JNP

XLDnaute Barbatruc
Re : PB Importation de données

Bonsoir Corentin59 ,
De base, v est déclaré comme Integer qui est limité à 32 767, alors que la date donnée en exemple, 10102010 fait 10 102 010... Essaie déjà de déclarer v en Long (limité à 2 147 483 647).
Bon courage
 

Discussions similaires

Réponses
4
Affichages
2 K
Réponses
1
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…