Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2012, 21h05   #1
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 1
Points : 1
Par défaut Modification de fichier Excel sous Access puis faire son importation

Bonjour à tous

Je cherche à faire l'importation d'un fichier Excel sous Access.
Mon problème est que la premier ligne du fichier Excel qui me sert de référence sous Access contiens dans certaine colonne des points (.) et que Access ne gère pas les caractères spéciaux dans la base de donnée. Si sous Excel je recherche les points dans la premier ligne et les remplaces par rien et enregistre puis importe mon fichier cela marche. Mais je souhait automatisé cette manip sous Access.
Donc le but et d’ouvrir mon fichier Excel, supprimé les points par rien et enregistre puis seulement faire l’importation de ce même fichier.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Option Compare Database
Private Sub BTNimporter_Click()
On Error GoTo Err_importer_Click
Dim Fichier As String
Dim xls As Excel.Application
 
' recupere le nom du fichier excel
            Fichier = OuvrirUnFichier(Application.hWndAccessApp, "Parcourir", 1, "Fichier excel", "xls")
If Fichier = "" Then GoTo exit_import Else
 
 MsgBox Fichier
            DoCmd.SetWarnings False
            DoCmd.TransferSpreadsheet transfertype:=acImport, SpreadsheetType:=5, _
            tablename:="importation", FileName:=Fichier, _
            Hasfieldnames:=True
            DoCmd.SetWarnings True
            'DoCmd.RunCommand acCmdRefresh
            'SpreadsheerType:=5
'redessiner le form:
'DoCmd.Close acForm, "import", acSaveYes
'DoCmd.OpenForm "import", acNormal
'DoCmd.Maximize
Exit Sub
Err_importer_Click:
'MsgBox Err.Description
MsgBox "Veuillez verifier le nom des champs du fichier source"
Exit Sub
exit_import:
MsgBox "pas de fichier selectionner"
 
End Sub
Moi j'ai sa mais je n'arrive pas à ajouter l'ouverture du fichier, à le modifier, l'enregistre puis enfin à faire l'importation de ce même fichier ( ou d'un même en l'enregistrent sur un autre non et importer ce nouveau fichier).


Merci d'avance de votre aide.
Sangoku62000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 00h34   #2
Membre éclairé
 
Avatar de tee_grandbois
 
Inscription : novembre 2004
Messages : 216
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 216
Points : 321
Points : 321
Bonsoir,
pour remplacer les points dans les cellules de ta feuille avant d'importer les données tu lances le code suivant (qui n'est qu'un exemple):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim objApp As Object
Dim objBook As Object
Dim objSheet As Object
Dim strFic As String
strFic = "C:\importation.xls"
 
    Set objApp = CreateObject("Excel.Application")
    Set objBook = objApp.workbooks.Open(strFic)
    Set objSheet = objBook.worksheets("Feuil1")
    objSheet.Activate
     With objSheet
        objApp.Range("A1:Z1").Select
        objApp.Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    End With
 
objBook.Save
objApp.Quit
 
Set objSheet = Nothing
Set objBook = Nothing
Set objApp = Nothing
tu peux l'adapter pour remplacer d'autres caractères réservés.
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 09h20   #3
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 1
Points : 1
Merci pour ta réponse. Sa marche

Comment lui dire de prendre la première Feuille. J’explique le fichier Excel et généré tout les matins est la premier feuille porte comme nom une date. La si je mes " Feuil1" ou "sheet1" sa ne marche pas il faut que je lui donne le bon nom de la feuille.
(La feuille comporte la date du jour de création mais n'est pas importé forcement le même jour).
Je dois toujours importer que la première feuille peut importe son nom ou date en faite

Set objSheet = objBook.Worksheets("????").

Merci d'avance
Sangoku62000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 14h12   #4
Membre éclairé
 
Avatar de tee_grandbois
 
Inscription : novembre 2004
Messages : 216
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 216
Points : 321
Points : 321
Salut,
tout simplement:
Code :
Set objSheet = objBook.worksheets(1)
Bonne journée
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 15h22   #5
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 1
Points : 1
Merci
Sangoku62000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2012, 19h37   #6
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 1
Points : 1
Par défaut modif d'un fichier excel et faire son importation

' Remplacement des points par rien
Dim objApp As Object
Dim objBook As Object
Dim objSheet As Object
Dim strFic As String

' recupere le nom du fichier excel
strFic = OuvrirUnFichier(Application.hWndAccessApp, "Parcourir", 1, "Fichier excel", "xls")
If strFic = "" Then GoTo Fin

'MsgBox strFic

' Ouverture de excel
Set objApp = CreateObject("Excel.Application")
Set objBook = objApp.workbooks.Open(strFic)
Set objSheet = objBook.worksheets(1)
'objApp.Visible = True

objSheet.Activate
objApp.Range("A1:BZ1").select
objApp.Selection.Replace What:=".", Replacement:=""
objApp.Range("BB1").select
objApp.Selection.Replace What:="", Replacement:="Commentaires Compl"

objBook.Save

'importation du fichier dans la table "importation"

DoCmd.SetWarnings False
DoCmd.TransferSpreadsheet transfertype:=acImport, SpreadsheetType:=5, _
tablename:="importation", FileName:=strFic, _
Hasfieldnames:=True
DoCmd.SetWarnings True
DoCmd.RunCommand acCmdRefresh

'SpreadsheerType:=5
'redessiner le form:

objBook.Close
DoCmd.Close acForm, "importation", acSaveYes
DoCmd.OpenForm "importation", acNormal
DoCmd.Maximize
Sangoku62000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h00.


 
 
 
 
Partenaires

Hébergement Web