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

Macros et VBA Excel Discussion :

Compiler contenu feuille identique dans plusieurs fichiers vers une seule feuille [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Compiler contenu feuille identique dans plusieurs fichiers vers une seule feuille
    Bonjour à tous,
    Je cherche depuis un moment un code me permettant de copier une feuille appelée "corrections" présente dans 70 fichiers excel du même dossier dans une seule feuille d'un nouveau fichier en insérant une ligne entre chaque élément copié et une colonne avec l'origine des données (nom du fichier). Après plusieurs essais infructueux, alors que cette question revient assez souvent dans les forums, j'espère trouver de l'aide ici...
    Bon appétit!

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,
    si tu nous donnais au mois la partie du code qui coince, voir un fichier ou deux avec des données bidonnées?
    on pourrait mieux te venir en aide!

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut




    Bonjour,

    vu le sujet récurrent, il y a ce qu'il faut par exemple dans le forum Contribuez


  4. #4
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Voilà ce que j'ai essayé, sachant que je ne maîtrise par vraiment le VBA...
    Merciessai_compil.rar

  5. #5
    Invité
    Invité(e)
    Par défaut
    test ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Sub test()
     Dim f As String
     Dim wb As Workbook
     Dim ws As Worksheet
     Dim Rep
     Dim ActiveName
     Rep = ActiveWorkbook.Path & "\"
     f = Dir(ActiveWorkbook.Path & "\*.xls*")
     ActiveName = ActiveWorkbook.Name
     Set wb = Workbooks.Add
     Set ws = wb.Sheets(1)
     ws.Name = "corrections"
     ws.Range("a1:h1") = Array("Fichier", "annee", "produit", "amm", "qte", "unite", "rq", "correction")
     While f <> ""
     If f <> ActiveName Then GetData ws, Rep, f
     f = Dir
     Wend
     MsgBox "Fin"
     End Sub
     
     
    Public Sub GetData(Feuille As Worksheet, Rep, fichier As String)
    Dim Con As Object
    Dim Rs As Object
    Set Con = CreateObject("ADODB.Connection")
    Con.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & Rep & fichier & ";" & _
    "Extended Properties=""Excel 12.0;HDR=Yes"";"
    Set Rs = CreateObject("ADODB.Recordset")
     
    Sql = "SELECT top 1   * FROM [corrections$];"
    Rs.Open Sql, Con, 0, 1, 1
    Sql = "SELECT  '" & fichier & "' As fichier,"
    For i = 0 To Rs.Fields.Count - 1
        Sql = Sql & "IIf(IsDate([" & Rs.Fields(i).Name & "]) "
        Sql = Sql & "And InStr([" & Rs.Fields(i).Name & "],'/')<>0,"
        Sql = Sql & "Format([" & Rs.Fields(i).Name & "],'yyyy-mm-dd hh:mm:ss'),"
        Sql = Sql & "IIf(IsNumeric([" & Rs.Fields(i).Name & "]),"
        Sql = Sql & "CDbl([" & Rs.Fields(i).Name & "]),[" & Rs.Fields(i).Name & "])),"
    Next
    Sql = Left(Sql, Len(Sql) - 1) & " FROM [corrections$];"
    Rs.Close
    Rs.Open Sql, Con, 0, 1, 1
    Dim derL As Long
    derL = Feuille.Cells(Feuille.Cells.Rows.Count, 1).End(xlUp).Row + 1
    If derL > 2 Then derL = derL + 1
    If Not Rs.EOF Then
     
    Feuille.Cells(derL, 1).CopyFromRecordset Rs
     
    End If
    Rs.Close
    Set Rs = Nothing
    Con.Close
    Set Con = Nothing
     
    End Sub
    Dernière modification par Invité ; 21/10/2014 à 14h21.

  6. #6
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Super!
    Je ne comprends pas tout mais çà marche. Je ne pensais pas qu'il serait si long. Je regarderai le code de plus près plus tard.
    Un énorme merci!
    Bonne après-midi!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/06/2009, 11h46
  2. copie de feuilles vers une seule feuille
    Par dodo28 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/03/2009, 19h12
  3. Réponses: 10
    Dernier message: 12/06/2006, 16h45
  4. Réponses: 4
    Dernier message: 08/06/2006, 20h06
  5. Réponses: 4
    Dernier message: 14/09/2005, 16h29

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