IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Fusion de plusieurs fichiers excel


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Par défaut Fusion de plusieurs fichiers excel
    Bonjour,

    N'ayant pas trouver une solution sur le forum, je me permets de vous solliciter pour un petit code de module access.

    En fait, je voudrais fusionner plusieurs fichiers excel d'un dossier 1, pour le mettre dans un fichier excel contenu dans le dossier 2, ce fichier devant être créer et ayant la même structure que les fichiers excel du dossier 1. Avec une petite contrainte : si le fichier destination est plein, on crée un nouveau fichier.

    Je suis nouveau en vba et je ne sais pas comment m'y prendre. Pouvez-vous m'aider s'il vous plait?

  2. #2
    Membre expérimenté Avatar de spaiku
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 209
    Par défaut
    Bonjour,

    j'ai écrit quelque chose qui fait sensiblement la même chose. Je te laisse regarder le fichier joint, il y a même une doc !

    J'ai prévu d'en faire une v3 qui permettra à l'utilisateur de sélectionner les onglets du fichier de destination qu'il souhaite prendre en compte.

    En revanche, je ne crée pas de nouveau fichier lorsque le premier atteint un nombre de lignes déterminé.

    Edit: évidemment, c'est du VBA Excel, donc il va falloir adapter un peu, mais la démarche reste la même.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Par défaut
    Merci beaucoup pour ta réponse, plutôt complète et mais complexe!
    Je visais surtout un truc simple, du genre on copie les données du fichier excel dans un variant tmp, on ferme et on ajoute tmp dans un variant global T puis on vide t. Après on crée le fichier excel final et on y insère les données de T et on passe au fichier excel suivant.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Par défaut
    Je me retourne encore vers le forum car il y a un souci sur le code que j'ai essayé :

    Option Compare Database
    Sub FusionClasseur()
    Dim oFSO, oFl
    Dim strepsource, strepdest
    Dim tmp As Variant
    Dim T As Variant

    Dim xlApp1 As Excel.Application
    Dim xlApp2 As Excel.Application
    Dim xlSheet1 As Excel.Worksheet
    Dim xlSheet2 As Excel.Worksheet
    Dim xlBook1 As Excel.Workbook
    Dim xlBook2 As Excel.Workbook
    Dim strPath1 As String
    Dim strPath2 As String
    Dim i, j, x, y As Long

    strepsource = "..." 'répertoire source
    strepdest = "..." 'répertoire de destination

    Set xlApp1 = CreateObject("Excel.Application")

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    If oFSO.FolderExists(strepsource) Then

    For Each oFl In oFSO.GetFolder(strepsource).Files
    Set xlBook1 = xlApp1.Workbooks.Open(strepsource & "\" & oFl.Name)
    'On manipule la feuille
    Set xlSheet1 = xlBook1.ActiveSheet
    'Affecter les données dans tmp
    tmp = xlSheet1.Range("A1:Z2000").value
    For i = 0 To UBound(tmp, 1)
    For j = 0 To UBound(tmp, 2)
    For x = 0 To UBound(T, 1) ********
    For y = 0 To UBound(T, 2)
    While T(x, y) = ""
    tmp(i, j) = T(x, y)
    Wend
    Next y
    Next x
    Next j
    Next i

    Erase tmp
    Next
    End If

    'on crée le fichier excel de destination
    Set xlApp2 = CreateObject("Excel.Application")
    Set xlBook2 = xlApp2.Workbooks.Add
    xlBook2.Sheets("Feuil2").Delete
    xlBook2.Sheets("Feuil3").Delete

    Set xlSheet2 = xlBook2.Worksheets.Add
    xlBook2.SaveAs strepdest & "recap.xls"

    Set xlBook2 = xlApp1.Workbooks.Open(strepdest & "\" & "recap.xls")

    i = 0
    While Range("A" & i & "").value = ""
    xlSheet2.Range("A" & i & ":Z2000").value = T
    i = i + 1
    Wend

    xlBook2.Save
    End Sub
    au lancement, l'erreur 13 "Incompatibilité de type apparaît" au niveau de la ligne que j'ai marqué par des ***

    Quelqu'un pourrait-il m'aider à éclairer ma lanterne?

    Merci d'avance

  5. #5
    Membre éclairé

    Inscrit en
    Janvier 2005
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 532
    Par défaut
    Salut,
    parceque T est vide.
    qu'elle est le rôle de T.
    Bonne chance.
    Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Par défaut
    Salut Hocine,

    Comme j'ai marqué au message précédent, T est un variant global.

    Ce que je veux faire au fait c'est récupérer un tableau excel de plusieurs fichiers excel contenu dans un dossier, l'affecter à un variant tmp, copier le contenu de ce variant dans un variant global T, puis recopier le contenu de T dans un fichier excel final qui regroupe donc les données de plusieurs autres fichiers excel.

  7. #7
    Invité de passage
    Inscrit en
    Janvier 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 1
    Par défaut
    Citation Envoyé par spaiku Voir le message
    Bonjour,

    j'ai écrit quelque chose qui fait sensiblement la même chose. Je te laisse regarder le fichier joint, il y a même une doc !

    J'ai prévu d'en faire une v3 qui permettra à l'utilisateur de sélectionner les onglets du fichier de destination qu'il souhaite prendre en compte.

    En revanche, je ne crée pas de nouveau fichier lorsque le premier atteint un nombre de lignes déterminé.

    Edit: évidemment, c'est du VBA Excel, donc il va falloir adapter un peu, mais la démarche reste la même.
    Une fois la fusion intervenue, rien ne se passe ... je ne sis pas où est le fichier de résultat. Comment choisir le fichier de destination, ou bien quel est il par défaut ?

  8. #8
    Membre expérimenté Avatar de spaiku
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 209
    Par défaut
    Bonjour,

    les données sont collées dans la feuille active au moment de l'appel de la macro.

    Si ce n'est pas le cas, n'hésite pas à me contacter par MP pour que je débugge.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fusion de plusieurs fichiers pdf à partir liste excel
    Par aude_alti dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 02/04/2013, 14h57
  2. [AC-2010] Fusion de plusieurs fichiers excel
    Par nhykola dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/05/2012, 17h06
  3. Fusion de plusieurs fichiers Excel
    Par AJemni dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/10/2009, 08h02
  4. fusion de plusieurs fichiers excel
    Par mas128 dans le forum Excel
    Réponses: 5
    Dernier message: 31/01/2008, 17h23
  5. [VBA-E]une macro unique pour plusieurs fichiers excel
    Par fanchic29 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/04/2006, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo