OVH Cloud OVH Cloud

Macro d'importation

5 réponses
Avatar
Clarisse
Je rajoute =E0 mon mail pr=E9c=E9dent : Sans avoir =E0 ouvrir les=20
fichiers initiaux.

Merci

---------------------------
Bonjour,=20

En entr=E9e, j'ai plusieurs fichiers Excel. Je voulais=20
savoir si c'=E9tait possible de fusionner ou importer tous=20
ces fichiers dans un m=EAme fichier Excel ?=20

Chaque fichier de d=E9part contient une seule feuille, le=20
but est d'avoir en sortie un fichier avec plusieurs=20
feuilles.

Est-ce aussi possible de pouvoir fusionner 2 feuilles de 2=20
fichiers Excel diff=E9rents dans une seule feuille d'au=20
nouveau fichier ?

5 réponses

Avatar
anomymousA
bonjour,

Tiré de la bibilothèque de programmes mis à dispo par F Sigonneau.Je pense
que ca pourra t'interesser

'J'ai plusieurs fichiers xls, construits selon la même architecture.
'Une première ligne de "titres", puis des données, sur chacune des lignes.
'Je souhaite qu'un autre fichier "synthétise" tous les
'fichiers "sources".

'Une solution de consolidation utilisant ADO :
'Les données sont lues sans ouvrir les fichiers source et copiées
'dans le fichier cible à la suite des données déjà présentes.
'Les données lues et recopiées sont les données entières de la feuille
passée en
'paramètre Source.
'fs, mpfe

Sub TestConso()
Dim Fich1$, Fich2$, Source1$, Source2$, Cible$
Fich1 = "D:Fichier1.xls"
Fich2 = "D:Fichier2.xls"
Source1 = "Feuil1"
Source2 = "Feuil1"
Cible = "Feuil1"
ConsoDatas Fich1, Source1, Cible
ConsoDatas Fich2, Source1, Cible
End Sub

Public Sub ConsoDatas(NomFichier$, FeuilleSource$, FeuilleCible$)
'Va chercher dans le classeur NomFichier (sans l'ouvrir) les données
'de la feuille FeuilleSource et les copie dans la feuille FeuilleCible
'du classeur actif, à la suite des données (éventuellement) déjà présentes.
'(La ligne d'entêtes de FeuilleSource n'est pas importée)
'inspiré de Rob Bovey, mpep
'nécessite une référence à la librairie
'Microsoft ActiveX Data Object 2.x Library
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim Li&, FeuilleDest

''' Crée la chaîne de connexion
szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & NomFichier & ";" & _
"Extended Properties=Excel 8.0;"

' La requête est basée sur le nom de la feuille. Ce nom
' doit se terminer par un $ et doit être entouré de crochets droits.
szSQL = "SELECT * FROM [" & FeuilleSource & "$];"

Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText

'où envoyer les données :
Set FeuilleDest = ActiveWorkbook.Sheets(FeuilleCible)
Li = FeuilleDest.Range("A65536").End(xlUp).Row + 1
'envoi sur la première ligne vide
If Not rsData.EOF Then
FeuilleDest.Range("A" & Li).CopyFromRecordset rsData
Else
'si la source était vide...
MsgBox "Aucun enregistrement renvoyé.", vbCritical
End If

''' On nettoie pour finir...
rsData.Close
Set rsData = Nothing

End Sub

A+


Je rajoute à mon mail précédent : Sans avoir à ouvrir les
fichiers initiaux.

Merci

---------------------------
Bonjour,

En entrée, j'ai plusieurs fichiers Excel. Je voulais
savoir si c'était possible de fusionner ou importer tous
ces fichiers dans un même fichier Excel ?

Chaque fichier de départ contient une seule feuille, le
but est d'avoir en sortie un fichier avec plusieurs
feuilles.

Est-ce aussi possible de pouvoir fusionner 2 feuilles de 2
fichiers Excel différents dans une seule feuille d'au
nouveau fichier ?



Avatar
twinley
Bonjour Clarisse,

Tant que tu es dans le même sujet, il n'y a pas de raison d'en ouvrir un
autre.
C'est plus facile de suivre le fil pour toi comme pour nous au même endroit.

Cordialement

twinley

Clarisse wrote:
Je rajoute à mon mail précédent : Sans avoir à ouvrir les
fichiers initiaux.

Merci

---------------------------
Bonjour,

En entrée, j'ai plusieurs fichiers Excel. Je voulais
savoir si c'était possible de fusionner ou importer tous
ces fichiers dans un même fichier Excel ?

Chaque fichier de départ contient une seule feuille, le
but est d'avoir en sortie un fichier avec plusieurs
feuilles.

Est-ce aussi possible de pouvoir fusionner 2 feuilles de 2
fichiers Excel différents dans une seule feuille d'au
nouveau fichier ?


Avatar
Clarisse
OK, d'accord, c'est compris.
Désolée

Clarisse
-----Message d'origine-----
Bonjour Clarisse,

Tant que tu es dans le même sujet, il n'y a pas de raison
d'en ouvrir un

autre.
C'est plus facile de suivre le fil pour toi comme pour
nous au même endroit.


Cordialement

twinley

Clarisse wrote:
Je rajoute à mon mail précédent : Sans avoir à ouvrir
les


fichiers initiaux.

Merci

---------------------------
Bonjour,

En entrée, j'ai plusieurs fichiers Excel. Je voulais
savoir si c'était possible de fusionner ou importer
tous


ces fichiers dans un même fichier Excel ?

Chaque fichier de départ contient une seule feuille, le
but est d'avoir en sortie un fichier avec plusieurs
feuilles.

Est-ce aussi possible de pouvoir fusionner 2 feuilles
de 2


fichiers Excel différents dans une seule feuille d'au
nouveau fichier ?
.





Avatar
Clarisse
Bonjour,

Merci, je suis allée voir le site perso de F Sigeonneau,
et il y a plein d'astuces.
Super !

Clarisse


-----Message d'origine-----
bonjour,

Tiré de la bibilothèque de programmes mis à dispo par
F Sigonneau.Je pense

que ca pourra t'interesser

'J'ai plusieurs fichiers xls, construits selon la même
architecture.

'Une première ligne de "titres", puis des données, sur
chacune des lignes.

'Je souhaite qu'un autre fichier "synthétise" tous les
'fichiers "sources".

'Une solution de consolidation utilisant ADO :
'Les données sont lues sans ouvrir les fichiers source
et copiées

'dans le fichier cible à la suite des données déjÃ
présentes.

'Les données lues et recopiées sont les données
entières de la feuille

passée en
'paramètre Source.
'fs, mpfe

Sub TestConso()
Dim Fich1$, Fich2$, Source1$, Source2$, Cible$
Fich1 = "D:Fichier1.xls"
Fich2 = "D:Fichier2.xls"
Source1 = "Feuil1"
Source2 = "Feuil1"
Cible = "Feuil1"
ConsoDatas Fich1, Source1, Cible
ConsoDatas Fich2, Source1, Cible
End Sub

Public Sub ConsoDatas(NomFichier$, FeuilleSource$,
FeuilleCible$)

'Va chercher dans le classeur NomFichier (sans l'ouvrir)
les données

'de la feuille FeuilleSource et les copie dans la feuille
FeuilleCible

'du classeur actif, à la suite des données
(éventuellement) déjà présentes.

'(La ligne d'entêtes de FeuilleSource n'est pas
importée)

'inspiré de Rob Bovey, mpep
'nécessite une référence à la librairie
'Microsoft ActiveX Data Object 2.x Library
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim Li&, FeuilleDest

''' Crée la chaîne de connexion
szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & NomFichier & ";" & _
"Extended Properties=Excel 8.0;"

' La requête est basée sur le nom de la feuille. Ce
nom

' doit se terminer par un $ et doit être entouré de
crochets droits.

szSQL = "SELECT * FROM [" & FeuilleSource & "$];"

Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText

'où envoyer les données :
Set FeuilleDest = ActiveWorkbook.Sheets(FeuilleCible)
Li = FeuilleDest.Range("A65536").End(xlUp).Row + 1
'envoi sur la première ligne vide
If Not rsData.EOF Then
FeuilleDest.Range("A" & Li).CopyFromRecordset rsData
Else
'si la source était vide...
MsgBox "Aucun enregistrement renvoyé.", vbCritical
End If

''' On nettoie pour finir...
rsData.Close
Set rsData = Nothing

End Sub

A+


Je rajoute à mon mail précédent : Sans avoir Ã
ouvrir les


fichiers initiaux.

Merci

---------------------------
Bonjour,

En entrée, j'ai plusieurs fichiers Excel. Je voulais
savoir si c'était possible de fusionner ou importer
tous


ces fichiers dans un même fichier Excel ?

Chaque fichier de départ contient une seule feuille,
le


but est d'avoir en sortie un fichier avec plusieurs
feuilles.

Est-ce aussi possible de pouvoir fusionner 2 feuilles
de 2


fichiers Excel différents dans une seule feuille d'au
nouveau fichier ?

.





Avatar
twinley
:-)

Clarisse wrote:
OK, d'accord, c'est compris.
Désolée

Clarisse

-----Message d'origine-----
Bonjour Clarisse,

Tant que tu es dans le même sujet, il n'y a pas de raison


d'en ouvrir un

autre.
C'est plus facile de suivre le fil pour toi comme pour


nous au même endroit.

Cordialement

twinley

Clarisse wrote:

Je rajoute à mon mail précédent : Sans avoir à ouvrir



les

fichiers initiaux.

Merci

---------------------------
Bonjour,

En entrée, j'ai plusieurs fichiers Excel. Je voulais
savoir si c'était possible de fusionner ou importer



tous

ces fichiers dans un même fichier Excel ?

Chaque fichier de départ contient une seule feuille, le
but est d'avoir en sortie un fichier avec plusieurs
feuilles.

Est-ce aussi possible de pouvoir fusionner 2 feuilles



de 2

fichiers Excel différents dans une seule feuille d'au
nouveau fichier ?


.