Erreur d'execution sur création automatique d'onglet

emsylvin69

XLDnaute Junior
Bonjour à tous,
je suis loin d'être un expert mais je me dépatouille un peu.
Dans le cadre de mon travail, j'ai voulu m'aider d'Excel et faire un tableau de planning des différents employés. J'ai crée une liste de nom d'une part et mon modèle de planning d'autre part. J'ai une macro qui est censée me créer, en se reportant au modèle vierge, une feuille pour chaque employé. Mon tableau des employés peut ou ne peut pas être complet (tout dépend de la demande). Lorsque j'effectue cette macro, elle me crée bien tout mes onglets mais m'affiche une erreur d'execution.
Ma question est la suivante: Est-ce déjà possible de créer ces onglets en partant d'une liste de noms variable? Est-ce mes formules qui générent ces erreurs? Si oui, comment les allégés?
J'ai cherché (peut être mal) un peu partout mais je n'ai pas trouvé la solution. Merci d'avance de vous être penchés sur mon cas.
 

Pièces jointes

  • Essais.xlsm
    28.3 KB · Affichages: 45
  • Essais.xlsm
    28.3 KB · Affichages: 46
  • Essais.xlsm
    28.3 KB · Affichages: 44

pierrejean

XLDnaute Barbatruc
Re : Erreur d'execution sur création automatique d'onglet

Bonjour emsylvin69

teste cette modification:

VB:
Sub CREATION()
Dim X As Integer
Application.ScreenUpdating = 0
X = 2
While Sheets("Personnel").Range("B" & X).Value <> ""
Sheets("Modèle").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Sheets("Personnel").Cells(X, 2)
With Sheets("Modèle")
Range("D1") = Sheets("Personnel").Cells(X, 2)
Range("C1") = Sheets("Personnel").Cells(X, 1)
        End With
 X = X + 1
 Wend
End Sub
 
D

Denis

Guest
Re : Erreur d'execution sur création automatique d'onglet

Bonjour emsylvin69, PierreJean et le Forum,
pour rester dans le code de emsylvin, en y rajoutant l'effacement des feuilles inutiles avant la création :

Sub CREATION()
Dim X As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For X = ThisWorkbook.Sheets.Count To 1 Step -1
Dim a
a = Sheets(X).Name
If Sheets(X).Name <> "Personnel" And Sheets(X).Name <> "Modèle" Then Sheets(X).Delete
Next
Application.DisplayAlerts = True

For X = 2 To Sheets("Personnel").Range("B65536").End(xlUp).Row
Sheets("Modèle").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Sheets("Personnel").Cells(X, 2)

With Sheets("Modèle")
Range("D1") = Sheets("Personnel").Cells(X, 2)
Range("C1") = Sheets("Personnel").Cells(X, 1)
End With

Next
Application.ScreenUpdating = True

End Sub

Bon courage et à +
Denis
 

emsylvin69

XLDnaute Junior
Re : Erreur d'execution sur création automatique d'onglet

Re-bonjour à tous,
j'ai essayé les deux modifications.
La modif de Pierrejean fonctionne impéccablement.
Pour celle de Denis, lorsque je l'applique cela me renvoie le même code d'erreur.
Cela bloque à cet endroit:

ActiveSheet.Name = Sheets("Personnel").Cells(X, 2)

J'avais peut être une dernière question sans vouloir abusé de votre temps: Est ce possible d'inclure toutes mes formules dans une ou plusieurs macro? Afin d'alléger le fichier? Quoi que je ne sois pas sur de "l'allègement".
En tout cas, merci pour votre aide
Bonne soirée à tous.
 

Statistiques des forums

Discussions
312 271
Messages
2 086 687
Membres
103 371
dernier inscrit
jade.gerbe14