Bonjour
Pour créer des onglets à partir de deux modèles (QUANTI ou QUALI)
J'ai mis ce code pour l'onglet rapport
Il fonctionne si au départ de l'utilisation les onglets MODELCOMPA QUANTI ET MODELCOMPAQUALI ne sont pas cachés , mais je souhaiterai pouvoir les cacher dès le début mais dans ce cas les onglets créés ne sont pas bons . Création du dernier onglet et non pas des onglets qui intéressement .
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 Private Sub Worksheet_Change(ByVal Target As Range) Trouv = False 'Test si la cellule est bien en colonne P (colonne 16 ) If Target.Column = 16 Then 'Test si la cellule est bien avant la ligne (pas de génération de feuille dont le nom est : " ") If Target.Row < 283 Then Onglet = Cells(Target.Row, 1).Value 'Test si la cellule contient "quanti" (Lcase met obligatoirement en minuscule toute chaine de caractère) If LCase(Target.Value) = "quanti" Then 'on test le nom des feuilles et si on la trouve alors Trouv = True For Each Sheet In Sheets If Sheet.Name = Onglet Then Trouv = True Exit For End If Next 'Si on l'a trouvé on l'affiche sinon il faut la créer If Trouv = True Then Sheets(Onglet).Visible = True Else 'on copie la feuille Model en dernier Sheets("MODELCOMPQUANTI").Visible = True Sheets("MODELCOMPQUANTI").Copy After:=Sheets(Sheets.Count) Sheets("MODELCOMPQUANTI").Visible = False 'on renomme cette derniere Sheets(Sheets.Count).Name = Onglet Sheets(Sheets.Count).Visible = True End If Else For Each Sheet In Sheets If Sheet.Name = Onglet Then Trouv = True Exit For End If Next 'Si on l'a trouvé on l'affiche sinon il faut la créer If Trouv = True Then Sheets(Sheets.Count).Visible = True End If End If End If End If Trouv = False 'Test si la cellule est bien en colonne Q (colonne 17 ) If Target.Column = 17 Then 'Test si la cellule est bien avant la ligne (pas de génération de feuille dont le nom est : " ") If Target.Row < 283 Then Onglet = Cells(Target.Row, 1).Value 'Test si la cellule contient "quali" (Lcase met obligatoirement en minuscule toute chaine de caractère) If LCase(Target.Value) = "quali" Then 'on test le nom des feuilles et si on la trouve alors Trouv = True For Each Sheet In Sheets If Sheet.Name = Onglet Then Trouv = True Exit For End If Next 'Si on l'a trouvé on l'affiche sinon il faut la créer If Trouv = True Then Sheets(Onglet).Visible = True Else 'on copie la feuille Model en dernier Sheets("MODELCOMPQUALI").Visible = True Sheets("MODELCOMPQUALI").Copy After:=Sheets(Sheets.Count) Sheets("MODELCOMPQUALI").Visible = False 'on renomme cette derniere Sheets(Sheets.Count).Name = Onglet Sheets(Sheets.Count).Visible = True End If Else For Each Sheet In Sheets If Sheet.Name = Onglet Then Trouv = True Exit For End If Next 'Si on l'a trouvé on l'affiche sinon il faut la créer If Trouv = True Then Sheets(Sheets.Count).Visible = True End If End If End If End If End Sub
Je ne trouve pas l'erreur, mais je ne suis pas très douée...
Si quelqu'un peut m'aider
Je vous joins en pj mon tableur
Partager