IMPORTATION AUTOMATISEE FICHIER EXCEL ET CONSERVER NOM FICHIER
5 réponses
Nadyajah
Bonsoir,
J'ai une table "CONTACT" avec "nom";"prénom";"adresse"...
Tout les jours je vais importer des informations dans cette table en
provenance de fichiers excel tous sous le même format (mêmes en-têtes) mais
avec un nom différent à chaque fois
("STE_A_JANVIER_2005","STE_B_FEVRIER_2005" ...)
Je voudrais automatiser l'importation de ses fichiers excel en créant une
macro liée à un bouton ou une fenêtre apparaitra pour aller sélectionner le
fichier que je souhaite importer.
Ensuite, je veux conserver dans la table le nom du fichier importé.
Par exemple, je vais importer 10 contacts et dans le champ "nom fichier lié"
que j'ai créé dans ma table "CONTACT" soit inséré "STE_A_JANVIER_2005".
En effet, par la suite j'ai besoin de créér des actions sur les contacts de
chaque fichier et je pense que de conserver le nom du fichier est la
meilleure méthode pour pouvoir agir dessus.
A moins que vous ayez de meilleures idées ....
Cordialement.
Nadya
P.S : Je ne suis pas une experte en access alors pitié essayer de me
détailler au mieux la procédure ....
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jessy Sempere [MVP]
Bonjour
Déjà, pour récupérer le nom d'un fichier sélectionné, tu peux utiliser le code qui se trouve ici et le mettre dans un module standard de ta base : http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFile
Ensuite, pour l'ensemble de l'importation, le mieux serait de le faire entièrement dans le code, en fait, le mieux serait de récupérer le chemin que te retournera la fonction OpenFile dans une variable et ensuite, tu pourras mettre à jour ta table avec une requête de mise à jour en mettant pour chaque ligne vide, la valeur de la variable...
En gros, simplement ça donnerais une fonction dans ce genre :
Function toto()
Dim strFile As String
strFile = openfile("c:") If strFile = "" Then Exit Function
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Nadyajah" a écrit dans le message de news:
Bonsoir,
J'ai une table "CONTACT" avec "nom";"prénom";"adresse"... Tout les jours je vais importer des informations dans cette table en provenance de fichiers excel tous sous le même format (mêmes en-têtes) mais
avec un nom différent à chaque fois ("STE_A_JANVIER_2005","STE_B_FEVRIER_2005" ...) Je voudrais automatiser l'importation de ses fichiers excel en créant une macro liée à un bouton ou une fenêtre apparaitra pour aller sélectionner le
fichier que je souhaite importer. Ensuite, je veux conserver dans la table le nom du fichier importé. Par exemple, je vais importer 10 contacts et dans le champ "nom fichier lié"
que j'ai créé dans ma table "CONTACT" soit inséré "STE_A_JANVIER_2005".
En effet, par la suite j'ai besoin de créér des actions sur les contacts de
chaque fichier et je pense que de conserver le nom du fichier est la meilleure méthode pour pouvoir agir dessus. A moins que vous ayez de meilleures idées ....
Cordialement.
Nadya
P.S : Je ne suis pas une experte en access alors pitié essayer de me détailler au mieux la procédure ....
Bonjour
Déjà, pour récupérer le nom d'un fichier sélectionné, tu peux utiliser
le code qui se trouve ici et le mettre dans un module standard de ta
base :
http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFile
Ensuite, pour l'ensemble de l'importation, le mieux serait de le faire
entièrement dans le code, en fait, le mieux serait de récupérer le
chemin que te retournera la fonction OpenFile dans une variable
et ensuite, tu pourras mettre à jour ta table avec une requête de mise
à jour en mettant pour chaque ligne vide, la valeur de la variable...
En gros, simplement ça donnerais une fonction dans ce genre :
Function toto()
Dim strFile As String
strFile = openfile("c:")
If strFile = "" Then Exit Function
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Nadyajah" <Nadyajah@discussions.microsoft.com> a écrit dans le message de
news:BE6108B5-8885-4FE7-980D-E368BEDBCE67@microsoft.com...
Bonsoir,
J'ai une table "CONTACT" avec "nom";"prénom";"adresse"...
Tout les jours je vais importer des informations dans cette table en
provenance de fichiers excel tous sous le même format (mêmes en-têtes)
mais
avec un nom différent à chaque fois
("STE_A_JANVIER_2005","STE_B_FEVRIER_2005" ...)
Je voudrais automatiser l'importation de ses fichiers excel en créant une
macro liée à un bouton ou une fenêtre apparaitra pour aller sélectionner
le
fichier que je souhaite importer.
Ensuite, je veux conserver dans la table le nom du fichier importé.
Par exemple, je vais importer 10 contacts et dans le champ "nom fichier
lié"
que j'ai créé dans ma table "CONTACT" soit inséré "STE_A_JANVIER_2005".
En effet, par la suite j'ai besoin de créér des actions sur les contacts
de
chaque fichier et je pense que de conserver le nom du fichier est la
meilleure méthode pour pouvoir agir dessus.
A moins que vous ayez de meilleures idées ....
Cordialement.
Nadya
P.S : Je ne suis pas une experte en access alors pitié essayer de me
détailler au mieux la procédure ....
Déjà, pour récupérer le nom d'un fichier sélectionné, tu peux utiliser le code qui se trouve ici et le mettre dans un module standard de ta base : http://access.jessy.free.fr/index.html?Menu=7&Page=OpenFile
Ensuite, pour l'ensemble de l'importation, le mieux serait de le faire entièrement dans le code, en fait, le mieux serait de récupérer le chemin que te retournera la fonction OpenFile dans une variable et ensuite, tu pourras mettre à jour ta table avec une requête de mise à jour en mettant pour chaque ligne vide, la valeur de la variable...
En gros, simplement ça donnerais une fonction dans ce genre :
Function toto()
Dim strFile As String
strFile = openfile("c:") If strFile = "" Then Exit Function
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Nadyajah" a écrit dans le message de news:
Bonsoir,
J'ai une table "CONTACT" avec "nom";"prénom";"adresse"... Tout les jours je vais importer des informations dans cette table en provenance de fichiers excel tous sous le même format (mêmes en-têtes) mais
avec un nom différent à chaque fois ("STE_A_JANVIER_2005","STE_B_FEVRIER_2005" ...) Je voudrais automatiser l'importation de ses fichiers excel en créant une macro liée à un bouton ou une fenêtre apparaitra pour aller sélectionner le
fichier que je souhaite importer. Ensuite, je veux conserver dans la table le nom du fichier importé. Par exemple, je vais importer 10 contacts et dans le champ "nom fichier lié"
que j'ai créé dans ma table "CONTACT" soit inséré "STE_A_JANVIER_2005".
En effet, par la suite j'ai besoin de créér des actions sur les contacts de
chaque fichier et je pense que de conserver le nom du fichier est la meilleure méthode pour pouvoir agir dessus. A moins que vous ayez de meilleures idées ....
Cordialement.
Nadya
P.S : Je ne suis pas une experte en access alors pitié essayer de me détailler au mieux la procédure ....
Nadyajah
Bonsoir,
J'ai tapé cette fonction mais il me dit : "erreur d'éxecution 3144 : erreur de synthaxe dans l'instruction UPDATE. Pour information, j'ai access 2002.
Merci.
Nadya
Bonsoir,
J'ai tapé cette fonction mais il me dit :
"erreur d'éxecution 3144 : erreur de synthaxe dans l'instruction UPDATE.
Pour information, j'ai access 2002.
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Nadyajah" a écrit dans le message de news:
Bonsoir,
J'ai tapé cette fonction mais il me dit : "erreur d'éxecution 3144 : erreur de synthaxe dans l'instruction UPDATE. Pour information, j'ai access 2002.
Merci.
Nadya
Bonjour
En fait je me suis tromper dans la synthaxe du critère...
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Nadyajah" <Nadyajah@discussions.microsoft.com> a écrit dans le message de
news:065658D6-F71E-428E-B111-BB861E8403B0@microsoft.com...
Bonsoir,
J'ai tapé cette fonction mais il me dit :
"erreur d'éxecution 3144 : erreur de synthaxe dans l'instruction UPDATE.
Pour information, j'ai access 2002.
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Nadyajah" a écrit dans le message de news:
Bonsoir,
J'ai tapé cette fonction mais il me dit : "erreur d'éxecution 3144 : erreur de synthaxe dans l'instruction UPDATE. Pour information, j'ai access 2002.
Merci.
Nadya
Nadyajah
Bonjour,
Même message d'erreur........
Pour information, Nom table = titi nom fichier lié = tata.xls
P.S : Pour info, voici le code que j'ai intégré pour importer un fichier. D'ailleurs si tu sais comment faire pour qu'il me pose la question lorsque j'importe le fichier afin que je la personne confirme le bon import. Par exemple : "Souhaitez-vous réellement importer le fichier tata.xls?" avec bouton "ok" et "annuler"
Function fOpenFiles() As String
Dim Dialogue As FileDialog Dim Fichier As Variant Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue .AllowMultiSelect = True .ButtonName = "Ouvrir" .InitialFileName = "*.xls" .Filters.Clear .Filters.Add "Tableur Microsoft Excel", "*.xls" .Filters.Add "Base de données Microsoft Access", "*.mdb" .Filters.Add "Document Microsoft Word", "*.doc" .InitialView = msoFileDialogViewList .Title = "Veuillez sélectionner les fichiers ..." If .Show Then For Each Fichier In .SelectedItems fOpenFiles = fOpenFiles & Fichier & ";" Cancel = True Next End If End With
If Len(fOpenFiles) > 0 Then fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1) End If
Set Dialogue = Nothing
End Function
Bonjour,
Même message d'erreur........
Pour information,
Nom table = titi
nom fichier lié = tata.xls
P.S : Pour info, voici le code que j'ai intégré pour importer un fichier.
D'ailleurs si tu sais comment faire pour qu'il me pose la question lorsque
j'importe le fichier afin que je la personne confirme le bon import.
Par exemple : "Souhaitez-vous réellement importer le fichier tata.xls?" avec
bouton "ok" et "annuler"
Function fOpenFiles() As String
Dim Dialogue As FileDialog
Dim Fichier As Variant
Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue
.AllowMultiSelect = True
.ButtonName = "Ouvrir"
.InitialFileName = "*.xls"
.Filters.Clear
.Filters.Add "Tableur Microsoft Excel", "*.xls"
.Filters.Add "Base de données Microsoft Access", "*.mdb"
.Filters.Add "Document Microsoft Word", "*.doc"
.InitialView = msoFileDialogViewList
.Title = "Veuillez sélectionner les fichiers ..."
If .Show Then
For Each Fichier In .SelectedItems
fOpenFiles = fOpenFiles & Fichier & ";"
Cancel = True
Next
End If
End With
If Len(fOpenFiles) > 0 Then
fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1)
End If
P.S : Pour info, voici le code que j'ai intégré pour importer un fichier. D'ailleurs si tu sais comment faire pour qu'il me pose la question lorsque j'importe le fichier afin que je la personne confirme le bon import. Par exemple : "Souhaitez-vous réellement importer le fichier tata.xls?" avec bouton "ok" et "annuler"
Function fOpenFiles() As String
Dim Dialogue As FileDialog Dim Fichier As Variant Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue .AllowMultiSelect = True .ButtonName = "Ouvrir" .InitialFileName = "*.xls" .Filters.Clear .Filters.Add "Tableur Microsoft Excel", "*.xls" .Filters.Add "Base de données Microsoft Access", "*.mdb" .Filters.Add "Document Microsoft Word", "*.doc" .InitialView = msoFileDialogViewList .Title = "Veuillez sélectionner les fichiers ..." If .Show Then For Each Fichier In .SelectedItems fOpenFiles = fOpenFiles & Fichier & ";" Cancel = True Next End If End With
If Len(fOpenFiles) > 0 Then fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1) End If
Set Dialogue = Nothing
End Function
Jessy Sempere [MVP]
Bonjour
C'est bizarre, normalement ça devrait fonctionner... Bon peut-être que tes noms de fichiers peuvent contenir des apostrophes, dans le doute remplaces par :
Sinon, la fonction que tu mets sert à sélectionner ton fichier, elle ne fait aucune importation, je suppose que tu as une autre fonction pour l'importation où tu fais appel à fOpenFiles.
En théorie, elle devrait ressembler à ça (avec ton message de confirmation d'importation) :
Function ImportTATA()
dim strFile as string
strfile = fopenfiles if strfile ="" or isnull(strfile) then exit function if msgbox("Voulez-vous vraiment...",vbOkCancel) = vbCancel then exit function
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Nadyajah" a écrit dans le message de news:
Bonjour,
Même message d'erreur........
Pour information, Nom table = titi nom fichier lié = tata.xls
P.S : Pour info, voici le code que j'ai intégré pour importer un fichier. D'ailleurs si tu sais comment faire pour qu'il me pose la question lorsque j'importe le fichier afin que je la personne confirme le bon import. Par exemple : "Souhaitez-vous réellement importer le fichier tata.xls?" avec
bouton "ok" et "annuler"
Function fOpenFiles() As String
Dim Dialogue As FileDialog Dim Fichier As Variant Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue .AllowMultiSelect = True .ButtonName = "Ouvrir" .InitialFileName = "*.xls" .Filters.Clear .Filters.Add "Tableur Microsoft Excel", "*.xls" .Filters.Add "Base de données Microsoft Access", "*.mdb" .Filters.Add "Document Microsoft Word", "*.doc" .InitialView = msoFileDialogViewList .Title = "Veuillez sélectionner les fichiers ..." If .Show Then For Each Fichier In .SelectedItems fOpenFiles = fOpenFiles & Fichier & ";" Cancel = True Next End If End With
If Len(fOpenFiles) > 0 Then fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1) End If
Set Dialogue = Nothing
End Function
Bonjour
C'est bizarre, normalement ça devrait fonctionner...
Bon peut-être que tes noms de fichiers peuvent contenir des apostrophes,
dans le doute remplaces par :
Sinon, la fonction que tu mets sert à sélectionner ton fichier, elle ne fait
aucune
importation, je suppose que tu as une autre fonction pour l'importation où
tu fais
appel à fOpenFiles.
En théorie, elle devrait ressembler à ça (avec ton message de confirmation
d'importation) :
Function ImportTATA()
dim strFile as string
strfile = fopenfiles
if strfile ="" or isnull(strfile) then exit function
if msgbox("Voulez-vous vraiment...",vbOkCancel) = vbCancel then exit
function
end function
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Nadyajah" <Nadyajah@discussions.microsoft.com> a écrit dans le message de
news:642F868D-C816-4C32-83FD-4D80939CE9C3@microsoft.com...
Bonjour,
Même message d'erreur........
Pour information,
Nom table = titi
nom fichier lié = tata.xls
P.S : Pour info, voici le code que j'ai intégré pour importer un fichier.
D'ailleurs si tu sais comment faire pour qu'il me pose la question lorsque
j'importe le fichier afin que je la personne confirme le bon import.
Par exemple : "Souhaitez-vous réellement importer le fichier tata.xls?"
avec
bouton "ok" et "annuler"
Function fOpenFiles() As String
Dim Dialogue As FileDialog
Dim Fichier As Variant
Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue
.AllowMultiSelect = True
.ButtonName = "Ouvrir"
.InitialFileName = "*.xls"
.Filters.Clear
.Filters.Add "Tableur Microsoft Excel", "*.xls"
.Filters.Add "Base de données Microsoft Access", "*.mdb"
.Filters.Add "Document Microsoft Word", "*.doc"
.InitialView = msoFileDialogViewList
.Title = "Veuillez sélectionner les fichiers ..."
If .Show Then
For Each Fichier In .SelectedItems
fOpenFiles = fOpenFiles & Fichier & ";"
Cancel = True
Next
End If
End With
If Len(fOpenFiles) > 0 Then
fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1)
End If
C'est bizarre, normalement ça devrait fonctionner... Bon peut-être que tes noms de fichiers peuvent contenir des apostrophes, dans le doute remplaces par :
Sinon, la fonction que tu mets sert à sélectionner ton fichier, elle ne fait aucune importation, je suppose que tu as une autre fonction pour l'importation où tu fais appel à fOpenFiles.
En théorie, elle devrait ressembler à ça (avec ton message de confirmation d'importation) :
Function ImportTATA()
dim strFile as string
strfile = fopenfiles if strfile ="" or isnull(strfile) then exit function if msgbox("Voulez-vous vraiment...",vbOkCancel) = vbCancel then exit function
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "Nadyajah" a écrit dans le message de news:
Bonjour,
Même message d'erreur........
Pour information, Nom table = titi nom fichier lié = tata.xls
P.S : Pour info, voici le code que j'ai intégré pour importer un fichier. D'ailleurs si tu sais comment faire pour qu'il me pose la question lorsque j'importe le fichier afin que je la personne confirme le bon import. Par exemple : "Souhaitez-vous réellement importer le fichier tata.xls?" avec
bouton "ok" et "annuler"
Function fOpenFiles() As String
Dim Dialogue As FileDialog Dim Fichier As Variant Set Dialogue = FileDialog(msoFileDialogOpen)
With Dialogue .AllowMultiSelect = True .ButtonName = "Ouvrir" .InitialFileName = "*.xls" .Filters.Clear .Filters.Add "Tableur Microsoft Excel", "*.xls" .Filters.Add "Base de données Microsoft Access", "*.mdb" .Filters.Add "Document Microsoft Word", "*.doc" .InitialView = msoFileDialogViewList .Title = "Veuillez sélectionner les fichiers ..." If .Show Then For Each Fichier In .SelectedItems fOpenFiles = fOpenFiles & Fichier & ";" Cancel = True Next End If End With
If Len(fOpenFiles) > 0 Then fOpenFiles = Left(fOpenFiles, Len(fOpenFiles) - 1) End If