Generateur affiche animation

Bonjour à tous

je cherche à crée un fichier excel qui génère des affiches pré définis , l'utilisateur doit remplir via un userform les informations qu'il désire voir apparaitre sur son affiche ( date,lieu,commentaire ) .

les différents thèmes accessible sont déjà pré définis ( onglet avec la matrice thème, les positions ou les informations finiront etc...)

je dois maintenant trouvé le moyen de remplir les textbox de l'onglet avec les informations inscrite dans l'userform.

merci pour votre aide

Bonsoir,

Ta question n'est que l'affectation de données saisies dans une feuille (identifiée par un choix dans le Userform)... Rien de bien sorcier mais comme ton module est vide, que tu n'as fourni aucune indication d'affectation, que l'insertion sera à faire dans des Shapes, lesquels ne sont pas pré-mis en forme... tout est à faire donc ! et je n'aurai vraiment pas le temps de m'y consacrer...

J'appelle cependant ton attention sur ta commande d'ouverture de l'Userform :

Sub show()
    UserForm1.show modal
End Sub

D'une part, on évite d'utiliser des mots-clés du code comme noms de procédures ou de variables. Certains sont purement interdits, et VBA te le fait savoir... mais ceux qui ne le sont pas peuvent créer des confusions. Dans ton cas, tu intitules ta procédure show (avec initiale minuscule), ce qui conduit VBA à s'aligner sur toi en mettant show au lieu de Show pour la méthode d'affichage du Userform ! Ce qui n'a l'air de rien mais est un élément perturbateur : lorsqu'on programme, on tape systématiquement le code en minuscules, et VBA passe automatiquement l'initiale des mots-clés en majuscule (sauf pour ceux qui relèvent d'autres applications), ce qui est un moyen simple et efficace de surveiller les fautes de frappe qui génèreraient des erreurs d'exécution qu'il faudra rectifier par la suite... On peut donc gagner un temps conséquent par le simple respect de cette règle.

D'autre part, avec cette commande ton Userform s'ouvrira en non modal ! modal n'est pas un mot-clé du code, c'est donc pour VBA une variable, non déclarée (il est toujours souhaitable de déclarer toutes ses variables), non typée (donc de type Variant, il est préférable de les typer dans la majorité des cas), non initialisée (dont la valeur est donc Empty [vide], qui s'assimilera à "" [texte vide] en contexte textuel ou 0 en contexte numérique). Or l'argument optionnel de Show est une valeur booléenne, et modal=0 sera équivalent à False (ou à la constante vbModeless [=0]).

Pour l'ouvrir en modal, il faudrait mettre True ou vbModal [=1], ou bien mieux : ne rien mettre car l'ouverture par défaut d'un Userform se fait en modal.

Par ailleurs utiliser cet argument sur la méthode Show impliquerait que plusieurs commandes ouvriront le Userform, certaines l'ouvrant en modal, d'autres en non modal. Sans cela, rien ne justifie son utilisation : si on veut modifier cette propriété d'ouverture du Userform, on la définit par défaut dans la fenêtre de propriété lors de la conception (propriété ShowModal) et on ne s'en préoccupe plus par la suite...

Il faut ajouter qu'un Userform étant normalement et le plus souvent utilisé pour que l'utilisateur n'intervienne pas directement dans la feuille et que l'on puisse le cas échéant contrôler la saisie, l'ouverture normale d'un Userform est en modal, ce qui est la situation par défaut sans que l'on ait besoin d'intervenir. L'ouverture en non modal ne se justifie que pour des utilisations relativement marginales de Userforms.

Cordialement.

Rechercher des sujets similaires à "generateur affiche animation"