Creer des onglets en fonction d'une ligne et les imprimer

Bonjour,

18hab-2425-1.xlsx (222.38 Ko)

Je souhaiterai créer un document par ligne de mon tableau et l'imprimer automatique en cliquant sur un bouton.

Par exemple je voudrai que pour chaque ligne un onglet soit créer avec le nom de la personne, il doit prendre comme modèle l'onglet titre et être complété avec les différents informations de la ligne.

Je suis complétement perdu.

Merci pour votre aide.

Bonne journée.

Salut,

Je ne comprends pas très bien ta demande.

Tu dis vouloir créer un onglet par ligne de la feuille Tableau, mais ces onglets sont déjà créés (BSA, CPR, etc.). Cependant, si tu souhaites pouvoir créer à nouveau ces onglets (après avoir effacer les anciens ?) mais de manière automatisée, c'est bien possible.

Ensuite, si tu veux imprimer toutes cette série d'onglets en une seule fois, ce n'est pas un gros problème. Dis-moi juste si c'est bien ce que tu veux.

Tu ne devrais pas placer un fichier avec des noms réels sur le Forum. Je te propose alors que l'on continue à traiter ton problème sur la base du fichier ci-joint et que tu supprimes ton fichier réel.

Cordialement.

14hab-2425-2.xlsm (58.87 Ko)

Bonsoir,

Tu as bien compris ma demande, les onglets présents sont ceux que j’avais créés manuellement on peut en effet les supprimer.

bonjour Ducatezs, un premier essai avec la macro "Ducate"

9hab-2425-1.xlsb (202.23 Ko)
Sub Ducato()
     Dim Arr, Shp, i, j, k

     Arr = Range("tableau1").Value2
     Set Shp = Sheets("titre").Shapes(1)

     For i = UBound(Arr) To 1 Step -1
          If Len(Arr(i, 2) & Arr(i, 3)) > 0 Then     'nom / prénom connu
               With Sheets("Titre")
                    .Copy after:=Sheets("titre")     'copie de "titre"
               End With
               With ActiveSheet
                    .Name = Arr(i, UBound(Arr, 2)) & "_Copie"     'renommer nouvelle feuille
                    Shp.Copy                 'copier shape
                    .Paste .Range("a1")      'coller
                    .Shapes(1).Left = Shp.Left     'déplacer position gauche

                    .Range("B3").Value = "Formateur : " & Arr(i, 2) & " " & Arr(i, 3)
                    .Range("E3").Value = "Formateur : " & IIf(Arr(i, 4), "Interne", "Externe")

                    For j = 1 To 27 Step 2
                         For k = 0 To 2
                              With .Range("A6").Offset(j, k * 2)
                                   .Value = IIf(Arr(i, j + 6 + k * 28), "x", "")
                                   .Offset(1, 1).Value = Arr(i, j + 7 + k * 28)
                              End With
                         Next
                    Next
               End With
          End If
     Next
End Sub

Merci pour ton retour.

Maintenant si c'est pas trop abusé j'aimerai une macro qui me supprime tous les onglets créés (ceux qui contiennent "copie" dans le nom), j'ai tenté un truc mais je patauge.

Merci pour l'ai

11hab-2425-1.xlsb (250.70 Ko)

de

Re-bonjour,

Nouvelle tentative avec ça mais je ne sais pas comment faire supprimer toutes les feuilles contenants "copie".

Sub SupprimerFeuille()
' Désactiver les alertes pour éviter l'invite de confirmation
Application.DisplayAlerts = False

Sheets("NomDeLaFeuille").Delete

' Réactiver les alertes
Application.DisplayAlerts = True
End Sub

C'est bon j'ai trouvé.

Sub SupprimerFeuillesTemp()
    Dim ws As Worksheet
    Application.DisplayAlerts = False
    For Each ws In ThisWorkbook.Sheets
        If Left(ws.Name, 5) = "Copie" Then
            ws.Delete
        End If
    Next ws
    Application.DisplayAlerts = True
    MsgBox "Toutes les feuilles 'Copie' ont été supprimées.", vbInformation
End Sub
Rechercher des sujets similaires à "creer onglets fonction ligne imprimer"