Appeler un Textbox à l'aide d'une variable
Résolu
Villette54
Messages postés
300
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai un petit soucis avec VBA, je souhaite partager une variable entre deux USF et afin de réutiliser cette variable dans une commande (je pense que c'est surtout ici que se trouve le problème).
Pour résumer, j'ai dans mon premier USF plusieurs textbox destinées à accueillir des dates, mon second USF est un calendrier où nous choisissons la date et la réimplantons dans le premier USF.
Jusqu'ici tout fonctionne très bien, le soucis est que pour que ma macro actuelle fonctionne, il me faut un USF calendrier pour chaque textbox destiné à acceuillir une date puisque je spécifie le nom de ma textbox dans l'USF calendrier. Je souhaite donc créer une variable afin de ne pas multiplier les USF calendrier (J'ai 10 textbox pouvant acceuillir des dates)
Voici ce que j'ai fais :
Dans un module j'ai declaré ma variable
Dans mon premier USF j'ai créé un bouton à coté de chaque textbox pouvant accueillir une date sur ce modèle :
Et enfin sur mon USF calendrier, je choisis de réimplanter la date selectionné :
Je suis désolé, je m'y prend certainement très mal...
Merci d'avance pour votre aide.
J'ai un petit soucis avec VBA, je souhaite partager une variable entre deux USF et afin de réutiliser cette variable dans une commande (je pense que c'est surtout ici que se trouve le problème).
Pour résumer, j'ai dans mon premier USF plusieurs textbox destinées à accueillir des dates, mon second USF est un calendrier où nous choisissons la date et la réimplantons dans le premier USF.
Jusqu'ici tout fonctionne très bien, le soucis est que pour que ma macro actuelle fonctionne, il me faut un USF calendrier pour chaque textbox destiné à acceuillir une date puisque je spécifie le nom de ma textbox dans l'USF calendrier. Je souhaite donc créer une variable afin de ne pas multiplier les USF calendrier (J'ai 10 textbox pouvant acceuillir des dates)
Voici ce que j'ai fais :
Dans un module j'ai declaré ma variable
Public date2 As Date Public CaseDate As String
Dans mon premier USF j'ai créé un bouton à coté de chaque textbox pouvant accueillir une date sur ce modèle :
Sub Calendar1_Click() CaseDate = Echeance1 'nom de ma textbox Calendrier1.Show vbModeless End Sub
Et enfin sur mon USF calendrier, je choisis de réimplanter la date selectionné :
'Traitement.Echeance1.value = date2 'ceci fonctionne mais je dois donc créer un USF calendrier pour chaque nom de textbox Traitement.CaseDate.Value = date2 'Ceci ne fonctionne pas (il cherche qqch nommé CaseDate sur mon USF directement) mais cela me permettrait de tout gérer avec le meme calendrier. Traitement.Show vbModeless Unload Me
Je suis désolé, je m'y prend certainement très mal...
Merci d'avance pour votre aide.
A voir également:
- Appeler un Textbox à l'aide d'une variable
- Appeler en privé - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Je peux appeler mais pas recevoir d'appel sur mon portable - Forum Réseaux sociaux
- Appeler en france du canada ✓ - Forum Mobile
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
2 réponses
Bonjour,
Essaye peut être :
Si CaseDate est un String ça devrait le faire...
Essaye peut être :
Traitement.Controls(CaseDate).Value = date2
Si CaseDate est un String ça devrait le faire...
J'ai retiré quelques données, mais je t'ai laissé deux exemples et les quelques données de base pour que le fichier soit utilisable.
Je m'excuse par avance, car il risque de te brûler les yeux... notamment au niveau du code que j'ai créé moi-même, des formules ou même de la mise en page...
Encore merci pour ton aide.
http://cjoint.com/data3/3Hgpzfp92mU.htm
Je m'excuse par avance, car il risque de te brûler les yeux... notamment au niveau du code que j'ai créé moi-même, des formules ou même de la mise en page...
Encore merci pour ton aide.
http://cjoint.com/data3/3Hgpzfp92mU.htm
Regarde ton fichier en retour.
Je t'ai fait les4 premiers boutons "+". Ils fonctionnent bien.
Par contre, Calendar est le nom d'un contrôle VBA. J'ai donc renommé tes boutons Calendrier...
Je t'ai fait les4 premiers boutons "+". Ils fonctionnent bien.
Par contre, Calendar est le nom d'un contrôle VBA. J'ai donc renommé tes boutons Calendrier...
Bonjour Pikaju,
Effectivement, l'implantation de la date se fait sans soucis.
Mais si tu essayes de modifier le texte avant (ex : je change la description de l'incident, je met une date d'échéance puis je valide --> mes modifications dans la description ne sont pas prise en compte, car l'USF s'est initialiser lors de l'utilisation du calendrier (regarde en step by step)
Par contre, je n'arrive pas à utiliser le fichier que tu m'as envoyé dès que je clique sur un + il me met un "Compil Error: Method or data member not found" sur le calendrier1 alors qu'il est bien là avec le bon nom (Je deteste la version d'Excel que nous avons au boulot, j'ai souvent des erreurs sans explication comme ça alors que je ne les ai pas à la maison)
Encore merci, pour ton aide.
Effectivement, l'implantation de la date se fait sans soucis.
Mais si tu essayes de modifier le texte avant (ex : je change la description de l'incident, je met une date d'échéance puis je valide --> mes modifications dans la description ne sont pas prise en compte, car l'USF s'est initialiser lors de l'utilisation du calendrier (regarde en step by step)
Par contre, je n'arrive pas à utiliser le fichier que tu m'as envoyé dès que je clique sur un + il me met un "Compil Error: Method or data member not found" sur le calendrier1 alors qu'il est bien là avec le bon nom (Je deteste la version d'Excel que nous avons au boulot, j'ai souvent des erreurs sans explication comme ça alors que je ne les ai pas à la maison)
Encore merci, pour ton aide.
Salut,
"Compil Error: Method or data member not found"
Ma faute, ma très grande faute....
J'ai nommé un bouton de commande Calendrier1 tout comme l'userform... Passe bien en renommant l'userform Calendrier.
Par contre, je n'arrive pas à reproduire le second bug. Pour moi tout va bien...
Le fichier avec quelques modifications (notamment dans le module 1)
https://www.cjoint.com/?DHhihUymFko
"Compil Error: Method or data member not found"
Ma faute, ma très grande faute....
J'ai nommé un bouton de commande Calendrier1 tout comme l'userform... Passe bien en renommant l'userform Calendrier.
Par contre, je n'arrive pas à reproduire le second bug. Pour moi tout va bien...
Le fichier avec quelques modifications (notamment dans le module 1)
https://www.cjoint.com/?DHhihUymFko
Ok pour la solution du premier bug... Je n'avais meme pas remarqué je manque vraiment de pratique...
Pour ce qui est du second bug, j'ai réussi à le solutionner avec une nouvelle variable pour me faire passer outre la procedure initialize, donc cela ne me posera plus de soucis.
Merci d'avoir retravailler un peu mon module 1, j'avais effectivement eu quelques difficultés pour le créer (en même temps j'avais pas initialisé ma variable...).
Je pense que tous les problèmes évoqués ont été solutionnés... Merci beaucoup.
Puis-je me permettre d'abuser de ta bonté en te demandant de jetter un oeil à un autre de mes soucis ici ? Ou dois-je recréer un sujet adapté (qui pourra peut-être aider d'autres personnes) ?
Il s'agit principalement d'alimentation/affichage dans les textbox (le format de la date, et faire en sorte qu'il y est des menus déroulants dépendants).
Encore merci.
Pour ce qui est du second bug, j'ai réussi à le solutionner avec une nouvelle variable pour me faire passer outre la procedure initialize, donc cela ne me posera plus de soucis.
Merci d'avoir retravailler un peu mon module 1, j'avais effectivement eu quelques difficultés pour le créer (en même temps j'avais pas initialisé ma variable...).
Je pense que tous les problèmes évoqués ont été solutionnés... Merci beaucoup.
Puis-je me permettre d'abuser de ta bonté en te demandant de jetter un oeil à un autre de mes soucis ici ? Ou dois-je recréer un sujet adapté (qui pourra peut-être aider d'autres personnes) ?
Il s'agit principalement d'alimentation/affichage dans les textbox (le format de la date, et faire en sorte qu'il y est des menus déroulants dépendants).
Encore merci.
Merci pour ton aide.
En essayant ta solution, je me suis rendu compte d'un autre problème (qui existait déjà avant mais que je n'avais surement pas remarqué)...
En effet, avant d'executer cette ligne :
VBA retourne sur mon USF "Traitement' et lance Userform_Initialize, ce qui me pause problème puisque cela reprend les valeurs de base de mon USF donc si des modifications ont été faite avant de choisir la date, tout est perdu... (et en l'occurence fait planter ma macro car il y'a une valeur qu'il n'arrive pas à récupérer). Est-il possible d'empêcher le lancement de cette procedure, et donc de voir si ta solution fonctionne ?
Merci d'avance,
ou
Normalement traitement.Hide ne fait que masquer l'userform et donc ne relance pas Initialize. A vérifier toutefois.
Sinon ne ferme pas traitement et utilises les propriétés Modales de tes userform...
Au début je ne fermais aucun USF j'utilisais les propriétés modales (plutôt non modales) pour que Calendrier1, "passe au dessus" de traitement. sans rien fermer.
Mais ne connaissant pas toutes les particularités d'un USF non modale je me suis résigné à juste .hide mon "Traitement" ... Et enfin en désespoir de cause, j'ai essayé de Unload mon "Traitement".
Dans les 3 cas, au moment d'executer cette ligne
VBA relance l'initialisation de traitement.
Je ne comprends vraiment pas pourquoi cette procedure se relance à chaque fois...
En lien l'USF complet, je ne sais pas si cela pourra t'aider. Pour ma part, je ne comprend pas 90% de ces procedures car l'USF n'est pas de moi et j'ai gardé le code dans l'état.
http://cjoint.com/data3/3HgpcBZSioi.htm
PS : Ma question n'a plus rien à voir avec le sujet d'origine désolé.
Edit : Erreur dans le lien.