Test sur variable pour Userform

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 !

GillesC

XLDnaute Occasionnel
Bonjour le forum

Mon problème :
Je veux récupérer une valeur pouvant se trouver dans 5 colonnes.
Pour cela je les stocke au moyen de :
Theme_Sec1 = ActiveCell.Offset(0, 31)
Theme_Sec2 = ActiveCell.Offset(0, 32)
etc.

Et s'il y a des valeurs, je veux qu'elles alimentent mon Userform
Donc je fais :
For i = 1 To 5
If .Controls("Theme_Sec" & CStr(i)) <> "" Then
Seulement voilà, ça ne marche pas, il plante sur le .Controls et ne trouve pas ma valeur.
Je suppose que le .Controls ne fonctionne que pour une valeur contenue dans le userform, alors ma question :
Quelle syntaxe utiliser pour tester des variables hors USF
Merci d'avance et bonne journée
 
Re : Test sur variable pour Userform

bonjour à tous,

en plus de la remarque judicieuse de Skoobi, je rajouterai que tu n'as pas besoin de convertir ta variable de boucle i en cstr(i)
Me.Controls("Theme_Sec" & i) devrait fonctionner très bien
 
Re : Test sur variable pour Userform

Bonjour,

Si tu écris ".Controls", il faut une structure With... End With:

With Userform1
If .Controls(....
.........
........
End With

Est-ce le cas?
Bonjour Skoobi
Oui mon usf se nomme Tableau_Saisie, et j'ai bien un "With Tableau_Saisie"
D'ailleurs auparavant ce programme fonctionnait très bien quand je stockais ces variables dans une Textbox de mon Usf.
Mais je l'ai modifié et je ne rapatrie plus ces données, je veux juste faire un test sur les valeurs de mon tableau et non sur celles stockées dans un Textbox.
Voilà 🙂
 
Re : Test sur variable pour Userform

bonjour à tous,

en plus de la remarque judicieuse de Skoobi, je rajouterai que tu n'as pas besoin de convertir ta variable de boucle i en cstr(i)
Me.Controls("Theme_Sec" & i) devrait fonctionner très bien


Bonjour Mutzik,
merci de ta réponse,
mais Me.Controls("Theme_Sec" & i) ne marche pas non plus.
Tant que je stockais mes variables dans des textbox (nommées F_Theme_Sec (i) ) il n'y avait pas de problème, mais maintenant que je les cherche directement dans mon tableau le ".Controls" plante, cela me met : "Objet spécifié introuvable"
 
Re : Test sur variable pour Userform

Bonjour

Quels sont les contrôles de l'USF nommé "Theme_Sec" & i ?

Pour tester des variables hors USF il faut que les variables soient des variables publiques. dans ce cas il ne faut pas les considérer comme des contrôles.
Il faut modifier
If .Controls("Theme_Sec" & CStr(i)) <> "" Then
par If Theme_Sec(i) <> "" Then
avec pour Theme_Sec(i) une déclaration de ce type
Public Theme_Sec(10) as string
et
Theme_Sec(1) = ActiveCell.Offset(0, 31)

JP
 
Dernière édition:
Re : Test sur variable pour Userform

Bonjour

Pour renseigner les différents contrôles il faut que l'USF soit ouvert.
Il faut modifier la séquence d'appel des procédures.
Remplacer : Call Saisie_Visites_2007 par
Tableau_Saisie.Show
supprimer .show dans Saisie_Visites_2007
et rajouter la procédure
Private Sub UserForm_Initialize()
Call Saisie_Visites_2007
End Sub


JP
 
Re : Test sur variable pour Userform

Re bonjour,
Merci à tous de vos aides, même si je n'ai pas réussi à solutionner mon problème.
J'ai contourné le souci en insérant des Textbox dans mon Userform et en les alimentant avec mes variables. J'ai réduit ces textbox pour qu'ils n'apparaissent pas et, si ce n'est pas très satisfaisant intellectuellement, au moins CA MARCHE! 🙂
 
- 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
1
Affichages
472
W
Retour