Iùmportation fichier excel en access

Fermé
marion013 - 15 févr. 2008 à 10:59
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 - 15 févr. 2008 à 22:29
bonjour,

je n'arrive pas à importer mon fichier excel en access
en réalité, il commence à partir de la cellule B8 (l'entête ne me sert pas) et suivant les infos demandées, il est de taille variable.
par exemple il peut aller de B8 à Z99 ou de B8 à z110111.......
il y a 26 colonnes.
de plus, je voudrais qu'il me garde que les lignes pour lesquelles la colonne "v" vaut ".0"
coment puis je faire?
voici la programmation que g mise mais elle ne marche pas du tout!!
je suis novice et surtout completement perdue!!
HELP! HELP!



Function Import_base_macs2()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim astrColonnes(1 To 26) As String
Dim intColonne As Variant, intligne As Variant


Set db = OpenDatabase("D:\Capelle M\catalogue 2009\PrixSpares2008 version2.mdb")
Set rst = db.OpenRecordset("base macs2")

'se placer sur la feuille concernée, en A1 JE SOUHAITERAI EN B8
ThisWorkbook.worksheets(strFeuille).select

'lire les 26 intitulés de colonnes qui sont aussi les 26 noms de champs dans access. les stocker dans un tableau.
For intColonne = 1 To 26
astrColonnes(intColonne) = cells(1, intColonne).Value
Next intColonne

'se placer en ligne 2 pour commencer la lacture des enreg.
intligne = 2
intColonne = 1

'boucler jusqu'à que la cellule active soit vide
'elle se deplave verticalement dans la feuille de calcul
While Not IsEmpty(cells(intligne, 1).Value)
'lire 20 valeurs et les inscrire dans la table
rst.AddNew
rst![Division] = activesheet.Name
For intColonne = 1 To 26

If rst("v") Like ".0" Then
rst.Update
End If

Next intColonne

'passer à la ligne suivante
rst.Update
intligne = intligne + 1
Wend


'On ferme
rst.Close
Set rst = Nothing
Set db = Nothing

' Set db = CurrentDb()
' DoCmd.OpenTable "base macs"
' Set db = Nothing



End Function
A voir également:

3 réponses

yoann_tux Messages postés 437 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 24 juillet 2008 95
15 févr. 2008 à 12:16
regarde du coté des parseurs, tu devrais trouver ton bonheur....
Mais excel... a toujorus été... comment dire... fermé ? propriétaire ?
0
je te remercie pour ton conseil mais a vrai dire l'informatique et moi ca fait deux.
je ne comprend pas très bien ce que tu me racontes!
peux tu être plus explicite?
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
15 févr. 2008 à 22:29
As tu essayé de faire simple?

Je te propose un truc, mais si ça se trouve je suis à côté de la plaque.

Si "ton" fichier est de taille variable, déjà ça veut dire qu'il y a plusieurs fichiers, ou je me trompe?

Dans ce fichier, tu nommes la plage de cellules à importer, y compris les entêtes.
Dans Access, onglet Tables, tu choisis "Nouveau-Attacher la table".
Tu choisis type de fichier Excel, ton fichier, tu coches l'option "Importer la plage" et tu sélectionnes le nom que tu as donné plus haut, enfin bref tu suis l'assistant, il est simple.

Et voilà! Acces lit les données de ton fichier Excel.

Alors, les nuances:
Est ce que tu veux importer de nouvelles données tous les mois par exemple, en les ajoutant dans une table existante d'Access? A ce moment là, tu crées une requête Ajout qui lit dans la table attachée.
Si tu repars de zéro à chaque fois, tu crées une requête Création de table, qui effacera les anciennes données.

Mais l'avantage de procéder comme ça, c'est qu'il suffiit que ton fichier Exel porte le même nom tous les mois et bien sûr qu'il comporte une plage de cellules avec le bon nom et qu'il soit au même emplacement, et tu n'auras plus d'autre manip à faire.

J'espère m'être fait bien comprendre. N'hésite pas à redemander si je n'ai pas été claire!
0