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 :

[VBA-E] Regroupement de données


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Par défaut [VBA-E] Regroupement de données
    Bjr,

    Je possède différente valeurs dans différentes Feuils Excel.

    Toutes ces Feuils ont les memes colonnes : Date/NIMP/Référence mais pas la meme quantité de valeurs.

    Mon but est de réaliser un balayage de toutes ces feuilles par ordre croissant afin de regrouper, dans une feuil unique possédant les 3 colonnes citées précédement, toutes les valeurs des Feuils.

    J'espere avoir été assez clair.

    Merci à tous.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tiens un peu de code ...

    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
    Sub Macro1()
     Dim fd As Worksheet ' Feuille destination
     Dim fs As Worksheet 'Feuille source (de la copie)
     Set fd = ThisWorkbook.Sheets("feuil2") 'On défini ici la feuille destination
     'Efface Feuille destination
     fd.Cells.Clear
     fd.Activate
     'Ecriture de l'entête sur Feuille destination
     fd.Cells(1, 1) = "Date"
     fd.Cells(1, 2) = "NIMP"
     fd.Cells(1, 3) = "Référence "
     For Each fs In ThisWorkbook.Worksheets
       If fs.Name <> fd.Name Then  ' on va pas copier la feuille destination ...
        Debug.Print "Copie des données de " & fs.Name
        fs.Range(fs.Cells(2, 1), fs.Cells(1, 1).SpecialCells(xlLastCell)).Copy 'On copie à partir 1° ligne
     
        fd.Cells(fd.Cells(1, 1).CurrentRegion.Rows.Count + 1, 1).Select ' On se place sur cellule suivante le tableau récap
        fd.Paste ' on colle...
       End If
     Next
     
    End Sub

    bon courage ...

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Par défaut
    Génial ca marche j'ai comme meme un peu modifié la macro.

    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
    Sub Macro2()
     
     Dim fd As Worksheet ' Feuille destination
     Dim fs As Worksheet 'Feuille source (de la copie)
     
     Sheets.Add
     Set fd = ThisWorkbook.ActiveSheet 'On défini ici la feuille destination
     
     'Efface Feuille destination
     
      fd.Activate
     
     'Ecriture de l'entête sur Feuille destination
     
     fd.Cells(1, 1) = "Date"
     fd.Cells(1, 2) = "NIMP"
     fd.Cells(1, 3) = "Référence "
     
     For Each fs In ThisWorkbook.Worksheets
     
       If fs.Name <> fd.Name Then  ' on va pas copier la feuille destination ...
        Debug.Print "Copie des données de " & fs.Name
        fs.Range(fs.Cells(2, 1), fs.Cells(1, 1).SpecialCells(xlLastCell)).Copy 'On copie à partir 1° ligne
        fd.Cells(fd.Cells(1, 1).CurrentRegion.Rows.Count + 1, 1).Select ' On se place sur cellule suivante le tableau récap
        fd.Paste ' on colle...
     
       End If
     
     Next
     
    End Sub
    Par contre j'avais oublié d'indiquer que je ne voulais pas prendre la Feuil1 et la Feuil "Calendrier" dans la boucle.

    Si je fais un and if ca devrait fonctionner.

    Je vais essayer ca.

    Merci encore.

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Par défaut
    J'ai essayé le code suivant mais ca ne fonctionne pas :
    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
    Sub Macro2()
     
     Dim fd As Worksheet ' Feuille destination
     Dim fs As Worksheet 'Feuille source (de la copie)
     
     Sheets.Add
     Set fd = ThisWorkbook.ActiveSheet 'On défini ici la feuille destination
     
     'Efface Feuille destination
     
      fd.Activate
     
     'Ecriture de l'entête sur Feuille destination
     
     fd.Cells(1, 1) = "Date"
     fd.Cells(1, 2) = "NIMP"
     fd.Cells(1, 3) = "Référence "
     
     For Each fs In ThisWorkbook.Worksheets
     
       If fs.Name <> fd.Name And fs <> Sheets("Feuil1") and  fs <> Sheets("Calendrier") Then ' on va pas copier la feuille destination ...
        Debug.Print "Copie des données de " & fs.Name
        fs.Range(fs.Cells(2, 1), fs.Cells(1, 1).SpecialCells(xlLastCell)).Copy 'On copie à partir 1° ligne
        fd.Cells(fd.Cells(1, 1).CurrentRegion.Rows.Count + 1, 1).Select ' On se place sur cellule suivante le tableau récap
        fd.Paste ' on colle...
     
       End If
     
     Next
     
    End Sub
    Je comprends pas pourquoi??

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    If fs.Name <> fd.Name And fs <> Sheets("Feuil1") and fs <> Sheets("Calendrier") Then
    Tu ne vois rien d'anormal ? Tu devrais te relire...

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Allez... essaie avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If fs.Name <> fd.Name And fs.name <> "Feuil1" and fs.name <> "Calendrier" Then
    A+

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Par défaut
    Ah la j'avoue dsl mais Vendredi donc un peu fatigué.

    Merci beaucoup.

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

Discussions similaires

  1. [XL-2010] Regroupement de données + code vba
    Par Dadou999 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2013, 16h16
  2. VBA Regrouper des données dans un fichier unique
    Par oracle7556 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/04/2010, 22h28
  3. [VBA-EXCEL] - Effectuer une regroupement de données
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/02/2007, 08h22
  4. regroupement de données
    Par PlaylistBoy dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 12h07
  5. [VBA Excel] Extraction de données
    Par tpv72 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/09/2005, 21h49

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