Importer des données dans un classeur...

funwork

XLDnaute Nouveau
Salut et félicitations pour votre site...
Je vous écris car je suis en train de mettre en place un classeur excel dont le but est l'analyse des comptes d'une entreprise.

Grosso modo, un export est fait depuis notre logiciel de comptabilité sous la forme d'un fichier txt structuré avec 4 champs
date;compte;débit;crédit

Aujourd'hui, pour importer ces données dans mon classeur voici ce que je fait :

J'ouvre le fichier txt sous excel en enregistre celui-ci sous forme de fichier excel nommé 2006.xls (avec une ligne pour chaque écriture et en colonne les 4 champs cités plus haut)

En suite j'ouvre mon classeur reporting.xls dans lequel il existe un onglet par année.
Dans l'onglet 2006, j'ai les mois en colonne et les postes en lignes.
Ainsi la cellule "consommation EDF" correspondant au mois de janvier correspond à une différence entre sommeprod(écritures cpte EDF de débit de janvier) et sommeprod(écritures cpte EDF de Crédit de janvier)

Je dois avouer que c'est très lourd, mais bon ça à le mérite de marcher.

Ma question est la suivantes :
N'y a t-il pas moyen de sauter l'étape de la convertion du fichier txt en xls.
Autrement dit est-il possible d'importer les données au format excel directement dans mon classeur de reporting (ce qui evitera de gérer deux fichier)

Il y aurait aussi la possibilité de passer par une table access qu'interrogerais par query...

Que pensez-vous ?

merci d'avance.
 

Fredrennes

XLDnaute Junior
Re : Importer des données dans un classeur...

Salut,

J'imagine que tu ne dois pas pouvoir exporter les données de ton logiciel de comptabilité directement au format .xls ou .csv

Si l'export est uniquement possible en txt, tu peux effectivement passer par access :

1 - Export du txt nommé 2006.txt
2 - Dans une base access, créer une table liée à ce fichier txt (tu remontes ainsi dans ta base tes données mais qd tu exportes tu exportes à chaque fois l'intégralité de tes données)
3 - tu créés ta requêtes access te permettant d'obtenir les données voulues (avec notamment ton solde débit / crédit)
4 - Réalise un tableau croisé dynamique pointant sur les résultats de cette dernière requête

Je pense que tu obtiendras ce que tu veux en sachant que pour les prochaines fois tu n'as plus qu'à exporter, relancer la requête puis rafraichir ton tableau croisé.

Malheureusement il y a tjs qq manipulations... à toi de voir
A+
 

michel_m

XLDnaute Accro
Re : Importer des données dans un classeur...

Bonjour Funwork et Fredennes,

Tu peux importer directement un fichier .txt dans Excel en utilisant ADO. Tu trouveras un topo très intéressant sur le WIKI page 6 de MichelXLD dans ce forum (onglet en haut et à gauche). Tirée pour l'exemple de ce woki voici la demo de Michel
· Sub importFichierTexte_ADO()
Dim Rc As ADODB.Recordset
Dim cn As String, Chemin As String, Fichier As String
Dim i As Long
Chemin = "C:\Documents and Settings\michel\dossier\general\excel"
Fichier = "monFichier.txt"
cn = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=" & Chemin & ";Extensions=asc,csv,tab,txt"
Set Rc = New ADODB.Recordset
Rc.Open Source:="SELECT * FROM " & Fichier, activeConnection:=cn
If Not Rc.EOF Then
For i = 0 To Rc.Fields.Count - 1 'recuperation entetes
Cells(1, 1).Offset(0, i) = Rc.Fields(i).Name
Next
Range("A2").copyFromRecordset Rc
End If
Rc.Close
End Sub

IMPORTANT: il faut cocher Microsoft ActiveX Data Object 2;X library dans "outils-référence" de l'éditeur VBE
 

funwork

XLDnaute Nouveau
Re : Importer des données dans un classeur...

J'ai commencé à explorer l'option ACCESS.
J'ai donc bien en fichier mdb lié à mon fichier txt, j'ai créé ma requête.

Chaque cellule dans ma feuille excel correspondant à une requête, exemple
B4 = select (mois, compte, solde) where mois=janvier and compte=7011

Quelle est la manière la plus simple de procéder sachant que j'ai 12 colonnes (les mois) et environ 30 lignes ; soit un total de 360 requêtes...

J'arrive à exécuter la requete sous acces mais quand j'importe le résultat ça décale la colonne.
Ex : Dans B4 j'importe ma requête mais quand le résultat arrive ça décale d'une colonne la feuille...

Je sens que je suis plus loin !!!
 

funwork

XLDnaute Nouveau
Re : Importer des données dans un classeur...

Bon, là je brûle...
J'ai un regardé les deux méthodes proposées.
ADO : ça m'a l'air d'être la méthode la plus puissante avec notament l'appel des valeurs sous forme de fonctions ce qui présente l'avantage de la souplesse et surtout de propager plus vite les données...Malheureusement c'est assez coton et je ne me sens pas assez calé pour aller de ce côté.
QUERY : là j'arrive déjà à quelque chose. En gros j'arrive à rapatrier l'information que je veux...Comme je le disais dans mon précédent post, je n'arrive pas à simplement insérer dans ma cellule le résultat de cette requête sans que cela ne décale la colonne suivante...En fait tout se passe comme si quand une cellule recevait des données issues d'une requête la colonne devenait inutilisable...D'où le décalage des données précédement en colonne B vers la colonne C...
j'ai fouillé partout et là j'avoue ne plus trop savoir comment régler ce petit soucis...

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 467
Messages
2 088 671
Membres
103 914
dernier inscrit
VAL965698