Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Bonjour
Un fichier exemple aurait été le bienvenu...
Pourquoi la boucle for j=1 to 5?
Comme tu le saisie il faut que tu quitte userform1 pour continuer la boucle...
on ne met pas un userform.show dans une boucle...
car le fait de mettre userform.show tu donnes la main à l'userform et tant que tu n'as pas quitter l'userform tu n'as plus la main...
Dans le USF, j'ai un spinbutton et des fenetres texte et j'utilise ce formulaire a cinq reprises (d'ou la boucle ) , la valeur sélectionnée par le spinbutton est alors stockée dans un tableau ( d'ou les valeurs Tableau(1),...,Tableau(5) ).
D'autre part, comme je débute vraiment, je ne comprends pas ou je dois placer la suggestion de Pierrot 93 dans le userform ? dans le module principal ?
Dans le USF, j'ai un spinbutton et des fenetres texte et j'utilise ce formulaire a cinq reprises (d'ou la boucle ) , la valeur sélectionnée par le spinbutton est alors stockée dans un tableau ( d'ou les valeurs Tableau(1),...,Tableau(5) ).
D'autre part, comme je débute vraiment, je ne comprends pas ou je dois placer la suggestion de Pierrot 93 dans le userform ? dans le module principal ?
le code que j'avais donné est à placer dans le module de l'usf, mais je saisis pas trop ton histoire de boucle, et le ré
sultat attendu pas ce code. Si tu rencontres d'autres problèmes, mets ton fichier en pièce jointe, sans données confidentiellles, ce sera plus facile pour t'aider.
Bonjour,
Pour etre clairs,soyons précis : voila a suivre le module principal "SAISIE" et
l'USF1 ( j'ai élagué qq déclarations )
L'objectif est de mesurer 5 criteres sur plusieurs individus : chaque critère
comporte 5 niveaux.
Pour chaque critère le formulaire de saisie est le meme sauf le contenu des fenetres TextBox1 a 5(intitulés des niveaux 1 a 5 pour le critere concerné) qui est chargé dans la boucle du module SAISIE
l'USF1 retourne pour le critere en cours la valeur valspin du spinbutton qui est alors stockée dans un tableau.
Le problème est le suivant : si on ne touche pas le spinbutton , on devrait avoir valspin = 1 mais si je veux par exemple saisir
critere 1 niveau 5 ( on bouge le spinbutton)
critere 2 niveau 1 ( on ne bouge pas le spinbutton : valeur par defaut )
la valeur effective prise par le critere2 est 5 , cest-a-dire celle du critere1 : sans action sur le spinbutton au cours du deuxieme appel de l'USF, la valeur prise n'est pas la valeur par défaut, mais la valeur prise par le spinbutton lors du premier appel de l'USF.
J'espère que c'est assez clair
Merci pour les remarques éclairées
PHP:
Public valspin As Integer
Sub SAISIE()
Dim .......
Dim .......
' boucle critere-niveau
For critere = 1 To 5
' chargement du texte des TextBox de l'USF1 par les intitulés des
niveaux du critere en cours
For niveau = 1 To 5
UserForm1.Controls("TextBox" & niveau) =
Worksheets("TRAME").Range("A1").Offset(niveau, critere)
Next niveau
'stockage du niveau obtenu par l'individu pour le critere
RESULTAT(individu, critere) = valspin
Next k
Next critere
individu = individu + 1
End Sub
>>>>>>>> USERFORM1 >>>>>>>
PHP:
Private Sub SpinButton1_Change()
Dim k As Integer
TextBox1.BackColor = RGB(198, 210, 210)
For k = 1 To 5
If k = SpinButton1 Then
Controls("Textbox" & k).BackColor = RGB(198, 210, 210)
Else
Controls("Textbox" & k).BackColor = RGB(255, 255, 255)
End If
Next k
valspin = UserForm1.SpinButton1.Value
TextBoxvaleur = SpinButton1
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub TextBoxvaleur_Change()
End Sub
Private Sub TextBox2_Change()
End Sub
Private Sub TextBox3_Change()
End Sub
Private Sub TextBox4_Change()
End Sub
Private Sub TextBox5_Change()
End Sub
Private Sub UserForm_Initialize()
SpinButton1.Value = 1
End Sub
Private Sub CommandButton2_Click()
Unload UserForm1
End Sub
Private Sub UserForm_Click()
End Sub
pas top cette façon de procéder... mettre dans un module standard des instructions en boucle, intervenant sur les objets d'un usf, de ce fait l'usf est chargé en mémoire mais jamais déchargé... ce qui explique que tu retrouves tes anciennes valeurs...
je mettrais plutôt le code directement dans l'usf, et le chargerait au lancement de la macro, mais bon... je ne suis pas dans ton projet, et n'ai qu'une vu trop parcellaire du problème.
Finalement autant bosser proprement, je refonds tout et je vais appeler une seule fois l'USF et tourner dedans avec un compteur qui permettra de réactualiser l'affichage des fenetres et je reverrai a ce moment la si le pb de valeur par défaut se reproduit.
Donc merci et certainement à tres bientot.
eric.
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.