Selection des lignes et création des onglets associés

Bonjour,

J'ai créer une base de donnée. chaque ligne correspond a une affaire . J'aimerai passer les données d'une ligne (qui correspond a une affaire) sur des onglets a part.

Aujourd'hui j'ai créer un par un les onglets avec une macro qui duplique mon onglet. Après pour mettre a jour avec les données de la ligne (affaire) qui m'intéresse, je change le numéro de ligne concernée en "A2" (onglet "ligne-3").

J'aimerais, avoir une colonne avec des cases a cocher, par exemple, devant les lignes qui m'intéresses et créer automatiquement les onglets lié a cette ligne.

16exemple-excel.xlsm (68.74 Ko)

Bonjour,

Plutot que de mettre des cases à cocher, regardez cet exemple dans le fichier posté --> https://forum.excel-pratique.com/s/goto/832675

Après il faut voir où vous ajoutez cette colonne et si le code doit prendre en charge des données à ajouter dans la feuille Ligne--x au lieu des formules présentes

Cordialement

Bonjour

Moi j'ai opté pour le double clic sur une ligne

J'ai commencé la macro (10 lignes)

Je te laisse mettre les autres champs

Pour accéder à la macro clic droit sur l'onglet table_cod et choisir visualiser le code

20exemple-excel.xlsm (66.56 Ko)

A+ François

Bonsoir à tous,

@fanfan38: tu vas avoir un souci si tu choisis la description comme nom de feuille, l'underscore n'est pas autorisé.....

Teste en double-cliquant sur la ligne 3.....

Peut-être en associant Initiator et la Sale?

ActiveSheet.Name = Range("B" & Target.Row).Value & "-" & Range("D" & Target.Row).Value

Cordialement,

Re

Comme suite à mon post, voici la proposition
1. Dans la feuille "Table_Cod", insérer une colonne vide en colonne A (la colonne N° ligne passe donc en colonne B)
2. Faites un click droite sur l'onglet "Table_Cod"
3. Choisissez l'option "visualiser le code"
4. Dans la fenêtre, collez le code ci-dessous
5. Enregistrez votre fichier au format XLSM

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Plage As Range
Dim Existe As Boolean

Set Plage = Range("A3:A" & Range("B" & Rows.Count).End(xlUp).Row)
If Not Intersect(Target, Plage) Is Nothing Then
    For i = 1 To Sheets.Count
        If Sheets(i).Name = "Ligne-" & Target.Offset(0, 1) Then Existe = 1: Exit For
    Next i
    If Existe = 0 Then
        With Sheets("ligne-3")
            .Copy After:=Sheets(Sheets.Count)
            With ActiveSheet
                .Name = "Ligne-" & Target.Offset(0, 1)
                .Range("AU3") = Target.Offset(0, 2)
                .Range("BD3") = Target.Offset(0, 3)
                .Range("AU5") = Target.Offset(0, 4)
                .Range("AU7") = Target.Offset(0, 5)
            End With
        End With
    With Target
        .Font.Name = "Wingdings 2"
        .Font.Size = 12
        .FormulaR1C1 = "R"
    End With
    Sheets(1).Activate
    Target.Offset(0, 1).Select
    End If
End If
End Sub

A chaque click dans une cellule de la colonne A, la feuille "Ligne-3" sera dupliquée et les infos seront des colonnes C,D,E et F seront placées dans la nouvelle feuille (en AU, BU etc...)
Si une case est cochée en colonne A, la feuille ne sera pas crée car le code contrôle si la feuille existe ou pas

Cordialement

Merci à tous,

Ta solution Dan est celle qui se rapproche le plus de ce que je cherche à obtenir.

Mais ca beug, la ligne : Target.Offset(0, 1).Select en jaune et message d'erreur.

et a chaque creation d'onglet cela me rebalance dans le premier onglet "Item Seq".

Ce n'est pas pratique. il faut revenir a l'onglet "Table_Cod" a chaque fois.
Je continue mes recherches.

Merci

capture d ecran 2021 11 22 113123

Bonjour

Mais ca beug, la ligne : Target.Offset(0, 1).Select en jaune et message d'erreur.

et a chaque creation d'onglet cela me rebalance dans le premier onglet "Item Se

C'est normal. Votre fichier posté ne contient pas la feuille "Item_Seq" que vous avez mis en position 1 dans votre fichier.
Du coup cela beugue puisque l'instruction "Sheet(1).activate" vous renvoie sur cette feuille "Item_seq" au lieu de la feuille Table_Cod
Dans le code remplacez :

Sheets(1).Activate

par

Sheets("Table_Cod").Activate

Cordialement

Bonjour à tous,

Je me replonge dans mon fichier.

Au lieu de cliquer dans la premiere case pour déclencher la création de l'onglet j'aimerais:

- sélectionner individuellement les lignes a créer. (par menu déroulant oui/non par exemple.)

- une fois la selection faite , lancement de la création des onglets ( en cliquant sur un bouton macro par exemple)

- pourquoi passer par cette étape? pour qu'en cliquant sur ce bouton cela me recréé (mis a jour) les onglets sélectionnés et supprime les onglets désélectionnés.

ainsi je suis sur en cliquant que mes onglets son a jour avec mon tableau ?

Pouvez vous m'aider sur ces points?

capture d ecran 2021 12 31 094248

Je vous souhait tous mes vœux pour 2022. Prenez soin de vous.

Bonjour

Vous mettez une liste déroulante type objet sur votre feuille. Quelle gestion à faire si vous ajoutez des lignes.... il faudra chaque aller ajouter l'objet sur votre feuille. Franchement je ne comprends pas..

De plus je vous ai donné une solution par case à cocher qui fonctionne toujours d'ailleurs si vous cliquez en B13 par exemple ...

Si vous voulez utiliser un bouton, il suffit de cocher la case ou non puis d'exécuter le code lié au bouton en fonction des cellules cochées ou non. Au moins vous évitez tous ces objets qui ne risque que d'apporter des soucis.
Autre solution sans bouton, si vous décochez la case, on supprime la feuille. A voir si intérêt...

Dites moi

Cordialement

Bonjour Dan.

Encore merci de votre aide. votre code marche très bien.

Les boutons ajoutés c'est de la bidouille. j'essaye obtenir des résultats avec les connaissances que j'ai déjà. c'est pas facile de décrypter votre code pour moi. j'aimerais l'améliorer. Aujourd'hui on clique dans une case et cela créé un nouvel onglet. Mais rien ne m'assure que les données de l'onglet sont a jour avec les données tableau. J'aimerais trouvé un moyen pour une fois une mise a jour de mon tableau . créer des onglet a jour et effacer les onglets inutiles.

Ma bidouille: dans ma tète je voulais choisir en colonne B oui /non (à créer ou non ) et le lier à la colonne A avec des 1 ou 2. Ainsi repartir avec la donnée en colonne A (1/2) et s'en servir dans une formule ou macro. je suis au point mort mon chers DAN.

Si vous mettez à jour la feuille table_cod, la feuille initialement créée est mise à jour aussi puisque vous avez des formules dans cette feuille

Je me trompe ?

c'est des formule : INDIRECT( elles ne se mettent pas a jour

Logique car dans votre feuille Modèle en A2 vous avez cette formule =INDIRECT("'"&A1&"'!A3") qui va recherche l'info en A3 de la feuille TAB_Code
A mon avis dans cette feuille modèle on devrait avoir le numéro de ligne correspondant à la ligne dans Tab_code pour laquelle on créé la feuille

exemple si vous créez la feuille pour Durant en ligne trois de la feuille Tab_Code, vous devriez avoir le chiffre 3 en A2 de votre feuille Ligne-3 et non pas 1 comme je le vois

EDIT :
Pour tester, dans le code que je vous ai donné juste en dessous de --> .Name = "Ligne-" & Target.Offset(0, 1) , ajoutez cette ligne

.Range("A2") = Target.Offset(0, 1)

meme sur le fichier d'origine ca ne se met pas a jour.

c'est la macro qui rempli les case et pas les formules directement. du coup il faut que je supprime l'onglet et je relance et sa marche. c'est pas top

Bonjour à tous,

J'avais commencé un truc...puis j'ai abandonné...

Mais en suivant les conseils de DAN, la mise à jour s'effectue bien....(d'ailleurs faudrait revoir tes formules pour la correspondance des colonnes).

Le fichier non finalisé....

  • A chaque double-clic en colonne B, on affiche OUI où NON
  • Au clic du bouton Créer Onglet(s), on efface les onglets existants et pour chaque ligne qui comprend un OUI, on les recrée...

Bon réveillon

Cordialement,

meme sur le fichier d'origine ca ne se met pas a jour.

c'est la macro qui rempli les case et pas les formules directement. du coup il faut que je supprime l'onglet et je relance et sa marche. c'est pas top

Normal. Si vous faisiez au moins ce que je vous écris. Votre dernier fichier ne comporte pas ma modification

Rechercher des sujets similaires à "selection lignes creation onglets associes"