XL 2016 trie de date sur plusieurs feuilles

jean marc1234

XLDnaute Occasionnel
bonjour tout le monde,
je sollicite une nouvelle fois de l'aide. Mon problème est le suivant.
J'ai un classeur Excel comprenant plusieurs feuille avec des entêtes de tableaux identiques.
chaque tableaux possèdes un champs date.
Je regroupe tous ces tableaux dans une feuille "concaténation"
lors de cette opération la colonne date est triée par nom de feuille et nom par date comme je le souhaiterais.
De ce fait je ne peux effectuer de regroupement de date.
J'ai 5 classeurs identiques que je voudrais regrouper pour analyser les donner.
Je joint mon classeur pour les personnes qui voudrait bien jeter un œil.
Merci d'avance.
 

Staple1600

XLDnaute Barbatruc
Re

Ma macro s'appelle consolider_B
C'est bien celle-ci que tu lances ?

Pour être sur:
Dans ton classeur, faire ALT+F11
Dans le menu Insertion, choisir Module
Là tu copies/colles ma macro puis tu appuies sur F5
(NB: Il faut qu'il y ait des données sur la feuille consolidation avant de lancer ma macro)
 

jean marc1234

XLDnaute Occasionnel
Re

Ma macro s'appelle consolider_B
C'est bien celle-ci que tu lances ?

Pour être sur:
Dans ton classeur, faire ALT+F11
Dans le menu Insertion, choisir Module
Là tu copies/colles ma macro puis tu appuies sur F5
(NB: Il faut qu'il y ait des données sur la feuille consolidation avant de lancer ma macro)
Re,
voila ce que sa fait. J'ai bien une liste qui ressort mais!
 

Pièces jointes

  • Capture 3.JPG
    Capture 3.JPG
    57.9 KB · Affichages: 28

jean marc1234

XLDnaute Occasionnel
Re,
bon j'ai trouver pour la macro
.Rows("6:" & .Cells(Rows.Count, "A").End(xlUp).Row).ClearContents
le signe : juste après le 6 qui empêché le bon fonctionnement.
effectivemenent va beaucoup plus vite. Merci beaucoup
par contre j'ai toujours un problème de date maintenant. J'ai vérifié que toutes les cellules avait bien le format date.
ne sa classe pas dans un ordre chronologique.
Si tu peux m'aider stp?
Apparemment sa vient pas de la.
 

jean marc1234

XLDnaute Occasionnel
Re,

@jean marc1234
Relis mon précédent message (le #18) :rolleyes:


PS:
Et il faut laisser les :
(Encore une fois, j'ai testé sur ton fichier, donc si tu testes sur ton fichier tel quel, ca doit fonctionner)
Re,
ben je suis désolé si je vient de réessayer et si je remet les : sa ne fonctionne pas correctement
sa me fait exactement se qu'il y as dans "capture" d'un précédent message
si j'enlève les : la sa se place correctement sauf que sa me remplacement certaines date par un format à 5 chiffres et que du coup je pense que c'est pour cela que j'arrive à faire un trie correct.
si tu le souhaite je peux te faire passer une copie de mon classeur
 

Staple1600

XLDnaute Barbatruc
Re

Conditions de mon test
1) La feuille consolidation n'est pas vide avant de lancer ma macro
(et la feuille n'est pas filtrée)
2) le test se fait sur le classeur exemple (pas sur ton fichier original)

Pour le reste, je t'ai dit que ma macro n'est qu'une autre version* de ta macro consolidation.
(* avec une autre syntaxe)
Par conséquent elle ne s'occupe absolument pas de trier les données.

3) Comme j'ai testé avec un Excel 2003, j'ai du convertir ton classeur en *.xls
(mais cela je te l'ai dit dans le message#10)
Donc enregistres ton fichier de test en *.xls

Et utilises ma macro telle quelle (sans la modifier) et alors elle doit fonctionner ;)
(comme elle le fait sur mon PC actuel depuis ce matin)
 

jean marc1234

XLDnaute Occasionnel
Re

Conditions de mon test
1) La feuille consolidation n'est pas vide avant de lancer ma macro
(et la feuille n'est pas filtrée)
2) le test se fait sur le classeur exemple (pas sur ton fichier original)

Pour le reste, je t'ai dit que ma macro n'est qu'une autre version* de ta macro consolidation.
(* avec une autre syntaxe)
Par conséquent elle ne s'occupe absolument pas de trier les données.

3) Comme j'ai testé avec un Excel 2003, j'ai du convertir ton classeur en *.xls
(mais cela je te l'ai dit dans le message#10)
Donc enregistres ton fichier de test en *.xls

Et utilises ma macro telle quelle (sans la modifier) et alors elle doit fonctionner ;)
(comme elle le fait sur mon PC actuel depuis ce matin)
Re,
j'ai fait et contrôler tout ce que tu m'indiquer
La feuille consolidation n'est pas vide avant de lancer ma macro
(et la feuille n'est pas filtrée)
. Convertion *xls.
Vraiment désolé mais toujours pareils.
pourrais tu me faire passer ton classeur test que je puis comparer les deux.
Je trouverais peut etre mon erreur.
Pour les dates oui j'avais compris que sa trié pas, pour cela que je te demandais un coup de main
 

Staple1600

XLDnaute Barbatruc
Re

Mon classeur de test c'est strictement le tien.
Je n'ai rien changé.
J'ai juste fait la conversion en *.xls
La preuve en image
01test.jpg


Pour être sur qu'on parle de la même macro, je la reposte
VB:
Sub consolider_B()
Dim ArrWks, ws As Worksheet, ligne As Long
ArrWks = _
Array("ales", "arles", "bagnols", "calvisson", "grau du roi", "montpellier", "nimes", "uzes")
Application.ScreenUpdating = False
With Worksheets("consolidation")
    .Rows("6:" & .Cells(Rows.Count, "A").End(xlUp).Row).ClearContents
    For Each ws In Sheets(ArrWks)
        ligne = ws.Cells(Rows.Count, "A").End(xlUp).Row
        ws.Range(ws.Cells(3, "A"), ws.Cells(ligne, "K")).Copy
        .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
Next ws
End With
Application.ScreenUpdating = True
MsgBox "Consolidation terminée", vbInformation
End Sub
PS: j'ai rajouté le MsgBox juste pour te montrer que cela ne bogue pas.
 
Dernière édition:

jean marc1234

XLDnaute Occasionnel
Re

Mon classeur de test c'est strictement le tien.
Je n'ai rien changé.
J'ai juste fait la conversion en *.xls
La preuve en image
Regarde la pièce jointe 1014242

Pour être sur qu'on parle de la même macro, je la reposte
VB:
Sub consolider_B()
Dim ArrWks, ws As Worksheet, ligne As Long
ArrWks = _
Array("ales", "arles", "bagnols", "calvisson", "grau du roi", "montpellier", "nimes", "uzes")
Application.ScreenUpdating = False
With Worksheets("consolidation")
    .Rows("6:" & .Cells(Rows.Count, "A").End(xlUp).Row).ClearContents
    For Each ws In Sheets(ArrWks)
        ligne = ws.Cells(Rows.Count, "A").End(xlUp).Row
        ws.Range(ws.Cells(3, "A"), ws.Cells(ligne, "K").End(xlUp)).Copy
        .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
Next ws
End With
Application.ScreenUpdating = True
MsgBox "Consolidation terminée", vbInformation
End Sub
PS: j'ai rajouté le MsgBox juste pour te montrer que cela ne bogue pas.

re,
le te joint le classeur? J'ai effacer et remis le toujours pareil et en plus tu verra que tous l'ai enregistrement ne ressortent pas.
Je ne veux t'embêter non plus. Mais la c'st bizarre ou alors j'ai un truc devant mes yeux mais que je ne vois pas du tout.
re,
 

jean marc1234

XLDnaute Occasionnel
Re

Heureusement qu'on avait parlé d'anonymiser les données !!!

Sinon la macro fonctionne parfaitement...
(mais évidemment les feuilles à consolider ne sont pas filtrées.
J'ai désactivé les filtres avant de lancer la macro)
ben moi sa fonctionne pas
toujours pareils que dans la capture et manque toujours des enregistrements
je comprend pas
si je comprend toi tu m'indique que le dernier classeur que j'ai mis en ligne chez toi fonctionne très bien sans modification?
 

Staple1600

XLDnaute Barbatruc
Re

La seule modification comme prédemment précisé c'est d'enlever les filtres sur les feuilles qui appartiennent au tableau ArrWks

Donc essaies avec cette version modifiée
VB:
Sub consolider_C()
Dim ArrWks, ws As Worksheet, ligne As Long
ArrWks = _
Array("ales", "arles", "bagnols", "calvisson", "grau du roi", "montpellier", "nimes", "uzes")
Application.ScreenUpdating = False
With Worksheets("consolidation")
    .Rows("6:" & .Cells(Rows.Count, "A").End(xlUp).Row).ClearContents
    For Each ws In Sheets(ArrWks)
    ws.AutoFilterMode = False
        ligne = ws.Cells(Rows.Count, "A").End(xlUp).Row
        ws.Range(ws.Cells(3, "A"), ws.Cells(ligne, "K")).Copy
        .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
Next ws
End With
Application.ScreenUpdating = True
MsgBox "Consolidation terminée", vbInformation
End Sub
 
Dernière édition:

jean marc1234

XLDnaute Occasionnel
Re

La seule modification comme prédemment précisé c'est d'enlever les filtres sur les feuilles qui appartiennent au tableau ArrWks

Donc essaies avec cette version modifiée
VB:
Sub consolider_C()
Dim ArrWks, ws As Worksheet, ligne As Long
ArrWks = _
Array("ales", "arles", "bagnols", "calvisson", "grau du roi", "montpellier", "nimes", "uzes")
Application.ScreenUpdating = False
With Worksheets("consolidation")
    .Rows("6:" & .Cells(Rows.Count, "A").End(xlUp).Row).ClearContents
    For Each ws In Sheets(ArrWks)
    ws.AutoFilterMode = False
        ligne = ws.Cells(Rows.Count, "A").End(xlUp).Row
        ws.Range(ws.Cells(3, "A"), ws.Cells(ligne, "K").End(xlUp)).Copy
        .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
Next ws
End With
Application.ScreenUpdating = True
MsgBox "Consolidation terminée", vbInformation
End Sub
Re,
vraiment désolé mais même avec ce code, c'est pareil.(image capture3) sauf quand j'enlève les :
je comprend plus du tout la
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16