Microsoft 365 Macro ouvrir une feuille créée par une autre macro

Josvin

XLDnaute Nouveau
Bonjour à tous,

J'aimerais savoir s'il est possible de créer une macro permettant d'ouvrir une feuille qui n'est pas encore créée (car créée par le biais d'une autre macro).
Je m'explique :
Dans ma base de données, pour chaque personne (une par ligne), j'aimerais qu'il soit possible (en cliquant sur un bouton de commande) de créer une feuille (qui sera un formulaire à remplir, donc avec un format prédéfini), et qu'en cliquant sur un autre bouton, on puisse accéder à ce formulaire pour le consulter et/ou le compléter.
En effet, si je me contente d'un seul bouton, soit il générera un nouveau formulaire à chaque clic (et on ne pourra donc plus le consulter), soit je serai obligé de créer tous les formulaires en avance (sachant que toute personne n'aura pas obligatoirement un formulaire, et aussi que c'est relativement fastidieux...).

Je vous joins mon tableau avec les boutons tels que je les aimerais, sans les macros. Et avec un formulaire déja créé au format spécifique pour exemple.

Merci d'avance pour votre aide :)

Josvin
 

Pièces jointes

  • Bouton_Macro_Josvin.xlsm
    95.5 KB · Affichages: 11

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Josvin,
Une autre approche qui ne nécessite qu'un bouton pour tout faire.
Ce qui est un plus si vous avez une grande liste.
1.jpg

avec cette petite macro :
VB:
Sub Acceder()
Dim Sh As Worksheet, Existe As Boolean
If ActiveCell.Value = "" Then Exit Sub
If ActiveCell.Column > 2 Then Exit Sub
SheetName = Cells(ActiveCell.Row, "A") & " " & Cells(ActiveCell.Row, "B")   ' Récupération nom prénom
Existe = False
For Each Sh In ActiveWorkbook.Sheets    ' pour toutes les feuilles
    If Sh.Name = SheetName Then         ' si une feuille porte ce nom
        Existe = True                   ' on dit qu'elle existe
        Sh.Activate                     ' on l'active
        Exit Sub                        ' on sort
    End If
Next Sh
If Existe = False Then                  ' si elle n'existe pas, on la crée et on la renomme
    Sheets("Formulaire").Copy After:=Worksheets(Sheets.Count)
    Sheets(Sheets.Count).Select
    ActiveSheet.Name = SheetName
End If
End Sub
 

Pièces jointes

  • Bouton_Macro_Josvin (1).xlsm
    74.1 KB · Affichages: 3

Pounet95

XLDnaute Occasionnel
Bonsoir Josvin
Une idée à étudier peut-être :
Partant d'un tableau structuré ( Tb_BD ) et en utilisant l'évènement Worsheet_SelectionChange de la feuille le contenant , en fonction de la cellule qui est sélectionnée ( dans colonne Nom par exemple ), lancer via macro soit la création d'une feuille avec le formulaire en question à partir d'un modèle caché, soit si la feuille existe y accéder et la manipuler, voire aussi la supprimer.
Cela éviterait de créer effectivement 100000 boutons ?

Claude alias Pounet95
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Pounet,
C'est récurent. On y peut rien, on fait avec.
Mais comme tout le monde s'est fait prendre au piège, plus personne n'y fait attention. :)
@ Josvin ,
l'idée de Pounet est excellente, on pourrait masquer toutes les feuilles et ne faire apparaitre que celle qui est demandée ?
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA