Problème Macro - Insertion auto d'onglet

Bonjour à tous.

Je suis une petite nouvelle je découvre tout juste ce merveilleux forum

Je me permets de faire appel à vos connaissances Excel.

J'ai un fichier excel avec en lignes les nom d'utilisateurs et en colonnes, un couple de transactions.

A chaque intersection, la valeur 0 ou 1 est renseignée (1 signifie que la personne dispose de ce couple).

J'ai environ 3700 utilisateurs (lignes) et 170 couples (colonnes).

J'aimerai réussir à automatiser la création d'onglets pour chaque couple de transaction. A chaque nouvel onglet je souhaiterais voir apparaitre la liste des gens concernés par ce conflit et avec en nom d'onglet, le nom du couple incompatible.

Je ne sais pas si ma demande vous parait clair donc je vous joint un fichier joint permettant d'illustrer mes propos.

Je vous remercie par avance d'aider la petite débutante que je suis

En espérant un retour.

Mimi

19exemple-mimi.zip (7.12 Ko)

Bonjour et bienvenue,

Tu devrais compléter un peu + ton fichier

et ajouter 2 ou 3 exemples du résultat souhaité

il y a peut-être plus simple à faire

Amicalement

Claude

Bonjour Claude et merci de ta réponse.

En effet, un exemple serait plus parlant

Je joint donc un autre fichier complété par des exemples.

En te remerciant.

Mimi

Bonsoir Mimi, forum,

C'est bien ce que je pensais, on peut faire tout sur la même feuille

ou sur une seconde feuille "extraction"

avec filtres élaborés.

Vu le nombre important de lignes et colonnes, çà vaut le coup !

essayes d'envoyer une dizaine de lignes avec toutes les colonnes,

si possible avec la structure réelle.

à te relire, pour suite à donner

Claude

Bonsoir

avec ce que j'ai compris ...

La macro supprime les feuilles si elles existent (pour éviter des blocages) et les recréé avec les informations voulues.

Bonjour à tous,

Je reste persuadé qu'il n'y a pas besoin de 170 feuilles !

Quoi qu'il en soit, j'avais préparé la macro comme demandé,

le résultat est identique à celle de BoNus

il serait intéressant de comparer les temps de traitement sur les 2 versions

fichier complet, (les 2 méthodes étant différentes)

Sub CréationFeuil()
'Macro par Claude Dubois pour "petitemimi_paris" Excel-Pratique le 13 mai 2011
Dim i%, cL%, Plg As Range
Dim Lg%, Sh$, x
        x = Time
        Application.ScreenUpdating = False
        Sh = Sheets("Exemple").Name
    With Sheets(Sh)
        Lg = .Range("a65536").End(xlUp).Row
        cL = .Cells(5, 250).End(xlToLeft).Column
        Set Plg = Range(.Cells(5, 1), .Cells(Lg, cL))

        '--- supprime feuilles ---
            Application.DisplayAlerts = False
        For i = Worksheets.Count - 1 To 2 Step -1
            Worksheets(i).Delete
        Next i
            Application.DisplayAlerts = True

        '--- création feuilles ---
        For i = cL To 2 Step -1
            Sheets.Add Before:=Worksheets(2)
            ActiveSheet.Name = Application.Substitute(.Cells(5, i), "/", "-")

            '-- filtre données --
            .Range("g2") = "=" & Cells(6, i).Address(RowAbsolute:=False) & "=1" 'critère
            With Sheets(2)
                Sheets(Sh).Cells(5, i).Copy Destination:=.Cells(1, 2)           'en-tête
                .Cells(1, 1) = Sheets(Sh).Cells(5, 1)                           'en-tête                                           'en-tête
                Plg.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
                Sheets(Sh).Range("g1:g2"), CopyToRange:=.Range("a1:b1"), Unique:=False
            '--
                .Range("b1").Copy Destination:=.Range("a1")
                .Columns(2).Clear
                .Cells(1, 2) = "=COUNTA(a:a)-1"
                .Columns(1).AutoFit
            End With
        Next i
        .Activate
        Range("g2").Clear
    End With
        Application.ScreenUpdating = True
        MsgBox ("temps macro = " & Format(Time - x, "hh:mm:ss"))
End Sub

Bonne journée

Claude

Bonjour Claude.

Un énorme merci pour cette macro qui fonctionne très bien et qui est très efficace même avec une grande volumétrie.

Cependant, je me permets de compléter ma demande (car j'ai essayé d'ajouter des lignes de codes pour améliorer le fichier mais sasn succès).

Je joint donc un autre exemple du résultat souhaité (les onglets créés automatiquement ont été enrichis avec une recherchev sur un autre onglet --> rapatriement d'information sur les utilisateurs, un lien hypertexte renvoyant vers l'onglet synthèse. J'ai également ajouté un onglet "Synthèse" reprenant l'ensemble des onglets précédemment créés avec un lein hypertexte vers celui - ci ainsi que le rapatriement de la cellule "nbval" de chaque onglet)

Comme d'habitude je vous laisse un fichier d'exemple, plus parlant que mes explications.

Je vous remercie vraiment de ce que tu fais pour moi Claude, j'apprécie.

Mimi

Bonjour à tous,

Mimi, tu ne réponds pas à mon idée d'une seule feuille + synthèse

dommage !

Sinon,

Sur ton dernier fichier, je te propose d'incorporer les "infos" dans la feuille "Exemple"

ce qui simplifie grandement le programme pour un même résultat (+ le poids du fichier réduit),

voir ce fichier de mise en page.

Combien y a t-il de noms dans la version réelle ?

à te relire

Claude

Claude,

merci encore pour ton intérêt à mon problème.

Le fichier tel qu'il est dans mon dernier message est vraiment le rendu attendu (en prenant en compte les complexités,c-a-d avoir un onglet info indépendant).

La version réelle fait environ 5000 noms d'utilisateurs (5000 lignes).

Penses tu que la macro serait capable de gérer cela sans faire planter excel (j'ai un quad coeur 64bits...)

En te remerciant par avance pour tout.

Mimi

Bonsoir à tous,

Le fichier tel qu'il est dans mon dernier message est vraiment le rendu attendu (en prenant en

compte les complexités,c-a-d avoir un onglet info indépendant).

Pourquoi indépendant ? , il va falloir argumenter un peu plus ce dictat,

Quelle différence y a t-il entre ces 2 feuilles ?

Les colonnes "Noms" ne sont pas les mêmes, le nombre de lignes est-il différent ?

Faire des feuilles pour faire des feuilles, on t'a démontrer qu'on sait faire, même si elles

ne servent à rien.

Pas sûr que je continue à te suivre !

Tu vas droit vers une usine à gaz, à laquelle je ne participerais pas.

réfléchis encore à ton projet

Amicalement

Claude

Claude,

je suis navré que tu le prennes de la sorte. Si j'ai laissé la contrainte des deux feuilles indépendantes c'est bien parce que justement (et comme tu l'as justement deviné), les informations des deux feuilles ne sont jamais les mêmes (la feuille info peut contenir jusqu'à 20 000 lignes alors que la feuille exemple contiendra elle, suivant l'analyse, un maximum de 3000 noms, présents dans la feuilles info.) Si je te demande si il est possible que la macro sache (et puisse) prendre les informations à partir de la feuille info c'est pour éviter à faire une recherchev sur ma population avant tout traitement préalable (éviter un maximum le traitement manuel pour réduire le risque d'erreur).

Je suis vraiment désolé que mon problème soit interprété comme cela. Si tu ne continues pas à me suivre, je tiens juste à te remercier cependant pour l'aide que tu m'as déjà apportée.

Mimi

Bonjour à tous,

Mimi,

Si je me pose ces questions, c'est parce que j'aime bien savoir ce que je fait et où je mets les pieds,

non pas exécuter bêtement une requête (parfois absurde).

Il faudrait savoir comment tu utilise ce fichier, quel est son but ?

j'ai cru comprendre:

- après rafraichissement des onglets (macro)

tu consulte ces onglets en choisissant un couple "AA/AB" par exemple

c'est tout ?

J'ai compris pour les 2 feuilles "Exemple" et "infos", il faudra donc faire une recherche,

pour se faire, il ne faudrait pas de doublons dans les colonnes "Nom"

ces 2 feuilles sont-elles bien dans le même fichier ? (j'espère)

confirme ces points importants.

Combien de lignes dans chaque onglet extrait (environ ou fourchette) ?

Le mieux serait de m'envoyer le fichier complet (les 2 feuilles "exemple et infos"), afin que

je me forge une idée plus précise et oriente le programme en conséquence.

Je peux t'envoyer mon adresse e-mail en MP

Un bon départ évite bien des désagréments, par la suite !

Je reste convaincu que les 170 onglets sont inutiles, mais bon !

(je sais obtenir le même résultat sur la même feuille)

à te relire

Claude

Rechercher des sujets similaires à "probleme macro insertion auto onglet"