Bonjour,
J'ai dans 2 userform un multipage dont les textbox, lisbox, label,.... ont le même nom pour simplifier mon programme.
J'ai créé une sub qui permet de remplir ces éléments.
Cette sub a pour paramétres nom et prenom car il faut chercher la bonne ligne dans une feuille nommé "listagent"
Le dernier paramètre est le nom de la sub à modifier
ma sub à ce code :
J'ai essayé plusieurs solutions comme définir feuille en userform, ou objet, ou worksheet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Sub cyclemodif(nom As String, pre As String, feuille As String) Dim FEUIL As UserForm Set FEUIL = feuille For z = 5 To 102 If nom = Sheets("listagent").Range("b" & z).Value And pre = Sheets("listagent").Range("c" & z).Value Then x = 5 For y = 1 To 4 'boucle pour passer les 4 semaines v = 1 FEUIL.Controls("nomagsem" & y).Caption = nom & " " & pre 'remplir le nom des agents For w = 1 To 7 'boucle pour passer tous les jours d'1 semaine FEUIL.Controls("s" & y & "_j" & w & "_hdeb").Value = Format(Sheets("listagent").Cells(z, x + v).Value, "hh:mm") v = v + 1 FEUIL.Controls("s" & y & "_j" & w & "_hfin").Value = Format(Sheets("listagent").Cells(z, x + v).Value, "hh:mm") v = v + 1 FEUIL.Controls("s" & y & "_j" & w & "_pdeb").Value = Format(Sheets("listagent").Cells(z, x + v).Value, "hh:mm") v = v + 1 FEUIL.Controls("s" & y & "_j" & w & "_pfin").Value = Format(Sheets("listagent").Cells(z, x + v).Value, "hh:mm") v = v + 1 Next w 'remplir la page cycle FEUIL.nomagsem5.Caption = nom & " " & pre num = Sheets("listagent").Range("d" & z).Value FEUIL.cyc_nbrcyc.Value = num For w = 1 To 8 'masque les cellules semaine non utilisé If FEUIL.cyc_nbrcyc.Value < w Then FEUIL.Controls("cyc_s" & w).Visible = False FEUIL.Controls("cyclab_s" & w).Visible = False End If Next w For w = 1 To num FEUIL.cyc_s1.Value = Sheets("listagent").Cells(z, w + 117).Value Next w x = x + 28 'saute d'1 semaine sur la feuille Next y Exit For End If Next z End Sub
J'ai utilisé
Code : Sélectionner tout - Visualiser dans une fenêtre à part Sub cyclemodif(nom As String, pre As String, feuil As userform)sans succés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part VBA.UserForms.Add(sVariable).
J'ai des messages d'erreurs ou les cellules ne se remplissent pas !!!!!
Il me semble l'avoir déjà fait mais je ne retrouve rien dans mes projets précédents.
merci pour votre aide
Partager