cs_Cassidy
Messages postés
39
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
11 mai 2005
6 févr. 2002 à 10:29
Ouais, bon comme promis, je te tiens au courant...
Personnellement je cherchais à importer des données d'une feuille excel2000 vers access2000 en creant un code vba sous access, mais je pense que le code suivant sera quand même susceptible de t'aider :
Public ClasseurXLS As Object
Private Sub Cmd_Importation_Click()
Dim PathFic As String
Dim NomFic As String
Dim NomFicXLS As String
Dim NomTable As String
Dim iNom_emp As String
Dim iCommentaires As String
Dim iDateJ As Date
Dim iNum_affaire As Integer
Dim iNum_phase As Integer
Dim i As Integer
Dim iNb_heures As Integer
Dim sql As String
Set dbs = CurrentDb
Set ClasseurXLS = CreateObject("Excel.application")
'Initialisation Nom du fichier à importer
If (Text1.Value <> "") Then
NomFic = Text1
NomFic = NomFic & ".xls"
Else
réponse = MsgBox("Nom du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
'Initialisation Emplacement du fichier à importer
If (Text2.Value <> "") Then
PathFic = Text2
Else
réponse = MsgBox("Emplacement du fichier à importer manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
'Initialisation Nom de la table d'importation
If (Text3.Value <> "") Then
NomTable = Text3
Else
réponse = MsgBox("Nom de la table d'importation manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
'Ouverture du classeur d'importation
ClasseurXLS.Workbooks.Open PathFic & NomFic
ClasseurXLS.Visible = True
'Creation d'une table d'importation
sql = "create table " & NomTable & "(Nom_Emp string, DateJ date, Num_affaire integer, Num_phase integer, Nb_heures integer, Commentaire string)"
dbs.Execute sql
i = 2
Do While ClasseurXLS.cells(i, 1) <> ""
'Recuperation des données lignes par lignes
iNom_emp = ClasseurXLS.cells(i, 1)
iDateJ = ClasseurXLS.cells(i, 2)
iNum_affaire = ClasseurXLS.cells(i, 3)
iNum_phase = ClasseurXLS.cells(i, 4)
iNb_heures = ClasseurXLS.cells(i, 5)
iCommentaires = ClasseurXLS.cells(i, 6)
'Insertion des données dans la table
sql = "insert into " & NomTable & "(Nom_Emp, DateJ, Num_affaire, Num_phase, Nb_heures, Commentaire) values (' " & iNom_emp & " ' , ' " & iDateJ & " ' , ' " & iNum_affaire & " ' , ' " & iNum_phase & " ' , ' " & iNb_heures & " ' , ' " & iCommentaires & " ')"
dbs.Execute sql
i = i + 1
Loop
'Fermeture du classeur d'importation
ClasseurXLS.Workbooks.Close
MsgBox ("Importation des données effectuée")
End Sub
comme tu peu le remarquer j'ouvre excel, je balaye les cellules qui m'interessent (cad les 6 premieres colonnes) lignes par ligne
je stocke les données dans des variable et je fais des Insert (Dans une table crée par ma proc)
Pour toi sachant que tu veux une appli sous vb6.0
il va falloir que tu ouvre un fichier access et que tu jongle entre Excel et access
Voilà, j'espère que ça pourrat t'aider, bonne chance
A + Cass