Macro ouvrir une feuille créée par une autre macro
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
Bonjour,
Je n'ai pas compris le besoin précis mais voici un exemple de fonctionnement en passant l'objet feuille en paramètre, de manière à ce que la macro fonctionne de façon dynamique. Il y a également une fonction de contrôle de l'existence de la feuille pour éviter d'ouvrir quelque chose qui n'existe pas.
Sub OuvrirFeuille(Feuille as worksheet)
Feuille.activate
End sub
Sub FeuilleExiste(NomFeuille as string) as boolean
Dim ws as worksheet
for each ws in worksheets 'pour chaque feuille
if ws.name = NomFeuille then 'si feuille en cours = NomFeuille
FeuilleExiste = True 'renvoie oui
exit function
end if
next
End function
Sub MacroPrincipale()
Dim FeuilleCible as worksheet
Dim NomCible$
NomCible = Range("A1").value '<<<< adapter
if FeuilleExiste(NomCible) then 'si feuille portant le nom NomCible existe
Set FeuilleCible = Sheets(NomCible) 'affectation
Call OuvrirFeuille(FeuilleCible) 'ouverture FeuilleCible
end if
End subCdlt,
Bonjour à tous,
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
Evitez la création d'une nouvelle feuille puisque ce n'est qu'une copie de votre onglet "Formulaire"
- Pour commencer l'utilisation de l'enregistreur macro vous permettra d'avoir une idée de certaines lignes de code comme :
1) Dupliquer l'onglet formulaire. ( en cas de duplication l'onglet nouvellement créé devient celui actif )
2) Vous pouvez donc y ajouter un code pour renommer l'onglet actif. "Activesheet.name="manouvellefeuille"
3) concernant les boutons je me contenterai d'un seul bouton. création formulaire. avec une selection du nom dans la colonne A afin de pouvoir récupérer le
numéro de ligne qui pourrait être utilisé dans la suite du code.