Bonjour,
Voici l'idée :
J'ai créé une sorte de base de données recensant plusieurs informations.
A partir de ces informations, j'ai réussi à générer automatiquement des feuilles avec les informations entrées comme ceci : (BDD et les feuilles créées en bas)
J'ai également réussi à générer un formulaire se générant automatiquement sur les feuilles créées comme ceci :
Cependant je n'arrive pas à attribuer automatiquement les valeurs contenues dans "Tableau Copro" dans les pages automatiquement générées dans les cases correspondants à F3 F4 F5
Voici le code VBA lié à la génération automatique des feuilles en fonction de la BDD :
J'espère que vous avez compris l'idée... J'ai essayé de le faire moi même mais cela n'a pas été fructueux, donc si quelqu'un a une idée de comment faire merci de bien vouloir m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Option Explicit Dim maColonne As Integer Sub AjoutFeuilles() Dim derLi As Long Dim i As Integer Dim maFeuille As Worksheet Set maFeuille = ActiveSheet maColonne = 3 ' a ajuster derLi = Columns(maColonne).Find("*", , , , , xlPrevious).Row For i = 3 To derLi ' 2 si ligne de titre 'Si la feuille existe déjà, on passe à la ligne suivante If FeuilleExiste(maFeuille.Cells(i, maColonne)) Then GoTo Suivant ' ajout d'une feuille à la fin Sheets.Add After:=Sheets(Worksheets.Count) ' nom de la feuille = valeur de la cellule Sheets(Worksheets.Count).Name = maFeuille.Cells(i, maColonne - 1) & "*" & maFeuille.Cells(i, maColonne) & "*" & maFeuille.Cells(i, maColonne + 1) Suivant: Next 'on retourne à la feuille d'origine maFeuille.Select Set maFeuille = Nothing End Sub Function FeuilleExiste(Nom$) As Boolean 'Ti On Error Resume Next FeuilleExiste = Sheets(Nom).Name <> "" End Function Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = maColonne Then AjoutFeuilles End Sub
Voici ce que j'avais en tête mais qui n'a pas marché... Rajouter dans le code ceci :
Merci à vous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sheets(Worksheets.Count).Value = Range("F5").Value = maFeuille.Cells(i, maColonne - 1) Sheets(Worksheets.Count).Value = Range("F4").Value = maFeuille.Cells(i, maColonne) Sheets(Worksheets.Count).Value = Range("F3").Value = maFeuille.Cells(i, maColonne + 1)
Partager