comment découper une liste dans différents onglets

  • Initiateur de la discussion Initiateur de la discussion bolem
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bolem

XLDnaute Nouveau
Bonjour

Je pensais retrouver cela en cherchant mais je suis un très mauvais chercheur...
Je souhaite découper une liste en différents onglets.
Dans le fichier exemple, il y a 3 colonnes
prénom, code, adresse

Je voudrais pouvoir répartir toutes les lignes sur différents onglets suivant le code.
Chaque onglet aurait donc comme nom le code et on retrouverait les lignes entières de la liste dans chaque onglet

Deux possibilités :
en connaissant les différentes possibilités du code (nombre fini de cas) ou en ne connaissant pas a priori les cas

merci d'avance

Olivier
 

Pièces jointes

Re : comment découper une liste dans différents onglets

Bonjour bolem.


Un essai.
C'est du brut de décoffrage : si ça va dans le bon sens, on peaufinera...​


Bonne journée.


ℝOGER2327
#8096


Samedi 14 As 143 (Saint Pierre Bonnard, peintre des Phynances - fête Suprême Quarte)
25 Brumaire An CCXXIV, 0,1701h - faisan
2015-W47-1T00:24:29Z

P. s. : Pièce jointe supprimée, la procédure proposée étant beaucoup trop lente.
Voir le message #4.
 
Dernière édition:
Bonjour,

en utilisant juste les fonctionnalités d'Excel, notamment le filtre avancé :

VB:
Sub Demo()
                Application.ScreenUpdating = False
    With Feuil1
        With .Cells(1).CurrentRegion.Columns
            C& = .Count + 2
            .Item(2).AdvancedFilter xlFilterCopy, , .Parent.Cells(C), True
        End With
        With .Cells(C).CurrentRegion
             .Sort .Cells(1), xlAscending, Header:=xlYes
             N& = .Rows.Count
        End With
        For R& = 2 To N
            S$ = .Cells(R, C).Value:  .Cells(2, C).Value = S
            With Worksheets
                If Evaluate("ISREF('" & S & "'!A1)") Then .Item(S).UsedRange.Clear _
                                                     Else .Add(, .Item(.Count)).Name = S
            End With
            .Cells(1).CurrentRegion.AdvancedFilter xlFilterCopy, .Cells(C).Resize(2), _
                                                             Worksheets(S).Cells(1)
            With Worksheets(S).Cells(1).CurrentRegion
                .Sort .Cells(1), xlAscending, Header:=xlYes
            End With
        Next
                .Cells(C).Resize(N).Clear
    End With
                Application.ScreenUpdating = True
End Sub
_______________________________________________________________________________
Merci de cliquer sur J'aime ce post en bas à gauche de chaque message ayant aidé …

_______________________________________________________________________________
Je suis Charlie, Bardo, Sousse, Paris
 
Re : comment découper une liste dans différents onglets

Bonjour à tous.

Remplacement de la pièce jointe du message #2

Bonne journée.


ℝOGER2327
#8097


Samedi 14 As 143 (Saint Pierre Bonnard, peintre des Phynances - fête Suprême Quarte)
25 Brumaire An CCXXIV, 4,4924h - faisan
2015-W47-1T10:46:54Z
 

Pièces jointes

Re : comment découper une liste dans différents onglets

Bonjour Marc L.


(...) en utilisant juste les fonctionnalités d'Excel, notamment le filtre avancé (...)

C'est tentant mais particulièrement inefficace !​


Bonne journée.


ℝOGER2327
#8098


Samedi 14 As 143 (Saint Pierre Bonnard, peintre des Phynances - fête Suprême Quarte)
25 Brumaire An CCXXIV, 5,4525h - faisan
2015-W47-1T13:05:10Z
 
C'est tentant mais particulièrement inefficace !
Inefficace comme ton premier code ?

Les fonctions internes d'Excel fonctionnent bien pour peu de les connaître !
Comme le démontre cette animation à partir du classeur joint par le demandeur …

Avant d'écrire une ineptie (pour ne pas dire une connerie !), mieux vaut vérifier ‼ 😉
Pourtant tu n'as pas hésité à reprendre une partie de mon code dans ton second opus !
(création feuille, tri …)

Evidemment une autre fonctionnalité d'Excel est la voie logique
sans besoin de créer un code : le tableau croisé dynamique …
 
Dernière édition:
Re : comment découper une liste dans différents onglets

Bonjour,

Une de +

Code:
Sub Extrait()
  Set f = Sheets("BD")
  Application.DisplayAlerts = False
  Application.ScreenUpdating = False
  bd = f.Range("A2:C" & f.[A65000].End(xlUp).Row)
  Set d = CreateObject("scripting.dictionary")
  For i = 1 To UBound(bd): d(bd(i, 2)) = d(bd(i, 2)) & i & ",": Next         ' dictionnaire
  For Each k In d.keys
     On Error Resume Next: Sheets(k).Delete: On Error GoTo 0
     Sheets.Add After:=Sheets(Sheets.Count)
     ActiveSheet.Name = k
     a = Application.Index(bd, Application.Transpose(Split(d.Item(k), ",")), _
        Application.Transpose(Evaluate("Row(1:" & UBound(bd, 2) & ")")))     ' extraction array()
     [a2].Resize(UBound(a) - 1, UBound(a, 2)) = a
     f.[a1:C1].Copy [a1]
  Next k
End Sub

Si on ne veut récupérer que les colonnes 1 et 3 dans les onglets, remplacer l'extraction de l'Array BD() par

a = Application.Index(bd, Application.Transpose(Split(d.Item(k), ",")), Array(1, 3))

JB
 

Pièces jointes

Dernière édition:
Re : comment découper une liste dans différents onglets

Bonsoir,

essai des différents codes chez moi sur win 7 excel 2007 ACER 2.0 Ghz (vieux machin):
64.501 lignes 3 colonnes (créées avant par le code de Roger2327) donnant 20 onglets

ce split en onglet donne donc:
code "tata": 2.46875 code "demo": 8.382125 code "extrait": 7.445125 code JB: 6.820313

and the winner is 🙂 Roger2327 🙂

mais [humour] que faire avec les 6 secondes gagnées ? [humour off]

P.
 
Re : comment découper une liste dans différents onglets

Re...


(...)

mais [humour] que faire avec les 6 secondes gagnées ? [humour off]

P.
Rien ! Mais si on doit passer à Lien supprimé...​


Bonne soirée.


ℝOGER2327
#8101


Samedi 14 As 143 (Saint Pierre Bonnard, peintre des Phynances - fête Suprême Quarte)
25 Brumaire An CCXXIV, 7,5932h - faisan
2015-W47-1T18:13:25Z
 
Re : comment découper une liste dans différents onglets

Bonsoir

Merci pour les différentes solutions trouvées.
je ne sais pas si je vais avoir le temps de les tester ce soir mais promis, je reviens vers vous pour vous dire si je peux utiliser ces solutions à titre personnel (pour une liste de 100 personnes) sur Xls10 ou professionnel (pour une liste de 10 000 factures) sur xls03

olivier
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
385
Compte Supprimé 979
C
Retour