Microsoft 365 onglets Excel

colda

XLDnaute Nouveau
Bonjour tout le monde.
Désolé si le topic a déjà été résolu, mais je ne parviens pas à faire ceci :
J'ai créé un classeur pour bulletins d'élèves.
Dans ce classeur, la première feuille contient en colonne A la liste des élèves.
Les autres feuilles sont - entre autres - les bulletins de chaque gamin.
En case A1 de chacune de ces feuilles "bulletin" se trouve une formule du type : ='liste élèves'!A2 ou A3 ou...
Comment SVP nommer automatiquement les onglets par la cellule A1 de chaque feuille (ou de la liste en feuille 1, colonne A) ?
Mille mercis par avance.
Bien cordialement,

Colda
 

GALOUGALOU

XLDnaute Accro
bonjour le forum
re colda
la macro ci-dessous crée un onglet selon la liste d'élèves référencés dans la feuil1. Elle inscrit dans chaque cellule A1 le nom de l'élève. si un onglet existe, la création est ignorée.

VB:
Sub Ajouter_Feuilles()
Dim j As Long
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False


Set ws = Sheets("Feuil1") 'feuille contenant la liste des noms
For j = 2 To ws.Range("A" & Rows.Count).End(xlUp).Row 'boucle sur colonne A
If Not FeuilleExiste(ws.Range("A" & j).Value) Then
Sheets("Base_bulletin").Copy after:=Sheets(Sheets.Count) 'base bulletin est copié coller puis renommé
ActiveSheet.Name = ws.Range("A" & j)
 With ActiveWorkbook.ActiveSheet.Tab
.Color = 65535 'onglet de couleur jaune
'.TintAndShade = 0
End With
Range("A1") = ActiveSheet.Name ' Met le nom de la feuille dans la cellule F3
End If
Next j
ws.Select
MsgBox "Exécution terminée"

Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

'Si l'onglet  existe déjà, il n'est pas créé
Function FeuilleExiste(Nom As String) As Boolean
On Error Resume Next
FeuilleExiste = Sheets(Nom).Name <> ""
On Error GoTo 0
End Function
cdt
galougalou
 

Pièces jointes

  • création onglet élève.xlsm
    21.1 KB · Affichages: 7

colda

XLDnaute Nouveau
bonjour le forum
re colda
la macro ci-dessous crée un onglet selon la liste d'élèves référencés dans la feuil1. Elle inscrit dans chaque cellule A1 le nom de l'élève. si un onglet existe, la création est ignorée.

VB:
Sub Ajouter_Feuilles()
Dim j As Long
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False


Set ws = Sheets("Feuil1") 'feuille contenant la liste des noms
For j = 2 To ws.Range("A" & Rows.Count).End(xlUp).Row 'boucle sur colonne A
If Not FeuilleExiste(ws.Range("A" & j).Value) Then
Sheets("Base_bulletin").Copy after:=Sheets(Sheets.Count) 'base bulletin est copié coller puis renommé
ActiveSheet.Name = ws.Range("A" & j)
 With ActiveWorkbook.ActiveSheet.Tab
.Color = 65535 'onglet de couleur jaune
'.TintAndShade = 0
End With
Range("A1") = ActiveSheet.Name ' Met le nom de la feuille dans la cellule F3
End If
Next j
ws.Select
MsgBox "Exécution terminée"

Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

'Si l'onglet  existe déjà, il n'est pas créé
Function FeuilleExiste(Nom As String) As Boolean
On Error Resume Next
FeuilleExiste = Sheets(Nom).Name <> ""
On Error GoTo 0
End Function
cdt
galougalou
Merci bcp.
J'ai testé le script.
Il est très complet, mais j'avais omis de décrire par le menu l'ensemble de mon classeur.
Et bien sûr, ça bloque à quelques endroits.
Grand merci.

Colda
 

Discussions similaires

Statistiques des forums

Discussions
311 735
Messages
2 082 023
Membres
101 873
dernier inscrit
excellllll