Exprimer un userform avec une variable

syl0038

XLDnaute Junior
Bonjour,
Je viens vers vous pour m'aider à simplifier mon code.
Comment peux t'on simplifier cela :
Cells(2, 1) = UserForm1.TextBox1.Value
Cells(2, 2) = UserForm1.TextBox2.Value

J'aimerais insérer une varaible dans l'écriture de mon Userform, pour avoir qq chose comme cela :
For i = 1 To 1
Cells(2, 1) = ____("UserForm" & "i").TextBox1.Value
Cells(2, 2) = ____("UserForm" & "i").TextBox2.Value
Next i

Je vous remercie par avance de votre aide.
Syl0038
 

Pièces jointes

  • Syl0038.xlsm
    20.9 KB · Affichages: 39
  • Syl0038.xlsm
    20.9 KB · Affichages: 46
  • Syl0038.xlsm
    20.9 KB · Affichages: 43

syl0038

XLDnaute Junior
Re : Exprimer un userform avec une variable

Ci joint l'exemple réel que j'aimerais simplifier avec une variable :

Sub variable_lucru1_0()

Lucru1.TextBox_pregatire_utilaj.Value = 0
Lucru1.TextBox_interventie_matrita.Value = 0
Lucru1.TextBox_curatare_matrita.Value = 0
Lucru1.TextBox_mentenanta.Value = 0
Lucru1.TextBox_lipsa_material.Value = 0
Lucru1.TextBox_curatenie.Value = 0
Lucru1.TextBox_altele.Value = 0
Lucru1.TextBox_invoire.Value = 0

End Sub

Sub variable_lucru2_0()

Lucru2.TextBox_pregatire_utilaj.Value = 0
Lucru2.TextBox_interventie_matrita.Value = 0
Lucru2.TextBox_curatare_matrita.Value = 0
Lucru2.TextBox_mentenanta.Value = 0
Lucru2.TextBox_lipsa_material.Value = 0
Lucru2.TextBox_curatenie.Value = 0
Lucru2.TextBox_altele.Value = 0
Lucru2.TextBox_invoire.Value = 0
End Sub

Sub variable_lucru3_0()

Lucru3.TextBox_pregatire_utilaj.Value = 0
Lucru3.TextBox_interventie_matrita.Value = 0
Lucru3.TextBox_curatare_matrita.Value = 0
Lucru3.TextBox_mentenanta.Value = 0
Lucru3.TextBox_lipsa_material.Value = 0
Lucru3.TextBox_curatenie.Value = 0
Lucru3.TextBox_altele.Value = 0
Lucru3.TextBox_invoire.Value = 0
End Sub

Sub variable_lucru4_0()

Lucru4.TextBox_pregatire_utilaj.Value = 0
Lucru4.TextBox_interventie_matrita.Value = 0
Lucru4.TextBox_curatare_matrita.Value = 0
Lucru4.TextBox_mentenanta.Value = 0
Lucru4.TextBox_lipsa_material.Value = 0
Lucru4.TextBox_curatenie.Value = 0
Lucru4.TextBox_altele.Value = 0
Lucru4.TextBox_invoire.Value = 0
End Sub
 

mutzik

XLDnaute Barbatruc
Re : Exprimer un userform avec une variable

bonjour

dim ctrl as control
for each ctrl in Lucru4.controls
if ctrl.name like "tb1_*" then ctrl.value =0
next

ce code permet de mettre à 0 tous les controles qui commencent par tb1_ (pour textbox catégorie 1 dans ma façon de coder)
 

Pierrot93

XLDnaute Barbatruc
Re : Exprimer un userform avec une variable

Re,

regarde ceci, fonctionne dans un module standard, il faut que les usf en question soient chargés en mémoire...
Code:
Dim u As UserForm
For Each u In UserForms
    MsgBox u.TextBox1.Value
Next u

Edition : Aarf un peu en retard moi.... pas vu les 2 derniers posts bonjour Bertrand:)
 

syl0038

XLDnaute Junior
Re : Exprimer un userform avec une variable

J'ai essayé le code que m'a donné Pierrot93 dans un autre fichier excel et cela fonctionne très bien.
J'ai adapté ce code dans mon fichier est la j ai une erreur 438 que je n'arrive pas à me débarasser.

Quelqu'un aurait il la gentileese de m'aider?
Le bout de code se trouve dans module 1.
Le code est 38520.

Pour utiliser ce code avec les userforms.
Il faut sélectionner dans l'userform lucru2 "5S" puis rentrer un temps et valider.
Les données dans l'userform lucru1 ne sont pas en relation.

En vous remerciant par avance!!
 

Pièces jointes

  • AV_Inregistrare_10_1.xlsm
    258 KB · Affichages: 67

Pierrot93

XLDnaute Barbatruc
Re : Exprimer un userform avec une variable

Re,

je ne comprends pas ceci :
Code:
      Dim u As Variant
            u = Lucru1

"u = Lucru1" ne me parrais pas utile.... pour initialiser une variable objet faire précéder de "set" :
Code:
Set u = Lucru1

A noter également le type de donnée pour ta variable que je t'ai donné est "UserForm" et non "variant"
 

syl0038

XLDnaute Junior
Re : Exprimer un userform avec une variable

Merci Pierrot pout ta réponse mais cela ne fonctionne toujours pas.
Voila la code que j'ai écrit.

Je veux me servir de ce code pour ne pas devoir écrire un code pour lucru1, un code pour lucru 2 etc....


Sub test()

Dim u As UserForm
Set u = Lucru1
For Each u In UserForms
u.TextBox_pregatire_utilaj.Value = 0
u.TextBox_interventie_matrita.Value = 0
u.TextBox_curatare_matrita.Value = 0
u.TextBox_mentenanta.Value = 0
u.TextBox_lipsa_material.Value = 0
u.TextBox_curatenie.Value = 0
u.TextBox_altele.Value = 0
u.TextBox_invoire.Value = 0
Next u


End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Exprimer un userform avec une variable

Re,

ceci devrait suffire :
Code:
Sub test()

Dim u As UserForm
For Each u In UserForms
u.TextBox_pregatire_utilaj.Value = 0
u.TextBox_interventie_matrita.Value = 0
u.TextBox_curatare_matrita.Value = 0
u.TextBox_mentenanta.Value = 0
u.TextBox_lipsa_material.Value = 0
u.TextBox_curatenie.Value = 0
u.TextBox_altele.Value = 0
u.TextBox_invoire.Value = 0
Next u

Code:
For Each u In UserForms
permet de boucler sur tous les userforms chargés en mémoire....
 

syl0038

XLDnaute Junior
Re : Exprimer un userform avec une variable

C'est presque cela mais je veux le faire juste sur certains userforms.
C'est pour cela que j'avais utilisé à la base u = Lucru1 pour réaliser ce code seulrment pour l'userfom "Lucru1".

(Merci Pierrot pour ta patiente et ton aide)
 

Paf

XLDnaute Barbatruc
Re : Exprimer un userform avec une variable

bonjour à tous,

le problème survient du fait que For Each u In UserForms "ramène" tous les userform, y compris l'userform Information_op qui ne contient pas les textbox des autres userform.

Il faudrait ne déclencher l'action que si le userform n'est pas Information_op en rajoutant un code du style

If u.Name <> "Information_op" Then

bonne suite
 

Pierrot93

XLDnaute Barbatruc
Re : Exprimer un userform avec une variable

Re, bonjour paf

A noter que l'objet userform ne possède pas de propriété "name".... tu peux également passer l'usf en paramètre, dans le module de l'usf quand tu appele ta sub :
Code:
Option Explicit
Public Sub UserForm_Click()
test Me
End Sub

ta sub dans un module standard :
Code:
Option Explicit
Sub test(u As UserForm)
MsgBox u.TextBox1.Value
End Sub
 

Paf

XLDnaute Barbatruc
Re : Exprimer un userform avec une variable

re et bonjour Pierrot93

l'objet userform ne possède pas de propriété "name"....
et pourtant dans la boucle For Each u In UserForms, le code : Msgbox u.Name affiche bien le nom de la userform !

mais le problème n'est pas là et je n'ai plus trop suivi le besoin .

A+
 

Discussions similaires

Réponses
6
Affichages
281

Statistiques des forums

Discussions
312 444
Messages
2 088 481
Membres
103 867
dernier inscrit
nykostinson