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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

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
 
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 ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
21
Affichages
2 K
Retour