A voir également:
- Formulaire excel fichier attaché+macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Fichier rar - Guide
- Liste déroulante excel - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
1 réponse
Utilisateur anonyme
Modifié par ti_cocotehier_france le 22/10/2010 à 23:24
Modifié par ti_cocotehier_france le 22/10/2010 à 23:24
Bonsoir,
J'utilise un petit systéme (une fonction a coller dans un module que j'appelle dans une macro via un executercode) qui me permet de créer une table dans access avec tous les fichiers excel présents dans un répertoire donné.
En fait il "aspire" tant qu'il trouve un fichier excel dans un répertoire et de la même manière toutes les informations contenues dans un onglet (ou plusieurs) pour les "compiler" dans une seule table comme un ajout.
Sur cette table j'ai des requêtes qui me permettent de traiter les informations ainsi obtenues. Et j'ai ajouté une purge (requete de suppression sur la table crée)pour ne pas recopier deux fois la même chose ainsi qu'un archivage des fichiers du sous réperoire (.cmd qui dit copier de x vers y tout ce qui est excel *.xls et efface ensuite)
Bien sur adapte ce qui suit notamment à la plage d'info de ton formulaire. N'oublie pas qu'il est toujours possible dans une requéte ensuite de "filtrer " les info utiles..
Public Function Chargement()
' Charger la référence Microsoft Scripting Runtime
' Charger Microsoft Excel x.x Object Library
Dim oWbk As Workbook
Dim MyFile As String
Dim MyName As String
Dim MyPath As String
Dim i As Long, chemin As String
Dim derligne As Long
Dim mazone As String, sonnom As String
MyFile = Dir("D:\ton_repertoire\sous_repertoire\*.xls", vbNormal)
MyPath = "D:\ton_repertoire\sous_repertoire"
Do While MyFile <> "" 'FAIT LA BOUCLE TANT QUE FICHIER PRESENT SUR LE REPERTOIRE MYpath : exemple ton_repertoire\sous_repertoire
Set oWbk = Workbooks.Open(MyPath & "\" & MyFile) 'OUVRE LE FICHIER Myfile, SUPER ON COMMENCE A RIRE
sonnom = ActiveWorkbook.Name
' Sélection de la feuille choisie ici : celle de ton forulaire par exemple, génial
Workbooks(sonnom).Sheets("ton_formulaire").Select
derligne = ActiveSheet.Range("A65534").End(xlUp).Row
Workbooks(sonnom).Close savechanges:=False
'ICI sélection de la zone à transférer (plage d'info du formulaie) debut par exemple en A2 jusqu'a la dernière ligne de la colonne dc
mazone = "ton_formulaire!A2:dc" & derligne
' ici definition du nom de la table matableaccess qui reçoit la donnée de la feuille des fichiers du sous répertoire
DoCmd.TransferSpreadsheet acImport, , "DG", MyPath & "\" & MyFile, False, mazone
MyFile = Dir
Loop 'FIN DE LA BOUCLE : QUELLE GROSSE MARADE, J'ADORE, ENCORE
End Function
J'utilise un petit systéme (une fonction a coller dans un module que j'appelle dans une macro via un executercode) qui me permet de créer une table dans access avec tous les fichiers excel présents dans un répertoire donné.
En fait il "aspire" tant qu'il trouve un fichier excel dans un répertoire et de la même manière toutes les informations contenues dans un onglet (ou plusieurs) pour les "compiler" dans une seule table comme un ajout.
Sur cette table j'ai des requêtes qui me permettent de traiter les informations ainsi obtenues. Et j'ai ajouté une purge (requete de suppression sur la table crée)pour ne pas recopier deux fois la même chose ainsi qu'un archivage des fichiers du sous réperoire (.cmd qui dit copier de x vers y tout ce qui est excel *.xls et efface ensuite)
Bien sur adapte ce qui suit notamment à la plage d'info de ton formulaire. N'oublie pas qu'il est toujours possible dans une requéte ensuite de "filtrer " les info utiles..
Public Function Chargement()
' Charger la référence Microsoft Scripting Runtime
' Charger Microsoft Excel x.x Object Library
Dim oWbk As Workbook
Dim MyFile As String
Dim MyName As String
Dim MyPath As String
Dim i As Long, chemin As String
Dim derligne As Long
Dim mazone As String, sonnom As String
MyFile = Dir("D:\ton_repertoire\sous_repertoire\*.xls", vbNormal)
MyPath = "D:\ton_repertoire\sous_repertoire"
Do While MyFile <> "" 'FAIT LA BOUCLE TANT QUE FICHIER PRESENT SUR LE REPERTOIRE MYpath : exemple ton_repertoire\sous_repertoire
Set oWbk = Workbooks.Open(MyPath & "\" & MyFile) 'OUVRE LE FICHIER Myfile, SUPER ON COMMENCE A RIRE
sonnom = ActiveWorkbook.Name
' Sélection de la feuille choisie ici : celle de ton forulaire par exemple, génial
Workbooks(sonnom).Sheets("ton_formulaire").Select
derligne = ActiveSheet.Range("A65534").End(xlUp).Row
Workbooks(sonnom).Close savechanges:=False
'ICI sélection de la zone à transférer (plage d'info du formulaie) debut par exemple en A2 jusqu'a la dernière ligne de la colonne dc
mazone = "ton_formulaire!A2:dc" & derligne
' ici definition du nom de la table matableaccess qui reçoit la donnée de la feuille des fichiers du sous répertoire
DoCmd.TransferSpreadsheet acImport, , "DG", MyPath & "\" & MyFile, False, mazone
MyFile = Dir
Loop 'FIN DE LA BOUCLE : QUELLE GROSSE MARADE, J'ADORE, ENCORE
End Function
22 oct. 2010 à 23:22
copy D:\ton_repertoire\sous_repertoire\*.xls D:\ton_repertoire_pour_archiver
del D:\ton_repertoire\sous_repertoire\*.xls
Ceci copier dans un fichier texte via notepad et ernregistré avec .cmd au lieu de .txt par exemple
comme ceci archivage_formulaire.cmd
Dans ta base access tu peux ajouter aprés l'exécution de la fonction l'execution de ce .cmd....archiver c'est nettoyer !