Consolidation de fichier

  • Initiateur de la discussion Initiateur de la discussion nat54
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nat54

XLDnaute Barbatruc
Bonjour,

Je fais appel à vous car malgré des macros dans ma besace excel (et le peu de temps que j'ai devant moi...), je n'arrive pas à ce que je veux.

Le problème :

=> source : 7 fichiers comprenant 2 onglets ;
un onglet en local currency rempli par nos filiales
un second onglet qui convertit ces données en €uros
Ces fichiers se trouvent tous dans le même répertoire.

=> réceptacle : 1 fichier avec seulement les onglets en €uros soit 7 onglets
Je préfèrerais que ce fichier soit en dehors du répertoire, mais si ce n'est pas possible, ce n'est pas grave

Ca paraît simple...

Merci d'avance.
 
Re : Consolidation de fichier

Bonjour Nat,

Ce serait plus facile si tu nous donnais le nom de l'onglet Euro (est ce le même dans les 7 fichiers ?) et l'adresse de la cellule donnant le nom de la société

edit: n'y a t il que ces 7 fichiers dans le répertoire ?

Dans l'attente,

Amicalement
 
Re : Consolidation de fichier

Re,

Excuses moi, je croyais être a peu près tranquille cet aprèm au boulot mais...

si personne ne réagit sur le forum, je regarderai demain at home

La solution prévue est de parcourir en boucle le répertoire et de lire l'onglet des classeurs restant fermés

quand l'onglet est lu ("select* from [onglet], on peut créer une nouvelle feuille et le copier...
a propos, il faudrait l'adresse ( ou mieux la cellule nommée) de la cellule donnant le nom de société

Donc, excuses moi encore ( il y a environ & à 1,30h de boulot sans être dérangé)
 
Re : Consolidation de fichier

Merci

Une question, ca veut dire quoi
"Si tu veux avoir les 2.." ?


Seconde question
La macro bloque là
Set requete = source.Execute(texte_SQL)
il me met que le moteur jet ne trouve pas 'in k€uros'
j'ai essayé en enlevant le $ ne sachant pas à quoi cela correspond mais ca ne marche pas non plus
 
Dernière édition:
Re : Consolidation de fichier

Bonjour

"Si tu veux avoir les 2.." ?

Si, dans une m^me colonne, tu as des textes et des nombres majoritaires (>8), ADO ne va prendre en compte que les nombres
Si tu veux voir apparaitre les textes et les nombres (les 2...) il faut prendre l'option IMEX=1 mais alors, les nombres sont exprimés en texte: '123,45

La macro bloque là
Set requete = source.Execute(texte_SQL)

chez moi ca marche... Truc: peut-être enregistrer sur ton HD; quand je lis un fichier "juste dézippé", j'ai toujours des pb...
 
Re : Consolidation de fichier

Re,

le $ est nécessaire quand on requiert l'onglet (lecture de l'onglet en BDD)

il y a bien la référence ADo à cocher mais tu aurais planté dès le départ...

as tu adapter ton chemin vers le répertoire "sources_nat" ?

autrement, je ne vois pas, je viens de re-re essayer et ca marche...

tiens moi au courant
 
Re : Consolidation de fichier

Re,

Oui j'ai adapté le répertoire

Dim fich As String
Dim repertoire As String
Sub reporter()

repertoire = "C:\Documents and Settings\Nat\Mes documents\test\sources_nat" ' à adapter

ChDir repertoire
fich = Dir("*.xls")
While fich <> ""
fich = repertoire & fich
chercher
fich = Dir
Wend
'sauvegarder?
End Sub


Sub chercher()
Dim source As ADODB.Connection
Dim requete As ADODB.Recordset

'reporte les données du classeur source
Set source = New ADODB.Connection

source.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & fich & ";" & _
"extended properties=""Excel 8.0;HDR=No;"";"
'"extended properties=""Excel 8.0;HDR=No;IMEX=1;"";"

texte_SQL = "SELECT * FROM [in k€uros$];"

Set requete = New ADODB.Recordset
Set requete = source.Execute(texte_SQL)

'construit une nouvelle feuille (à améliorer)
'application.ScreenUpdating=False
Sheets.Add
'inscrit les données de la source "in keuro"
Range("A2").CopyFromRecordset requete
'inscrit le nom de la société
ActiveSheet.Name = Range("A2")

requete.Close
source.Close
Set requete = Nothing
Set source = Nothing
End Sub
 
Re : Consolidation de fichier

Salut tout le monde,

Salut Nat54,

as-tu essayé de mettre dans ton code :
Code:
texte_SQL = "SELECT * FROM [[COLOR=blue]k€uros[/COLOR]];"

Tu doit faire appel au nom de la "table" qui est le nom de ta feuille !

l'utilisation de "In" n'est pas à cet endroit et le "$" te poseras un bug.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
884
R
  • Question Question
Réponses
2
Affichages
988
Rousseau Benoit
R
Retour