initialisation spinbutton

errog

XLDnaute Junior
Bonjour,
J'ai bcoup de pb avec lesinitialisations des objets contenus dans un USF, par exemple , j'ai dans le module1 tapé

For j = 1 To 5
UserForm1.SpinButton1.Value = 1
UserForm1.Show
Tableau(j)=qq
Next j


et dans le USF1

Private Sub SpinButton1_Change()
qq = UserForm1.SpinButton1.Value
End Sub


Si je ne touche pas à spinbutton, la valeur est celle de l'itération précédente dans la boucle, or je voudrais qu'elle soit par défaut 1.

Merci :)
 

Pierrot93

XLDnaute Barbatruc
Re : initialisation spinbutton

Bonjour Errog

si j'ai bien compris, le mieux ne serait t il pas de modifier la valeur de ton spinbutton lors de l'initialisation de ton USF :

Code:
Private Sub UserForm_Initialize()
SpinButton1.Value = 1
End Sub

bonne journée
@+
 

fanfan38

XLDnaute Barbatruc
Re : initialisation spinbutton

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...

A+ François
 

errog

XLDnaute Junior
Re : initialisation spinbutton

Rebonjour,

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 ?:confused:

Merci
 

errog

XLDnaute Junior
Re : initialisation spinbutton

Rebonjour,

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 ?:confused:

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : initialisation spinbutton

Re

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.

bonne soirée
@+
 

errog

XLDnaute Junior
Re : initialisation spinbutton

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
 

errog

XLDnaute Junior
Re : initialisation spinbutton

Rebonjour,
J'ai joint le fichier excel zippé.
le module se nomme essai ( raccourci CTRL d)

taper un nom
Pour chaque critere selectionner unniveau

Le pb : si je décide de rentrer dans l'ordre des criteres , les niveaux respectifs
2 1 1 3 1

pour les 1 ( val par défaut a priori ), je ne touche pas au spinbutton

l'affichage ajouté pour visualer ce qui a ete pris en compte me donne
2 2 2 3 2

Autrement dit si le spinbutton n'estpas actionné, le spinbutton conserve la valeur précédente.

Merci
 

Pièces jointes

  • CRITERE.zip
    45.3 KB · Affichages: 62
  • CRITERE.zip
    45.3 KB · Affichages: 63
  • CRITERE.zip
    45.3 KB · Affichages: 72

Pierrot93

XLDnaute Barbatruc
Re : initialisation spinbutton

Re

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.

bon courage
@+
 

errog

XLDnaute Junior
Re : initialisation spinbutton

Rebonjour,

Je débute ( ya 1 semaine, je ne conaissais pas le terme vba :D)
Tu me proposes defaire tourner la boucle dans l'usf ?

Sinon si je garde ma structure existante, comment décharger l'usf des anciennes valeurs ?
Merci
 

errog

XLDnaute Junior
Re : initialisation spinbutton

REREbonjour,

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.
 

Discussions similaires

Statistiques des forums

Discussions
312 611
Messages
2 090 219
Membres
104 452
dernier inscrit
hamzamounir