Microsoft 365 Création d'un onglet automatique

Roseline

XLDnaute Occasionnel
Bonjour,

J'ai besoin de votre aide dans mon nouveau fichier. Je m'explique. J'ai un onglet qui se nomme "Template" Je voudrais qu'à partir de cet onglet, on complète les informations dans les cellules A3, B3 et C3.
Lorsque les cellules sont complétées, je voudrais qu'en cliquant sur le bouton "contact", qu'un nouvel onglet soit créer de façon identique au Template mais qu'il soit nommé comme celui inscrit dans la cellule A3.
Si, en inscrivant un nom dans la cellule A3, celui-ci correspond à un onglet existant, je veux qu'un message demande un mot de passe pour faire afficher cet onglet car le nom est déjà existant. Le mot de passe est en relation avec le nom de l'accompagnateur.
C'est donc dire que mes onglets doivent toujours demeurer masqué, le seul onglet visible reste le "Template" Le classeur devra donc être protégé.

De plus, j'ajouterai l'adresse courriel du contact dans la colonne D et d'une tierce personne donc j'aimerais être capable d'envoyer une invitation par courriel automatiquement pour toutes les dates qui seront inscrites dans la colonne C en une seule et unique fois aux personnes inscrites dans la colonne D.

Merci de votre aide et bonne journée
 

Pièces jointes

  • Liste contact.xlsm
    26.8 KB · Affichages: 11

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Roseline, bonsoir le forum,

Un code à affecter au bouton contact :

VB:
Sub Contact()
Dim OT As Worksheet 'déclare la variale OT (Onglet Template)
Dim CEL As Range 'déclare la variale CEL (CELlule)
Dim O As Worksheet 'déclare la variale O (Onglet)

Set OT = Worksheets("Template") 'définit l'onglet OT
For Each CEL In OT.Range("A3:C3") 'boucle sur toutes les cellules CEL de la plage A3:C3
    If CEL.Value = "" Then 'condition : si la cellule est vide
        MsgBox "Vous devez renseigner cette cellule !" 'message
        CEL.Select 'sélectionne la celllule
        Exit Sub 'sort de la procédure
    End If 'fin de la condition
Next CEL 'prochaine cellule de la plage
For Each O In Sheets 'boucle sur tous les onglets O du classeur
    If O.Name = OT.Range("A3").Value Then 'condition : si le nom de l'onglet est égal à la valeur de la cellue A3 de l'onglet OT
        MsgBox "Un onglet portant le nom de " & Chr(34) & OT.Range("A3").Value & Chr(34) & " exite déjà !" 'message
        Exit Sub 'sort de la procédure
    End If 'fin de la condition
Next O 'prochain onglet de la boucle
OT.Copy after:=Sheets(Sheets.Count) 'copy l'onglet OT en dernière position
ActiveSheet.Name = OT.Range("A3").Value 'renomme l'onglet
OT.Range("A3:C3").ClearContents 'efface les données de l'onglet OT
End Sub
 

Roseline

XLDnaute Occasionnel
Bonsoir Roseline, bonsoir le forum,

Un code à affecter au bouton contact :

VB:
Sub Contact()
Dim OT As Worksheet 'déclare la variale OT (Onglet Template)
Dim CEL As Range 'déclare la variale CEL (CELlule)
Dim O As Worksheet 'déclare la variale O (Onglet)

Set OT = Worksheets("Template") 'définit l'onglet OT
For Each CEL In OT.Range("A3:C3") 'boucle sur toutes les cellules CEL de la plage A3:C3
    If CEL.Value = "" Then 'condition : si la cellule est vide
        MsgBox "Vous devez renseigner cette cellule !" 'message
        CEL.Select 'sélectionne la celllule
        Exit Sub 'sort de la procédure
    End If 'fin de la condition
Next CEL 'prochaine cellule de la plage
For Each O In Sheets 'boucle sur tous les onglets O du classeur
    If O.Name = OT.Range("A3").Value Then 'condition : si le nom de l'onglet est égal à la valeur de la cellue A3 de l'onglet OT
        MsgBox "Un onglet portant le nom de " & Chr(34) & OT.Range("A3").Value & Chr(34) & " exite déjà !" 'message
        Exit Sub 'sort de la procédure
    End If 'fin de la condition
Next O 'prochain onglet de la boucle
OT.Copy after:=Sheets(Sheets.Count) 'copy l'onglet OT en dernière position
ActiveSheet.Name = OT.Range("A3").Value 'renomme l'onglet
OT.Range("A3:C3").ClearContents 'efface les données de l'onglet OT
End Sub
Bonjour Robert,
Wow Wow Wow c'est magique et en plein ce que je voulais. Je vais pouvoir adapter le code en fonction de mon fichier. Où j'ai encore des difficultés c'est quand je veux envoyer un courriel automatique à partir des adresses courriels inscrites dans la colonne D. De plus, si j'ai déjà un onglet de créer avec un nom X, je suis incapable de mettre la programmation demandant un mot de passe pour accéder à l'onglet déjà existant.
Merci encore de votre précieuse aide
Bonne journée
 

Roseline

XLDnaute Occasionnel
Bonjour,
J'ai encore des difficultés avec la programmation de mon fichier. Quand je veux envoyer un courriel automatique à partir des adresses courriels inscrites dans la colonne D. De plus, si j'ai déjà un onglet de créer avec un nom X, je suis incapable de mettre la programmation demandant un mot de passe pour faire afficher l'onglet déjà existant.
Quelqu'un aurait une idée pour m'aider encore une fois.
Merci de votre précieuse aide
Bonne journée
 

Discussions similaires

Réponses
7
Affichages
451