Importer et Mise à jour d'access par fichier Excel
Maland_1969
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir
J'ai encore ce problème peux tu m'aider
j'ai ce code dans un module:
Option Explicit
' ---
' CONSTANTES
' ---
Public Const SOURCE_PATH = "C:\Users\HP\Desktop\"
' CHEMIN DES FICHIERS SOURCES
' ---
'
Public Function SourcePath()
If InStr(1, SOURCE_PATH, ":", vbTextCompare) > 0 Then
SourcePath = SOURCE_PATH
Else
SourcePath = CurrentProject.Path & "\" & SOURCE_PATH
End If
End Function
Et aussi ce code dans un module standard grace à ton aide et cela fonctionne bien
Sub UpdateExcel()
Dim tu As TableUpdater
Dim FichierImp As String
Dim ChemExcelImp As String
Dim CheminDossier As String
' Pour les tests, on vide la table avant d'importer
' les données externes
CurrentDb.Execute "DELETE * FROM [tbl_Productions]"
' Initialisation d'un TableUpdater
CheminDossier = "C:\Users\HP\Desktop"
FichierImp = CheminDossier + "\"
Set tu = New TableUpdater
With tu
' Fichier à importer (chemin, type, version)
.Source = FichierImp & "Productions.xlsx"
.Range = "Productions!"
.SourceType = Excel
.ExcelVersion = acSpreadsheetTypeExcel12
' Informations sur les données
.Headers = True
.Target = "tbl_Productions"
.TempTable = "tbl_Productions TEMP"
' Importation
.Import
End With
Maintenant je voudrais passer par un FileDialog pour donner le choix à mes collègues de leur fichier à importer donc j'ai mis en place un formulaire pour cela
le code:
Private Sub cmdChemDossier_Click()
'---
'SELECTION D'UN DOSSIER
'---
Dim fd As Office.FileDialog
'Créer un objet FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
'Titre de la boîte
fd.Title = "AMIIS PRO-VI: Sélectionnez un Chemin..."
'Texte du bouton
fd.ButtonName = "Sélectionner"
'Type de vue au départ
fd.InitialView = msoFileDialogViewLargeIcons
'Afficher la boîte et traiter le résultat
If fd.Show() Then
Me.ChemExcelImp = fd.SelectedItems(1)
MsgBox "Vous avez sélectionné le chemin :" & vbCrLf & fd.SelectedItems(1), vbInformation, "AMIIS PRO-VI"
End If
Set fd = Nothing
End Sub
Mon problème est que je n'arrive pas a mettre en place les corrections necessaries dans les codes (les modules) pour permettre de récupérer le choix fait dans FileDialog comme ceci:
.source = (le chemin du fichier choisit par l'utilisateur)
dans mon cas s'est C:\Users\HP\Desktop\Production.xlsx
Aide moi s'il te plait
Merci
J'ai encore ce problème peux tu m'aider
j'ai ce code dans un module:
Option Explicit
' ---
' CONSTANTES
' ---
Public Const SOURCE_PATH = "C:\Users\HP\Desktop\"
' CHEMIN DES FICHIERS SOURCES
' ---
'
Public Function SourcePath()
If InStr(1, SOURCE_PATH, ":", vbTextCompare) > 0 Then
SourcePath = SOURCE_PATH
Else
SourcePath = CurrentProject.Path & "\" & SOURCE_PATH
End If
End Function
Et aussi ce code dans un module standard grace à ton aide et cela fonctionne bien
Sub UpdateExcel()
Dim tu As TableUpdater
Dim FichierImp As String
Dim ChemExcelImp As String
Dim CheminDossier As String
' Pour les tests, on vide la table avant d'importer
' les données externes
CurrentDb.Execute "DELETE * FROM [tbl_Productions]"
' Initialisation d'un TableUpdater
CheminDossier = "C:\Users\HP\Desktop"
FichierImp = CheminDossier + "\"
Set tu = New TableUpdater
With tu
' Fichier à importer (chemin, type, version)
.Source = FichierImp & "Productions.xlsx"
.Range = "Productions!"
.SourceType = Excel
.ExcelVersion = acSpreadsheetTypeExcel12
' Informations sur les données
.Headers = True
.Target = "tbl_Productions"
.TempTable = "tbl_Productions TEMP"
' Importation
.Import
End With
Maintenant je voudrais passer par un FileDialog pour donner le choix à mes collègues de leur fichier à importer donc j'ai mis en place un formulaire pour cela
le code:
Private Sub cmdChemDossier_Click()
'---
'SELECTION D'UN DOSSIER
'---
Dim fd As Office.FileDialog
'Créer un objet FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
'Titre de la boîte
fd.Title = "AMIIS PRO-VI: Sélectionnez un Chemin..."
'Texte du bouton
fd.ButtonName = "Sélectionner"
'Type de vue au départ
fd.InitialView = msoFileDialogViewLargeIcons
'Afficher la boîte et traiter le résultat
If fd.Show() Then
Me.ChemExcelImp = fd.SelectedItems(1)
MsgBox "Vous avez sélectionné le chemin :" & vbCrLf & fd.SelectedItems(1), vbInformation, "AMIIS PRO-VI"
End If
Set fd = Nothing
End Sub
Mon problème est que je n'arrive pas a mettre en place les corrections necessaries dans les codes (les modules) pour permettre de récupérer le choix fait dans FileDialog comme ceci:
.source = (le chemin du fichier choisit par l'utilisateur)
dans mon cas s'est C:\Users\HP\Desktop\Production.xlsx
Aide moi s'il te plait
Merci
A voir également:
- Importer et Mise à jour d'access par fichier Excel
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Fichier bin - Guide
- Mise en forme conditionnelle excel - Guide
- Fichier epub - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, peux-tu utiliser les balises de code quand tu partages du code?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
une façon de faire serait d'utiliser une variable publique globale pour mémoriser le nom du fichier. ce n'est sans doute pas le plus propre, mais cela devrait fonctionner.
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
une façon de faire serait d'utiliser une variable publique globale pour mémoriser le nom du fichier. ce n'est sans doute pas le plus propre, mais cela devrait fonctionner.