Macro pour dupliquer un onglet d'après une liste

Sur ce site je viens de trouver une macro que tu Banzai64 a réalisé

la voici :

Option Explicit

Sub AjouteFeuilles()

Dim J As Long

Dim Ws As Worksheet

Application.ScreenUpdating = False

Set Ws = ActiveSheet

For J = 1 To Ws.Range("A" & Rows.Count).End(xlUp).Row

If Not FeuilleExiste(Ws.Range("A" & J).Value) Then

Sheets("Modèle").Copy after:=Sheets(Sheets.Count)

ActiveSheet.Name = Ws.Range("A" & J)

End If

Next J

Ws.Select

End Sub

Function FeuilleExiste(Nom As String) As Boolean

On Error Resume Next

FeuilleExiste = Sheets(Nom).Name <> ""

On Error GoTo 0

End Function

Cette macro permet de Dupliquer un Onglet MODELE d'après une liste ...

C'est une macro comme cela que je recherche mais avec une particularité

Je voudrais avoir plusieurs onglets modèles (1.2.3.4) et dans une feuille nommée liste

dans la colonne A une liste de feuille à créer selon le modèle A en B une liste à créer selon le modèle B, ....

Cela complique ...

qui peut m'aider ???

Bonsoir ( C'est le minimum à dire )

A tester

Option Explicit

Sub AjouteFeuilles()
Dim J As Long
Dim Ws As Worksheet

  Application.ScreenUpdating = False
  Set Ws = ActiveSheet
  For J = 1 To Ws.Range("A" & Rows.Count).End(xlUp).Row
    If Not FeuilleExiste(Ws.Range("A" & J).Value) Then
      Sheets("ModèleA").Copy after:=Sheets(Sheets.Count)
      ActiveSheet.Name = Ws.Range("A" & J)
    End If
  Next J

  For J = 1 To Ws.Range("B" & Rows.Count).End(xlUp).Row
    If Not FeuilleExiste(Ws.Range("B" & J).Value) Then
      Sheets("ModèleB").Copy after:=Sheets(Sheets.Count)
      ActiveSheet.Name = Ws.Range("B" & J)
    End If
  Next J

  Ws.Select
End Sub

Function FeuilleExiste(Nom As String) As Boolean
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function

C'est une méthode très simple mais si as beaucoup de colonnes on peut peut-être ( pas sur ) agir autrement

Mais dans ce cas il faut un fichier

Merci Banzai 64 pour ton aide

Et Bonsoir !!! ou bonne nuit ??? (c'était juste un oubli ...)

La macro bug

au moment

If Not FeuilleExiste

Je pense que le nom de la première feuille n'est pas défini ???

Merci encore pour ton aide

ArnoC

edit: supprimé

Bonjour

Fournis ton fichier qui pose problème, parce que d'ici je ne vois pas ce qui peut gêner

Bonsoir et Merci à tous pour votre aide

La petite modif de Banzai 64 m'aide bcp

j'ai voulu la modifié par moi même pour rajouter une colonne C

mais cela ne crée pas les onglets ...

J'ai Loupé un épisode ...????

D'avance Merci

ArnoC

61macrobanzai.xlsm (27.93 Ko)

Bonsoir

2 petits problèmes

Si pour toi D et d sont différents pas pour la création de la page

La 3ème boucle doit être dans la colonne C (tu avais oublié de modifier le nom de la colonne pour le test de la feuille)

  For J = 1 To Ws.Range("C" & Rows.Count).End(xlUp).Row
    'If Not FeuilleExiste(Ws.Range("B" & J).Value) Then
    If Not FeuilleExiste(Ws.Range("C" & J).Value) Then
      Sheets("ModèleC").Copy after:=Sheets(Sheets.Count)
      ActiveSheet.Name = Ws.Range("C" & J)
    End If
  Next J

Merci à toi Banzai 64 !

Un as D'excel !

Je vais pouvoir la retravailler à volonté !

Encore Merci

Arno C

Rechercher des sujets similaires à "macro dupliquer onglet liste"