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 :

Regrouper les données de plusieurs feuilles dans une


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 0
    Points
    0
    Par défaut Regrouper les données de plusieurs feuilles dans une
    Bonjour, actuellement j'utilise cette macro, elle a pour but de copier toutes les feuilles excel situées dans un répertoire, contenant plusieurs classeurs fermés et de les ajouter dans mon classeur ouvert.:

    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
    Sub test1()
        Dim Chemin As String, Fichier As String, Ligne As Long
        Dim Feuilles, Sh As Worksheet, Tabl
        Chemin = "C:\Documents and Settings\xxxx\Bureau\base excel\"
        Fichier = Dir(Chemin & "*.xls")
        Set Sh = Sheets.Add
        Do While Fichier <> ""
            ThisWorkbook.Names.Add "Plage", _
                RefersTo:="='" & Chemin & "[" & Fichier & "]DonnesU'!$A$1:$Z$100"
            With Sh
                .[A1:Z100] = "=Plage"
                .[A1:Z100].Copy
                .[A1:Z100].PasteSpecial xlPasteValues
                ' Tabl est un tableaureprésentant la zone A1:Z100 du classeur fermé en cours de traitement
                ' la première dimension représente le numéro de ligne
                ' et la seconde le numéro de colonne
                Tabl = .[A1:Z100]
                Cells.ClearContents
                Ligne = Ligne + 1
                Cells(Ligne, 1) = Tabl(2, 3) ' renseigne A1
                'etc.
            End With
            Fichier = Dir
        Loop
    End Sub

    J'aimerais savoir si c'était possible, au lieu à chaque fois que la macro créer une nouvelle feuille dans mon classeur ouvert pour afficher les résultats copier. Ba que tout simplement elle aligne ça sur une seul feuille en ajoutant une nouvelle ligne a chaque fois.

    En clair peut être : quand elle copie toutes feuil1 de mes classeur fermé dans le répertoire, elle ajouter dans mon classeur ouvert Feuil1, feuil2,feuil3..... j'aimerais juste au lien de créer plein de feuille qu'il place directement les résultats sur une seul feuille les un à la suite de l'autre. Est ce que c'est possible ?? Svp

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    à tester
    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
    Sub Test1()
    Dim Chemin As String, Fichier As String, Plage As String
    Dim NewLig As Long
    Dim Sh As Worksheet
     
    Application.ScreenUpdating = False
    Chemin = "C:\Documents and Settings\xxxx\Bureau\base excel\"
    'Chemin = "C:\Users\user\Desktop\base excel\"
    Fichier = Dir(Chemin & "*.xls")
    Set Sh = ThisWorkbook.Worksheets("Feuil1")                 'Feuille cible (à adapter le nom)
    With Sh
        'Effacer toute la feuille cible au préalable
        .UsedRange.Clear
        Do While Fichier <> ""
            'Première ligne vide
            NewLig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
            Plage = "'" & Chemin & "[" & Fichier & "]DonnesU'!A1"
            'Pour que les cellules vides ne se transforment pas en 0
            Plage = "=IF(" & Plage & "="""",""""," & Plage & ")"
            With .Range("A" & NewLig & ":Z" & NewLig + 99)
                .Formula = Plage
                .Value = .Value
            End With
            Fichier = Dir
        Loop
    End With
    Set Sh = Nothing
    End Sub

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 0
    Points
    0
    Par défaut re
    Ne fonctionne pas créer correctement sur une seul page, mais les resultats ne s'ajoute pas une ligne au dessus de l'autre ça modifie toujours la même ligne.

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonsoir
    La ligne 16 du code indique qu'on cherche la première cellule vide en colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewLig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
    Tu as toujours des données en colonne A? Sinon, modifie la colonne

Discussions similaires

  1. [SQL2005] Regrouper les données de plusieurs bases dans une seule
    Par oliviera63 dans le forum Développement
    Réponses: 7
    Dernier message: 07/02/2012, 10h40
  2. Copier les données de plusieurs colonnes dans une nouvelle feuille
    Par lolonico1974 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/07/2010, 07h51
  3. import de données de plusieurs feuilles dans une seule
    Par naevus dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 10/01/2008, 13h32
  4. Intégrer les données de plusieurs fichiers dans une table
    Par soad029 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/11/2007, 03h57

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