Dissociation liste sur onglet

Bonjour !

J'aimerai savoir si par des formules il est possible de créer ce que j'ai fait dans ce fichier :

J'ai une liste mis à jour chaque semaine (dans ce fichier "liste") et on veut que je la dissocie sur 3 onglets différents (dans l'exemple recap1/2/3 reprend la colonne D en fonction du numéro attribué) : possible à faire avec des formules ? histoire de voir l'avancé en temps réel de modification.

Si je ne suis pas clair n'hésitez pas à me le faire savoir !

Et s'il y a des idée de macro je prend aussi mais c'est un fichier partager donc bon

Merci par avance

Bonsoir,

en général c'est plutôt l'inverse que l'on fait : des onglets dans lesquels on entre des données, et un onglet Récap qui va chercher ces données... Non ?
Même le nom de vos onglets me semble "à l'envers" ! Comment peut on avoir trois récap d'une liste ?

@ bientôt

LouReeD

Salut !

Oupsiii je sort de la norme en demandant ca

En se moment on teste une transition sur des plannings : Enfaite j'ai un planning qui regroupe 3 machines identiques.

Avant on les laissai sur le même planning puisque les 3 machines peuvent faire les mêmes choses (logique mais pas pratique). Le planning est fait a l'aide d'un logiciel et comme j'ai pu le dire le logiciel ne les différencie pas. Du coup sur planning Excel on veux les dissociés du même planning.

Après si ca fonctionne mieux dans ce sens là on demandera à notre logiciel de séparer les 3 machines. Mais pour savoir si ca peux fonctionner on va allez dans cette phase de transition...

J'ai mis récap parce que ca récapitule tout les 1 dans un onglet tout les 2 dans un autre et tout les 3 dans un dernier ... plutôt logique pour moi x) si ca te dérange tu peux nommer ca comme tu veux c'est pas vraiment le problème

Bonjour, une petite macro pour voir (je n'ai pas utilisé ton fichier. Uniquement la feuille 1). Si tu ne veux pas la dernière ligne : Ubound(table) - 1

Option Explicit

Sub Dissocier()
    Dim table() As Variant, nL As Long
    Dim i As Long, j As Long, k As Long, compt As Long
    Dim ws1 As Worksheet, ws2 As Worksheet

    Set ws1 = Sheets("liste")

    nL = ws1.Cells(Rows.Count, 2).End(xlUp).Row ' Colonne 'Type'
    ReDim table(nL, 4)
    For j = 1 To nL
        For i = 1 To 4
            table(j, i) = Cells(j, i)
         Next i
    Next j

    ' On remplit les feuilles recap
    For i = 1 To 3
        compt = 0
        Set ws2 = Sheets(i + 1)
        For j = 1 To UBound(table)
            If table(j, 4) = "onglet" Or Val(table(j, 4)) = i Or table(j, 4) = "" Then
                compt = compt + 1
                For k = 1 To 4
                    ws2.Cells(compt, k) = table(j, k)
                Next k
            End If
        Next j
    Next i
End Sub

Merci Optimix je testerai quand j'aurai un petit moment et essayer de l'adapter à mon fichier si j'y arrive !

Par contre en classeur partager je crois que ca va poser problème

A voir avec l'admin.

Bonsoir,

qu'entendez vous par "partager" ? La fonction partage d'Excel ou tous le monde peut y toucher ? Et dans ce dernier cas, tout le monde y touche ou bien le consulte seulement ?

@ bientôt

LouReeD

Bonjour,

Partager dans le sens où tout le monde peut faire des modifications

Pas eu de retour sur le test. Bon, pas grave.
Quel problème avec un classeur partagé ? Il peut y en avoir des tas si le classeur n'est pas géré par un admin.

Optimix je t'ai fait un retour par MP pour essayer de comprendre et adapter la macro à mon fichier réel .... (pck ca fonctionne bien sur l'exemple....):

[blablabla]Tu peux m'expliquer ce qu'il faut que je modifie stp pour :

1-changer le nb de colonnes copier sur la ligne

2-modifié la ligne où ce trouve les 1/2/3

3-comment les lignes copiées sont associées aux onglet recap ?

Je n'ai pas l'habitude de travailler avec des macros et j'essaye de comprendre[blablabla]

Mèf ! je ne regarde jamais mes messages privés. Je vois ça.

Pas de pb pour les points 1 et 3, j'y répondrai globalement. Je ne comprends pas la question 2 : les 1/2/3 ne sont pas dans une ligne, mais dans une colonne.
Tu as d'autres critères que les valeurs 1, 2 et 3 ?

Ah oui je me suis trompé sur le terme je voulais dire colonne ^^"

Non je vais bien de 1 jusqu'à 3 mais ma colonne est un peu plus loin que dans l'exemple

Hola !

J'aimerai bien avancé sur le sujet. Optimix si tu peux me faire un retour ici sur les questions que j'ai posé ... ou alors quelqu'un d'autre m'explique svp

Bonne journée à ceux qui passeront par là

Question 1 - Pour changer le nombre de colonnes, il suffit de modifier le code que je t'ai envoyé qui ne prenait en compte que les 3 colonnes de ton exemple. Ce sont les dangers de prendre des exemples simplifiés. Mieux vaut proposer un fichier réel "dépersonnalisé". Dans l'exemple ci-dessous tu peux mettre autant de lignes et de colonnes que tu veux.

Sub Dissocier()
    Dim table() As Variant, nL As Long, nC As Long
    Dim i As Long, j As Long, k As Long, compt As Long
    Dim ws1 As Worksheet, ws2 As Worksheet

    Set ws1 = Sheets("liste")

    nL = ws1.UsedRange.Rows(ws1.UsedRange.Rows.Count).Row
    nC = ws1.Range("A1").CurrentRegion.Columns.Count

    ReDim table(nL, nC)
    For j = 1 To nL
        For i = 1 To nC
            table(j, i) = Cells(j, i)
         Next i
    Next j

    ' On remplit les feuilles recap
    For i = 1 To 3
        compt = 0
        Set ws2 = Sheets(i + 1)
        For j = 1 To UBound(table)
            If table(j, nC) = "onglet" Or Val(table(j, nC)) = i Or table(j, nC) = "" Then
                compt = compt + 1
                For k = 1 To nC
                    ws2.Cells(compt, k) = table(j, k)
                Next k
            End If
        Next j
    Next i
End Sub

Question 3 - On balaye le tableau (table) de la 1re ligne à la dernière et on lit la valeur de la colonne "'onglet".
S'il n'y a ni 1, ni 2, ni 3 on recopie la ligne dans tous les onglets. Si on a 1, 2 ou 3, on copie la ligne uniquement dans l'onglet correspondant.

Merci pour ton retour mais j'ai l'impression que c'est le même code j'ai essayer en ajoutant une colonne à l'exemple et ca ne l'a pas pris en compte

Si je met un exemple de fichier c'est pour m’exercer et comprendre ce que je fait au lieu que ça tombe tout cuit ...

Le code que je viens de te donner est tiré de ce classeur. Je ne vois pas comment tu ne pourrais pas avoir les prix en plus dans la colonne que j'ai ajoutée.

Rechercher des sujets similaires à "dissociation liste onglet"