maninwhite
XLDnaute Occasionnel
Bonjour à toutes et à tous
Après avoir crée un formulaire userform qui me permet de reporter les données dans un tableau excel, j'aimerai réalisé l'inverse.
C'est à dire reporter les données du tableau excel dans l'userform.
Mais je n'arrive pas à le faire pour certains bouts de code, que moi même je n'avais aps écrit et que j'ai du mal à comprendre.
Ci dessous le code qui me permet de transférer les valaurs dans le tableau, le but étant de me donner le code pour le contraire 🙂
Le code contraiore sera bien entendu placé dans UserForm_Initialize
Si l y a besoin d'explications pour le code, n'hésitez pas...
Merci
Après avoir crée un formulaire userform qui me permet de reporter les données dans un tableau excel, j'aimerai réalisé l'inverse.
C'est à dire reporter les données du tableau excel dans l'userform.
Mais je n'arrive pas à le faire pour certains bouts de code, que moi même je n'avais aps écrit et que j'ai du mal à comprendre.
Ci dessous le code qui me permet de transférer les valaurs dans le tableau, le but étant de me donner le code pour le contraire 🙂
Le code contraiore sera bien entendu placé dans UserForm_Initialize
Code:
Dim p As MSForms.Page, c As Control, i As Integer, x As Long, T() As Variant
For Each p In reporter_un_incident_part2.MultiPage_KE.Pages
For Each c In reporter_un_incident_part2.MultiPage_KE.Pages(p.Name).Controls
If TypeName(c) = "CheckBox" Then
If c.Value = True Then
i = i + 1
ReDim Preserve T(1 To i)
T(i) = c.Caption
End If
End If
Next c
Next p
If i = 0 Then
Call MsgBox("Vous n'avez coché aucun system defects", vbExclamation, Application.Name)
ElseIf i > 4 Then Call MsgBox("Vous avez coché plus de 4 system defects", vbExclamation, Application.Name)
Else:
Do While UBound(T) < 4
i = i + 1
ReDim Preserve T(1 To i)
T(i) = "Non applicable"
Loop
x = Columns(22).Find("", Cells(Rows.Count, 22), xlValues, , 1, 1, 0).Row
Cells(x, 22).Resize(1, Columns.Count - 21).Find("", Cells(x, Columns.Count), xlValues, , 2, 1, 0).Resize(1, UBound(T)).Value = T
With Sheets("report")
.Cells(.Cells(Rows.Count, "U").End(xlUp).Row + 1, "U") = reporter_un_incident_part2.ComboBox_immediate_cause.Value
End With
End If
Si l y a besoin d'explications pour le code, n'hésitez pas...
Merci