Fusionner plusieurs fichiers excel

Résolu/Fermé
Brabux Messages postés 47 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 18 février 2012 - 12 nov. 2011 à 09:49
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 3 mars 2016 à 22:02
Bonjour,

Je cherche depuis plusieurs jours la bonne méthode pour fusionner mes fichiers et un seul et je me décide aujourd"hui à passer par vous.

FAut avouer que c'ets assez compliqué. IL faudrait que les fichiers nommés AE soient regroupés dans le fichier retour. J'ai fais un exemple mais je l'ai rempli a la main. le dossier AE contient bien quelque 65 fichiers AE.

fichiers AE
http://www.fufox.net/?d=B916155F5E8A
http://www.fufox.net/?d=AFF41141339F

fichier retour
http://www.fufox.net/?d=9839A1A25626

Si vous avez la solution je vous serai redevable :)

merci d'avance,





A voir également:

7 réponses

Brabux Messages postés 47 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 18 février 2012
12 nov. 2011 à 18:52
j'ai réussi a peu pres a faire ce que je voulais.

Il reste des erreurs, mais surtout et vraiment compliqué de faire en sorte de rassembler les entreprises du meme corps d'etat tout en comptant leur nombre et en moyennant leur note...


ici le fichier qui fusionne
http://www.fufox.net/?d=B84855D2D373

quelqu'un peut m'aider ?

merci
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
12 nov. 2011 à 19:20
Essaie ce code :
Option Explicit
Option Private Module
'

Public Sub Synthèse_Classeurs_AE()
Dim wbk As Workbook                'Classeur
Dim Système As Object              'Système de fichiers
Dim Dossier As Object              'Répertoire
Dim Fichiers As Object             'Collection de fichiers du répertoire Dossier
Dim Fichier As Object              'Fichier (élément de la collection Fichiers)
Dim Nom_Fichier As String          'Nom du fichier
Dim Nom_Dossier As String          'Nom du dossier

'Répertoire des fichiers AE
Nom_Dossier = ThisWorkbook.Path & "/AE"

'Lecture du répertoire
Set Système = CreateObject("Scripting.FileSystemObject")
Set Dossier = Système.GetFolder(Nom_Dossier)
Set Fichiers = Dossier.Files
'- Contrôle de chaque le fichier du répertoire
For Each Fichier In Fichiers
  '- Vérifier s'il s'agit d'un fichier Excel...
  If StrComp(Système.GetExtensionName(Fichier.name), "xls", vbTextCompare) = 0 Then
    '... dans l'affirmative, ouvrir le fichier et mettre à jour les liaisons
    Nom_Fichier = Nom_Dossier & "\" & Fichier.name
    Set wbk = Workbooks.Open(Filename:=Nom_Fichier, UpdateLinks:=xlUpdateLinksNever)
    Call Ajouter_Données_AE(wbk)
    wbk.Close SaveChanges:=False
  End If
Next Fichier
  
End Sub

Public Sub Ajouter_Données_AE(wbk As Workbook)
Dim celOrg As Range
Dim celDst As Range

'Première info de AE
Set celOrg = wbk.Worksheets(1).Range("A20")

'Dernière cellule utilisée de la première colonne du fichier retour
Set celDst = ThisWorkbook.Worksheets(1).Cells(ThisWorkbook.Worksheets(1).Rows.Count, 1).End(xlUp)

'Copie des données
Do While celOrg.Formula <> ""
  Set celDst = celDst.Offset(1)
  'Corps d'état
  celDst.Value = celOrg.Value
  'Entreprise
  celDst.Offset(, 1).Value = celOrg.Offset(, 1).Value
  'Nombre d'opérations
  '- je ne sais pas d'ou vient cette info
  'Note
  celDst.Offset(, 3).Value = celOrg.Offset(, 5).Value
  'suivant
  Set celOrg = celOrg.Offset(1)
Loop

End Sub
0
Brabux Messages postés 47 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 18 février 2012
13 nov. 2011 à 08:30
bonjour Patrice,
j'ai essayé de la facon suivante :
j'ouvre VBA, je copie colle ton code sur la page, je retourne sur la feuille excel et j'execute la macro, un bouton de commande serait l'idéal, vu que je suis mauvais voir une buse en VBA.

elle bloque a la 2eme ligne en disant : "erreur de compilation : option private module, non permise dans un module objet".

Pour ce qui est du nombre d'opération, c'est qu'il va y avoir forcement des doublons d'entreprises, alors je voulais comptabilier le nombre de fois citée et faire la moyenne de leur note.


merci encore
0
Brabux Messages postés 47 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 18 février 2012
13 nov. 2011 à 18:43
re bonjour,

J'ai bidouillé un truc :

supprimé :
Option Explicit
Option Private Module
'
Ca buggait comme indiqué sur mon message au dessus.

et puis après, ca s'arretait en disant chemin introuvable : j'ai donc modifié :
Nom_Dossier = ThisWorkbook.Path & "/AE"
par :
Nom_Dossier = ThisWorkbook.Path & ""

ca rappatrie bien les infos de tous mes fichiers, seulement ca bug aussi sur celui avec le code.


je cherche encore pour le bouton mais surtout Pour ce qui est du nombre d'opération, c'est qu'il va y avoir forcement des doublons d'entreprises, alors je voulais comptabilier le nombre de fois citée et faire la moyenne de leur note.


merci d'avance,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié par Patrice33740 le 14/11/2011 à 00:01
« j'ouvre VBA, je copie colle ton code sur la page, »

C'est pour cela que ça marche pas. Il faut coller le code dans un module, pas dans la feuille :
Ouvre VBA / Insertion / Module / Colle le code dedans

Créér un répertoire AE dans le même répertoire que retour.xls et y déplacer tous les fichiers AE

Pour insérer un bouton sur la feuille :
Onglet développeur / Inserer / dans Contrôle ActiveX, prendre le bouton et le dessiner sur la feuille.
Double clic sur le bouton (on bascule vers le VBA du bouton) et saisir ce code :
Private Sub CommandButton1_Click() 
  Call Synthèse_Classeurs_AE 
End Sub

Revenir dans Excel et désactiver le mode création.

Cordialement
Patrice
0
Brabux Messages postés 47 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 18 février 2012
14 nov. 2011 à 18:23
ca marche nickel.

Merci Patrice.
0
Bonjour,

est ce que pour des fichiers CSV même principe ça peut marcher?
J'ai repris le même code avec csv à la place de xls mais j'ai toujours un message d'erreur sur
Set Dossier = Système.GetFolder(Nom_Dossier)

Merci beaucoup.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776 > MomoAbou
3 mars 2016 à 22:02
As-tu créé le répertoire AE ???
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
14 nov. 2011 à 18:52
De rien, au plaisir de te relire sur le Forum
0