mise en forme d'un fichier xls à partir de vb dans acces
mise en forme d'un fichier xls à partir de vb dans acces - VB/VBA/VBS - Programmation
MarshPosté le 27-09-2005 à 09:03:42
Bonjour, j'ai réuni dans une procédure VB Access plusieurs instructions qui me permettent de mettre à jour un fichier excel afin de l'importer par la suite dans ma table access. Jusque là tout semble fonctionner correctement, grâce à de bonnes âmes qui m'ont considérablement guidé.
Aujourd'hui, j'ai besoin d'améliorer ma procédure de mise à jour du fichier excel avant de lancer mon importation....... Je dois donc insérer deux nouvelles instructions dans ma procédure qui :
1- - Ajoute une colonne dans chaque onglet de mon fichier excel - Que cette colonne soit baptisée "CATEGORIE" - Que chaque cellule de cette colonne soit renseignée avec le nom de l'onglet auquel elle appartient
2- - Faire un balayage de toutes les cellules dans l'onglet et supprimer les espaces qui peuvent s'y trouver.
Pour ce qui est du dimensionnement, je colle ici le début de ma procédure afin d'y adapter les nouvelles instructions.
Private Sub TRAITEMENT_FICHIER_SOURCE_Click() Dim MonFichier As String, i As Integer Dim xlApp As Object Dim MonWk As Object Dim MaFeuil As Object Dim Plage(50) As String, nbf As Integer
'supprime les enregistrements déjà présents de la table NOM CodeDb.Execute "delete * from NOM"
MonFichier = OuvrirUnFichier(hWndAccessApp, "Ouvrir", 1, "Microsoft Excel", "xls", CurrentProject.Path) 'ouvre le fichier If MonFichier = "" Then Exit Sub 'sortie si pas de sélection de fichier
'création de l'objet Excel Set MonExcel = CreateObject("excel.application" ) MonExcel.Visible = False 'force à invisible
'ouvre le fichier Set MonWk = MonExcel.Workbooks.Open(MonFichier) nbf = MonWk.Sheets.Count 'sauve le nombre de feuilles présentes For i = 1 To Worksheets.Count Worksheets(i).Activate
' suppression des filtres Selection.AutoFilter
' libération des volets ActiveWindow.FreezePanes = False
' suppression des 3 premières lignes Rows("1:3" ).Select Selection.Delete Shift:=xlUp
Voilà l'exposé je vous remercie en tout cas si vous avez pris la peine de lire mon post jusqu'à la fin !!
Marsh Posté le 27-09-2005 à 09:03:42
Bonjour,
j'ai réuni dans une procédure VB Access plusieurs instructions qui me permettent de mettre à jour un fichier excel afin de l'importer par la suite dans ma table access.
Jusque là tout semble fonctionner correctement, grâce à de bonnes âmes qui m'ont considérablement guidé.
Aujourd'hui, j'ai besoin d'améliorer ma procédure de mise à jour du fichier excel avant de lancer mon importation.......
Je dois donc insérer deux nouvelles instructions dans ma procédure qui :
1-
- Ajoute une colonne dans chaque onglet de mon fichier excel
- Que cette colonne soit baptisée "CATEGORIE"
- Que chaque cellule de cette colonne soit renseignée avec le nom de l'onglet auquel elle appartient
2-
- Faire un balayage de toutes les cellules dans l'onglet et supprimer les espaces qui peuvent s'y trouver.
Pour ce qui est du dimensionnement, je colle ici le début de ma procédure afin d'y adapter les nouvelles instructions.
Private Sub TRAITEMENT_FICHIER_SOURCE_Click()
Dim MonFichier As String, i As Integer
Dim xlApp As Object
Dim MonWk As Object
Dim MaFeuil As Object
Dim Plage(50) As String, nbf As Integer
'supprime les enregistrements déjà présents de la table NOM CodeDb.Execute "delete * from NOM"
MonFichier = OuvrirUnFichier(hWndAccessApp, "Ouvrir", 1, "Microsoft Excel", "xls", CurrentProject.Path)
'ouvre le fichier
If MonFichier = "" Then Exit Sub
'sortie si pas de sélection de fichier
'création de l'objet Excel
Set MonExcel = CreateObject("excel.application" )
MonExcel.Visible = False
'force à invisible
'ouvre le fichier Set MonWk = MonExcel.Workbooks.Open(MonFichier)
nbf = MonWk.Sheets.Count
'sauve le nombre de feuilles présentes
For i = 1 To Worksheets.Count
Worksheets(i).Activate
' suppression des filtres
Selection.AutoFilter
' libération des volets
ActiveWindow.FreezePanes = False
' suppression des 3 premières lignes Rows("1:3" ).Select
Selection.Delete Shift:=xlUp
Voilà l'exposé je vous remercie en tout cas si vous avez pris la peine de lire mon post jusqu'à la fin !!