Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Transfert d'EXCEL vers ACCESS

3 réponses
Avatar
Gaspareau
Bonjour

J'ai un tableau EXCEL indiquant l'état de différents
tronçons au cours des années

Il est sous la forme :

SECTION 1993 1994 1995
troncon 1 S P TS

Lorsque je le transère automatiquement d'EXCEL vers ACCESS
il me monte une table avec comme nom de chanps 1993, 1994, 1995

Je voudrais, si possible, obtenir une table

SECTION ANNEE ÉTAT
troncon 1 1993 S
troncon 1 1994 P
troncon 1 1995 TS

Pour rendre tout ça un peu plus clair, j'ai mis un fichier
exemple ici
http://cjoint.com/?ijvZwImJut

Merci beaucoup à quiconque prendra quelques minutes de son temps
pour m'aider

Dany

3 réponses

Avatar
Michel_D
"Gaspareau" a écrit dans le message de news:
Bonjour

J'ai un tableau EXCEL indiquant l'état de différents
tronçons au cours des années

Il est sous la forme :

SECTION 1993 1994 1995
troncon 1 S P TS

Lorsque je le transère automatiquement d'EXCEL vers ACCESS
il me monte une table avec comme nom de chanps 1993, 1994, 1995

Je voudrais, si possible, obtenir une table

SECTION ANNEE ÉTAT
troncon 1 1993 S
troncon 1 1994 P
troncon 1 1995 TS

Pour rendre tout ça un peu plus clair, j'ai mis un fichier
exemple ici
http://cjoint.com/?ijvZwImJut

Merci beaucoup à quiconque prendra quelques minutes de son temps
pour m'aider

Dany



Si tu opte pour un traitement sous Access et dans la mesure ou tu n'a
pas plus de champ relatif à l'année, tu peux importer vers Access et
ensuite utiliser une requête action pour recréer une table via une
requête union qui aura réorganisé tes données.

La requête union qui réorganise tes données nommée "zTemp" :
SELECT T.SECTION, 1993 AS ANNEE, T.[1993] AS ETAT
FROM tExcel AS T
UNION SELECT T.SECTION, 1994, T.[1994]
FROM tExcel AS T
UNION SELECT T.SECTION, 1995, T.[1995]
FROM tExcel AS T;

et la requête action qui te crée ta nouvelle table :
SELECT zTemp.* INTO NewTable
FROM zTemp;

Avatar
Philippe.R
Bonjour,
Je m'immisce pour proposer une piste de traitement préalable des données
sous Excel, avec ces deux procédures à coller dans un module ordinaire du
classeur :

Sub conv_table()
'MPFA le 11/08/2007
Application.ScreenUpdating = False
Range("B:C").Select
Selection.EntireColumn.Insert
nbval = 1
For Each c In Range("a2:a" & Range("a1234").End(xlUp).Row)
lalig = c.Row + nbval - 1 'IIf(c.Row = 2, 0, 1)
dercol = Range("IV" & lalig).End(xlToLeft).Column
nbval = Application.CountA(Range(Cells(lalig, 4), Cells(lalig, dercol)))
If nbval > 1 Then
Range(Cells(lalig + 1, 1), Cells(lalig + nbval - 1, 1)).Select
Selection.EntireRow.Insert
For Each d In Selection
d.Value = d.Offset(-1, 0).Value
Next d
End If
Next c
transval
Application.ScreenUpdating = True
End Sub

Sub transval()
'MPFA le 11/08/2007
For Each c In Range("a2:a" & Range("a1234").End(xlUp).Row)
c.Offset(cpt - IIf(cpt = 0, 0, 1), 0).Select
Do While Selection.Offset(0, 1) <> ""
Selection.Offset(1, 0).Select
Loop
z = Selection.Row
cpt = 0
For Each e In Range(Cells(z, 4), Cells(z, Range("iv" &
z).End(xlToLeft).Column))
If e.Value <> "" Then
lacol = e.Column
Cells(z + cpt, 2).Select
Cells(z + cpt, 2).Value = Cells(1, lacol).Value
Cells(z + cpt, 3).Value = e.Value
cpt = cpt + 1
End If
Next e
If z = Range("a1234").End(xlUp).Row Then Exit Sub
Next c
End Sub
--
Avec plaisir
Philippe.R
"Gaspareau" a écrit dans le message de
news:
Bonjour

J'ai un tableau EXCEL indiquant l'état de différents
tronçons au cours des années

Il est sous la forme :

SECTION 1993 1994 1995
troncon 1 S P TS

Lorsque je le transère automatiquement d'EXCEL vers ACCESS
il me monte une table avec comme nom de chanps 1993, 1994, 1995

Je voudrais, si possible, obtenir une table

SECTION ANNEE ÉTAT
troncon 1 1993 S
troncon 1 1994 P
troncon 1 1995 TS

Pour rendre tout ça un peu plus clair, j'ai mis un fichier
exemple ici
http://cjoint.com/?ijvZwImJut

Merci beaucoup à quiconque prendra quelques minutes de son temps
pour m'aider

Dany



Avatar
Gaspareau
Bonjour

Merci Michel ça fonctionne très bien
Effectivement j'ai plus de colonnne d'années
mais j'ai ajusté ta requête et tout fonctionne
numéro un !!

Tu viens de nous sauver plusieurs heures de
travail pas nécessairement très intéressant !!

Bonne journée



"Michel_D" a écrit dans le message de
news: f9h3dc$od9$

"Gaspareau" a écrit dans le message de
news:
Bonjour

J'ai un tableau EXCEL indiquant l'état de différents
tronçons au cours des années

Il est sous la forme :

SECTION 1993 1994 1995
troncon 1 S P TS

Lorsque je le transère automatiquement d'EXCEL vers ACCESS
il me monte une table avec comme nom de chanps 1993, 1994, 1995

Je voudrais, si possible, obtenir une table

SECTION ANNEE ÉTAT
troncon 1 1993 S
troncon 1 1994 P
troncon 1 1995 TS

Pour rendre tout ça un peu plus clair, j'ai mis un fichier
exemple ici
http://cjoint.com/?ijvZwImJut

Merci beaucoup à quiconque prendra quelques minutes de son temps
pour m'aider

Dany



Si tu opte pour un traitement sous Access et dans la mesure ou tu n'a
pas plus de champ relatif à l'année, tu peux importer vers Access et
ensuite utiliser une requête action pour recréer une table via une
requête union qui aura réorganisé tes données.

La requête union qui réorganise tes données nommée "zTemp" :
SELECT T.SECTION, 1993 AS ANNEE, T.[1993] AS ETAT
FROM tExcel AS T
UNION SELECT T.SECTION, 1994, T.[1994]
FROM tExcel AS T
UNION SELECT T.SECTION, 1995, T.[1995]
FROM tExcel AS T;

et la requête action qui te crée ta nouvelle table :
SELECT zTemp.* INTO NewTable
FROM zTemp;