Test sur variable pour Userform

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
 

mutzik

XLDnaute Barbatruc
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
 

GillesC

XLDnaute Occasionnel
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à :)
 

GillesC

XLDnaute Occasionnel
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"
 

jp14

XLDnaute Barbatruc
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:

jp14

XLDnaute Barbatruc
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
 

GillesC

XLDnaute Occasionnel
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! :)
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
327
Réponses
22
Affichages
804

Statistiques des forums

Discussions
312 364
Messages
2 087 624
Membres
103 624
dernier inscrit
PhilduMorvan