OVH Cloud OVH Cloud

basculer de Excel vers Access

9 réponses
Avatar
gaston
bonjour !
j'ai un classeur Excel avec plein de donn=E9es et je=20
voudrais le passer sur Access, pour g=E9rer mes donn=E9es plus=20
ais=E9ment. y-a-t-il une manoeuvre sp=E9ciale =E0 =E9x=E9cuter ou=20
bien je dois ressaisir toutes mes donn=E9es ?

9 réponses

Avatar
Pierre CFI [mvp]
ah, je viens juste de te répondre sur excel :o)))
bienvenu ici vas voir les sites sous ma "signure"

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"gaston" a écrit dans le message de news:1083901c43fd2$2bcec630$
bonjour !
j'ai un classeur Excel avec plein de données et je
voudrais le passer sur Access, pour gérer mes données plus
aisément. y-a-t-il une manoeuvre spéciale à éxécuter ou
bien je dois ressaisir toutes mes données ?
Avatar
Pascal Engelmajer
Salut,
à mon avis le mieux est de créer la structure de ta base Access et
l'adaptant. (car il y a des champs qui font systématiquement 255 caractères
dans Excel...)
C'est la façon qui permet de maîtriser la conversion.
Tu peux ensuite importer à partir d'Access en utilisant une requête action.
Ceci ce fait en deux temps...
Dans l'exemple ci-dessous (en Tour Operator), c'est un fichier .txt avec TAB
qui est importé...
Mais le principe est le même avec une feuille Excel
http://www.ilyapa.net/ganesh/to/import/import.htm
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"gaston" a écrit dans le message de
news: 1083901c43fd2$2bcec630$
bonjour !
j'ai un classeur Excel avec plein de données et je
voudrais le passer sur Access, pour gérer mes données plus
aisément. y-a-t-il une manoeuvre spéciale à éxécuter ou
bien je dois ressaisir toutes mes données ?
Avatar
gaston
alors je viens d'essayer d'ouvrir mon classeur avec
Access, et le problème que je rencontre est que j'ai
plusieurs feuilles. Il vaut mieux que je fasse feuille par
feuille ?
-----Message d'origine-----
Salut,
à mon avis le mieux est de créer la structure de ta base
Access et

l'adaptant. (car il y a des champs qui font
systématiquement 255 caractères

dans Excel...)
C'est la façon qui permet de maîtriser la conversion.
Tu peux ensuite importer à partir d'Access en utilisant
une requête action.

Ceci ce fait en deux temps...
Dans l'exemple ci-dessous (en Tour Operator), c'est un
fichier .txt avec TAB

qui est importé...
Mais le principe est le même avec une feuille Excel
http://www.ilyapa.net/ganesh/to/import/import.htm
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"gaston" a écrit
dans le message de

news: 1083901c43fd2$2bcec630$
bonjour !
j'ai un classeur Excel avec plein de données et je
voudrais le passer sur Access, pour gérer mes données plus
aisément. y-a-t-il une manoeuvre spéciale à éxécuter ou
bien je dois ressaisir toutes mes données ?


.



Avatar
Pierre CFI [mvp]
dans fichier/importer des données
oui base par base
tu ferais mieux de nommer tes zones dans excl avant l'import, formater la totalité de chaque colonne

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"gaston" a écrit dans le message de news:1086601c43fda$cbce4590$
alors je viens d'essayer d'ouvrir mon classeur avec
Access, et le problème que je rencontre est que j'ai
plusieurs feuilles. Il vaut mieux que je fasse feuille par
feuille ?
-----Message d'origine-----
Salut,
à mon avis le mieux est de créer la structure de ta base
Access et

l'adaptant. (car il y a des champs qui font
systématiquement 255 caractères

dans Excel...)
C'est la façon qui permet de maîtriser la conversion.
Tu peux ensuite importer à partir d'Access en utilisant
une requête action.

Ceci ce fait en deux temps...
Dans l'exemple ci-dessous (en Tour Operator), c'est un
fichier .txt avec TAB

qui est importé...
Mais le principe est le même avec une feuille Excel
http://www.ilyapa.net/ganesh/to/import/import.htm
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"gaston" a écrit
dans le message de

news: 1083901c43fd2$2bcec630$
bonjour !
j'ai un classeur Excel avec plein de données et je
voudrais le passer sur Access, pour gérer mes données plus
aisément. y-a-t-il une manoeuvre spéciale à éxécuter ou
bien je dois ressaisir toutes mes données ?


.



Avatar
Pascal Engelmajer
Salut,
En supposant que ces feuilles sont des bases de données sans fioritures
(cellules fusionnées par exemple),
j'exporte chaque feuille au format TAB, dans un fichier texte (manuellement
ou en écrivant une petite macro suivant nécessité)
et je procéde comme dans mon exemple
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"gaston" a écrit dans le message de
news: 1086601c43fda$cbce4590$
alors je viens d'essayer d'ouvrir mon classeur avec
Access, et le problème que je rencontre est que j'ai
plusieurs feuilles. Il vaut mieux que je fasse feuille par
feuille ?
-----Message d'origine-----
Salut,
à mon avis le mieux est de créer la structure de ta base
Access et

l'adaptant. (car il y a des champs qui font
systématiquement 255 caractères

dans Excel...)
C'est la façon qui permet de maîtriser la conversion.
Tu peux ensuite importer à partir d'Access en utilisant
une requête action.

Ceci ce fait en deux temps...
Dans l'exemple ci-dessous (en Tour Operator), c'est un
fichier .txt avec TAB

qui est importé...
Mais le principe est le même avec une feuille Excel
http://www.ilyapa.net/ganesh/to/import/import.htm
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"gaston" a écrit
dans le message de

news: 1083901c43fd2$2bcec630$
bonjour !
j'ai un classeur Excel avec plein de données et je
voudrais le passer sur Access, pour gérer mes données plus
aisément. y-a-t-il une manoeuvre spéciale à éxécuter ou
bien je dois ressaisir toutes mes données ?


.



Avatar
gaston
ok ! Merci de prendre du temps pour me répondre
nommer les zones: puis-je demander, pourquoi les nommer ?
je n'ai que des colonnes avec un intitulé en haut. J'avais
fait une feuille par mois, mais pour l'importation, j'ai
tout regroupé pour avoir moins de feuilles.
En fait c'est un classeur qui me sert à faire une pré-
comptabilité: j'ai des feuilles sur laquelle je télécharge
mes comptes bancaires depuis le net, d'autres où je note
mon "journal" de banque au jour le jour, ce qui me permet
de faire un rapprochement bancaire, et éventuellement de
faire des prévisions, une autre où je note au jour le jour
les acptes et crédits, et une autre uniquement ce qui a
trait au chiffre d'affaire: entrées CH ES CB VT, acptes
crédits (donc qui reprend des données des feuilles
précédentes) Ca devenait un peu difficile à gérer sur
excel, en effet, surtout qu'au début j'ai commencé simple,
mais après, en découvrant les possibilités d'Excel, j'ai
voulu améliorer mon truc.
A part ça, j'ai le logiciel Ciel, sur lequel je reprends
tout ça. Un peu compliqué et tatillon, sans doute, je
suis, mais ça me permet d'avoir exactement ce que je veux
et de pouvoir effectuer des vérifications plus
facilement...
Avatar
Pascal Engelmajer
Salut,
Nommer les zones permet de les identifier dans les utilitaires
d'importation.
C'est utile dans le cas de mélange de genre dans les feuilles (tableaux
bases de données, calcul, ...), par contre si les bases de données sont
chacunes sur une feuilles, sans titres, sous titre, fusion de cellule, avec
seulement les entêtes de colonnes c'est inutile.
Je persiste à penser que le passage par l'exportation en fichier texte des
feuilles est une bonne solution.
pour deux procédures que j'utilise ...

Sub exporteUneFeuille()
Dim t As Variant
Dim nbLig As Long
Dim nbCol As Long
Dim ws As Worksheet
Dim rep As VbMsgBoxResult
For Each ws In Sheets
rep = MsgBox("Voulez exporter la feuille [" & ws.Name & "]" & vbCrLf
_
& "dans " & ActiveWorkbook.Path & "" & ws.Name & ".txt ?", _
vbQuestion + vbYesNo, "Exportation d'une feuille")
If rep = vbYes Then
ActiveWorkbook.Sheets(ws.Name).UsedRange 'ne conserve que la
partie utilisée de la feuille
t = ws.UsedRange.Cells.Value
If Not IsEmpty(t) Then
Open ws.Name & ".txt" For Output As #1 'répertoire actif
For nbLig = 1 To UBound(t, 1)
For nbCol = 1 To UBound(t, 2)
If nbCol > 1 Then Print #1, vbTab;
Print #1, t(nbLig, nbCol);
Next nbCol
If nbLig < UBound(t, 1) Then Print #1, ""
Next nbLig
Close #1
End If
End If
Next ws
End Sub
une pour fusionner sur la feuille 1
Sub fusion()
Dim dest As Variant
Dim i As Integer
Dim ws1 As Worksheet
Dim rep As VbMsgBoxResult
Sheets(1).UsedRange
Set ws1 = Sheets(1)
Application.ScreenUpdating = False
For i = 2 To Sheets.Count
rep = MsgBox("Voulez fusionner la feuille [" & ws.Name & "]" , _
vbQuestion + vbYesNo, "Fusion des feuilles sur la feuille1")
If rep = vbYes Then
Set dest = ws1.Cells(ws1.Cells(ws1.UsedRange.Cells.Count,
1).Row+ 1, 1)
Debug.Print dest.Address
Sheets(i).UsedRange.Copy dest
End If
Next i
Application.ScreenUpdating = True
End Sub
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"gaston" a écrit dans le message de
news: 108d601c43ff5$0abbe540$
ok ! Merci de prendre du temps pour me répondre
nommer les zones: puis-je demander, pourquoi les nommer ?
je n'ai que des colonnes avec un intitulé en haut. J'avais
fait une feuille par mois, mais pour l'importation, j'ai
tout regroupé pour avoir moins de feuilles.
En fait c'est un classeur qui me sert à faire une pré-
comptabilité: j'ai des feuilles sur laquelle je télécharge
mes comptes bancaires depuis le net, d'autres où je note
mon "journal" de banque au jour le jour, ce qui me permet
de faire un rapprochement bancaire, et éventuellement de
faire des prévisions, une autre où je note au jour le jour
les acptes et crédits, et une autre uniquement ce qui a
trait au chiffre d'affaire: entrées CH ES CB VT, acptes
crédits (donc qui reprend des données des feuilles
précédentes) Ca devenait un peu difficile à gérer sur
excel, en effet, surtout qu'au début j'ai commencé simple,
mais après, en découvrant les possibilités d'Excel, j'ai
voulu améliorer mon truc.
A part ça, j'ai le logiciel Ciel, sur lequel je reprends
tout ça. Un peu compliqué et tatillon, sans doute, je
suis, mais ça me permet d'avoir exactement ce que je veux
et de pouvoir effectuer des vérifications plus
facilement...
Avatar
gaston
En fait j'ai utilisé les deux cas de figure: importation à
partir d'une feuille directement et puis pour celles sur
lesquelle ça me faisait une erreur, à partir d'un fichier
texte...
Maintenant il va falloir que je me familiarise avec cet
environnement: j'étais tellement habitué à excel... :-)
Etape suivante: comment à partir d'une liste, faire des
soldes intermédiaires par jour et reporter ces soldes dans
une autre table...
-----Message d'origine-----
Salut,
Nommer les zones permet de les identifier dans les
utilitaires

d'importation.
C'est utile dans le cas de mélange de genre dans les
feuilles (tableaux

bases de données, calcul, ...), par contre si les bases
de données sont

chacunes sur une feuilles, sans titres, sous titre,
fusion de cellule, avec

seulement les entêtes de colonnes c'est inutile.
Je persiste à penser que le passage par l'exportation en
fichier texte des

feuilles est une bonne solution.
pour deux procédures que j'utilise ...

Sub exporteUneFeuille()
Dim t As Variant
Dim nbLig As Long
Dim nbCol As Long
Dim ws As Worksheet
Dim rep As VbMsgBoxResult
For Each ws In Sheets
rep = MsgBox("Voulez exporter la feuille [" &
ws.Name & "]" & vbCrLf

_
& "dans " & ActiveWorkbook.Path & "" & ws.Name
& ".txt ?", _

vbQuestion + vbYesNo, "Exportation d'une feuille")
If rep = vbYes Then
ActiveWorkbook.Sheets(ws.Name).UsedRange 'ne
conserve que la

partie utilisée de la feuille
t = ws.UsedRange.Cells.Value
If Not IsEmpty(t) Then
Open ws.Name & ".txt" For Output As
#1 'répertoire actif

For nbLig = 1 To UBound(t, 1)
For nbCol = 1 To UBound(t, 2)
If nbCol > 1 Then Print #1, vbTab;
Print #1, t(nbLig, nbCol);
Next nbCol
If nbLig < UBound(t, 1) Then Print
#1, ""

Next nbLig
Close #1
End If
End If
Next ws
End Sub
une pour fusionner sur la feuille 1
Sub fusion()
Dim dest As Variant
Dim i As Integer
Dim ws1 As Worksheet
Dim rep As VbMsgBoxResult
Sheets(1).UsedRange
Set ws1 = Sheets(1)
Application.ScreenUpdating = False
For i = 2 To Sheets.Count
rep = MsgBox("Voulez fusionner la feuille ["
& ws.Name & "]" , _

vbQuestion + vbYesNo, "Fusion des feuilles
sur la feuille1")

If rep = vbYes Then
Set dest = ws1.Cells(ws1.Cells
(ws1.UsedRange.Cells.Count,

1).Row+ 1, 1)
Debug.Print dest.Address
Sheets(i).UsedRange.Copy dest
End If
Next i
Application.ScreenUpdating = True
End Sub
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"gaston" a écrit
dans le message de

news: 108d601c43ff5$0abbe540$
ok ! Merci de prendre du temps pour me répondre
nommer les zones: puis-je demander, pourquoi les nommer ?
je n'ai que des colonnes avec un intitulé en haut. J'avais
fait une feuille par mois, mais pour l'importation, j'ai
tout regroupé pour avoir moins de feuilles.
En fait c'est un classeur qui me sert à faire une pré-
comptabilité: j'ai des feuilles sur laquelle je télécharge
mes comptes bancaires depuis le net, d'autres où je note
mon "journal" de banque au jour le jour, ce qui me permet
de faire un rapprochement bancaire, et éventuellement de
faire des prévisions, une autre où je note au jour le jour
les acptes et crédits, et une autre uniquement ce qui a
trait au chiffre d'affaire: entrées CH ES CB VT, acptes
crédits (donc qui reprend des données des feuilles
précédentes) Ca devenait un peu difficile à gérer sur
excel, en effet, surtout qu'au début j'ai commencé simple,
mais après, en découvrant les possibilités d'Excel, j'ai
voulu améliorer mon truc.
A part ça, j'ai le logiciel Ciel, sur lequel je reprends
tout ça. Un peu compliqué et tatillon, sans doute, je
suis, mais ça me permet d'avoir exactement ce que je veux
et de pouvoir effectuer des vérifications plus
facilement...


.



Avatar
Pascal Engelmajer
Salut,
Étape suivante: comment à partir d'une liste, faire des
soldes intermédiaires par jour et reporter ces soldes dans
une autre table...


Ce sont les objets combinés des requêtes (action) , des états, des
formulaires...
Pas bien difficile, mais il y a minimum d'apprentissage....
Bon courage...
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"gaston" a écrit dans le message de
news: 108fc01c44005$84fc2df0$
En fait j'ai utilisé les deux cas de figure: importation à
partir d'une feuille directement et puis pour celles sur
lesquelle ça me faisait une erreur, à partir d'un fichier
texte...
Maintenant il va falloir que je me familiarise avec cet
environnement: j'étais tellement habitué à excel... :-)
Etape suivante: comment à partir d'une liste, faire des
soldes intermédiaires par jour et reporter ces soldes dans
une autre table...
-----Message d'origine-----
Salut,
Nommer les zones permet de les identifier dans les
utilitaires

d'importation.
C'est utile dans le cas de mélange de genre dans les
feuilles (tableaux

bases de données, calcul, ...), par contre si les bases
de données sont

chacunes sur une feuilles, sans titres, sous titre,
fusion de cellule, avec

seulement les entêtes de colonnes c'est inutile.
Je persiste à penser que le passage par l'exportation en
fichier texte des

feuilles est une bonne solution.
pour deux procédures que j'utilise ...

Sub exporteUneFeuille()
Dim t As Variant
Dim nbLig As Long
Dim nbCol As Long
Dim ws As Worksheet
Dim rep As VbMsgBoxResult
For Each ws In Sheets
rep = MsgBox("Voulez exporter la feuille [" &
ws.Name & "]" & vbCrLf

_
& "dans " & ActiveWorkbook.Path & "" & ws.Name
& ".txt ?", _

vbQuestion + vbYesNo, "Exportation d'une feuille")
If rep = vbYes Then
ActiveWorkbook.Sheets(ws.Name).UsedRange 'ne
conserve que la

partie utilisée de la feuille
t = ws.UsedRange.Cells.Value
If Not IsEmpty(t) Then
Open ws.Name & ".txt" For Output As
#1 'répertoire actif

For nbLig = 1 To UBound(t, 1)
For nbCol = 1 To UBound(t, 2)
If nbCol > 1 Then Print #1, vbTab;
Print #1, t(nbLig, nbCol);
Next nbCol
If nbLig < UBound(t, 1) Then Print
#1, ""

Next nbLig
Close #1
End If
End If
Next ws
End Sub
une pour fusionner sur la feuille 1
Sub fusion()
Dim dest As Variant
Dim i As Integer
Dim ws1 As Worksheet
Dim rep As VbMsgBoxResult
Sheets(1).UsedRange
Set ws1 = Sheets(1)
Application.ScreenUpdating = False
For i = 2 To Sheets.Count
rep = MsgBox("Voulez fusionner la feuille ["
& ws.Name & "]" , _

vbQuestion + vbYesNo, "Fusion des feuilles
sur la feuille1")

If rep = vbYes Then
Set dest = ws1.Cells(ws1.Cells
(ws1.UsedRange.Cells.Count,

1).Row+ 1, 1)
Debug.Print dest.Address
Sheets(i).UsedRange.Copy dest
End If
Next i
Application.ScreenUpdating = True
End Sub
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."

Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"gaston" a écrit
dans le message de

news: 108d601c43ff5$0abbe540$
ok ! Merci de prendre du temps pour me répondre
nommer les zones: puis-je demander, pourquoi les nommer ?
je n'ai que des colonnes avec un intitulé en haut. J'avais
fait une feuille par mois, mais pour l'importation, j'ai
tout regroupé pour avoir moins de feuilles.
En fait c'est un classeur qui me sert à faire une pré-
comptabilité: j'ai des feuilles sur laquelle je télécharge
mes comptes bancaires depuis le net, d'autres où je note
mon "journal" de banque au jour le jour, ce qui me permet
de faire un rapprochement bancaire, et éventuellement de
faire des prévisions, une autre où je note au jour le jour
les acptes et crédits, et une autre uniquement ce qui a
trait au chiffre d'affaire: entrées CH ES CB VT, acptes
crédits (donc qui reprend des données des feuilles
précédentes) Ca devenait un peu difficile à gérer sur
excel, en effet, surtout qu'au début j'ai commencé simple,
mais après, en découvrant les possibilités d'Excel, j'ai
voulu améliorer mon truc.
A part ça, j'ai le logiciel Ciel, sur lequel je reprends
tout ça. Un peu compliqué et tatillon, sans doute, je
suis, mais ça me permet d'avoir exactement ce que je veux
et de pouvoir effectuer des vérifications plus
facilement...


.