XL 2013 Générateur d'onglet excel

Lolo4428

XLDnaute Nouveau
Bonjour à tous

je ne sais pas par où commencer

je souhaiterais savoir s'il est possible à partir d'un tableau de données (dans mon cas la feuille 1 )
de générer un onglet (comme ma feuille 2) le tout automatiquement.

l'idée finale étant de remplir le tableau ligne par ligne sur la feuille 1 et par appui sur le bouton générateur de créer les onglets associés (par ex 3lignes sur feuille 1 = 3 onglets)

merci de votre aide en tout cas

Laurent
 

Pièces jointes

  • Zone.xlsx
    36.4 KB · Affichages: 46

Hieu

XLDnaute Impliqué
Salut Lolo4428,

Bon, c'est pas ce que tu demandes, mais j'te propose déjà une évolution de tes formules, via des index equiv ce qui t'evitera de modifier toutes les formules. ne te reste plus qu'à modifier une cellule (dans laquelle j'ai mis un menu déroulant) sur la feuille pour obtenir ce que tu souhaites.

Ensuite, il ne manquera plus qu'à créer la macro qui copie cette feuille et change la cellule.
 

Pièces jointes

  • zone_v0.xlsx
    25.3 KB · Affichages: 27

Lolo4428

XLDnaute Nouveau
Salut Lolo4428,

Bon, c'est pas ce que tu demandes, mais j'te propose déjà une évolution de tes formules, via des index equiv ce qui t'evitera de modifier toutes les formules. ne te reste plus qu'à modifier une cellule (dans laquelle j'ai mis un menu déroulant) sur la feuille pour obtenir ce que tu souhaites.

Ensuite, il ne manquera plus qu'à créer la macro qui copie cette feuille et change la cellule.[/QUOT
 

Hieu

XLDnaute Impliqué
Je n'ai pas compris ton amélioration ??

EN repartant de mon fichier :
VB:
Sub mlk()
Set wf = WorksheetFunction
Set t = Sheets("table")
Set b = Sheets("base")

nb = wf.CountA(t.Range("a7:a32"))
nb_feuil = 2

Call nettoyage

For i = 1 To nb
Sheets("base").Copy After:=Sheets(nb_feuil)
nb_feuil = nb_feuil + 1
Sheets(nb_feuil).Name = t.Range("a6").Offset(i, 0)
Sheets(nb_feuil).Range("ad2") = t.Range("a6").Offset(i, 0)
Next i
End Sub

Sub nettoyage()
' macro servant à supprimer toutes les feuilles
' autres que table et base
Application.DisplayAlerts = False
Set wf = WorksheetFunction
For Each s In Sheets
If Not wf.Or(s.Name = "table", s.Name = "base") Then s.Delete
Next s

End Sub
 

Pièces jointes

  • zone_v1.xlsm
    34.7 KB · Affichages: 30

Discussions similaires

Réponses
12
Affichages
247

Statistiques des forums

Discussions
312 244
Messages
2 086 555
Membres
103 247
dernier inscrit
bottxok