Garder en mémoire les données d'une userform après fermeture
thomanneca
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
J'aimerais conserver en mémoire lors d'une réouverture de mon fichier excel les données précédemment introduite dans mon userform.
J'arrive à les stocker sur une autre page mais je ne parviens pas à aller les rechercher.
Voici mon code :
Private Sub JoursFeries_Click() 'quand je clic sur un bouton, mon userform s'ouvre
userform1.Show
'ou même plus simplement pour un test :
merci d'avance
J'aimerais conserver en mémoire lors d'une réouverture de mon fichier excel les données précédemment introduite dans mon userform.
J'arrive à les stocker sur une autre page mais je ne parviens pas à aller les rechercher.
Voici mon code :
Private Sub JoursFeries_Click() 'quand je clic sur un bouton, mon userform s'ouvre
userform1.Show
For i = 1 To 30
For j = 2 To 11
userform1.Controls("TextBox" & i).Value = Sheets("data vba").Range("B" & i + 1).Value
Next
Next
'ou même plus simplement pour un test :
userform1.textbox1.value=sheets("data vba").range("B2").value
End Sub
merci d'avance
4 réponses
-
Bonjour
Pour quoi la boucle For j = 2 to 11 ? j n'est utilisé nul part !!!
-
oui pardon,
Private Sub JoursFeries_Click() 'quand je clic sur un bouton, mon userform s'ouvre
userform1.Show
For i = 1 To 30
For j = 2 To 11
userform1.Controls("TextBox" & i).Value = Sheets("data vba").Range("B" & j + 1).Value
Next
Next -
en fait je crois bien que cela ne marchera pas en effet. Reprenons un simple retour de donnée pour une cellule alors, je regarderai après pour les autres
Private Sub JoursFeries_Click()
userform1.Show
userform1.textbox1.value=sheets("data vba").range("B2").value
même cela ne marche pas -
Tu as donc 30 textboxes mais il n'y a que 10 cellules de renseignées !!! tu as la valeur de la même cellule dans 3 textboxes ?
Pourquoi faire For j = 2 to 11 pour ensuite faire Range("B" & j + 1).Value ?
Autant faire For j = 3 to 12 ? non ?
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau-
-
-
Private Sub BoutonValiderJoursFeries_Click()
Application.ScreenUpdating = False
With Sheets("data vba")
.[B2] = userform1.TextBox1.Value
.Range("C2") = userform1.TextBox2.Value
.Range("D2") = userform1.TextBox3.Value
.Range("B3") = userform1.TextBox4.Value
.Range("C3") = userform1.TextBox5.Value
.Range("D3") = userform1.TextBox6.Value
.Range("B4") = userform1.TextBox7.Value
.Range("C4") = userform1.TextBox8.Value
.Range("D4") = userform1.TextBox9.Value
.Range("B5") = userform1.TextBox10.Value
.Range("C5") = userform1.TextBox11.Value
.Range("D5") = userform1.TextBox12.Value
.Range("B6") = userform1.TextBox13.Value
.Range("C6") = userform1.TextBox14.Value
.Range("D6") = userform1.TextBox15.Value
.Range("B7") = userform1.TextBox16.Value
.Range("C7") = userform1.TextBox17.Value
.Range("D7") = userform1.TextBox18.Value
.Range("B8") = userform1.TextBox19.Value
.Range("C8") = userform1.TextBox20.Value
.Range("D8") = userform1.TextBox21.Value
.Range("B9") = userform1.TextBox22.Value
.Range("C9") = userform1.TextBox23.Value
.Range("D9") = userform1.TextBox24.Value
.Range("B10") = userform1.TextBox25.Value
.Range("C10") = userform1.TextBox26.Value
.Range("D10") = userform1.TextBox27.Value
.Range("B11") = userform1.TextBox28.Value
.Range("C11") = userform1.TextBox29.Value
.Range("D11") = userform1.TextBox30.Value
End With -
-
Il suffit de faire l'inverse ...
C'est à dire:
With userform1 .TextBox1.Text = Sheets("data vba").Range("B2").Value .TextBox2.Text = Sheets("data vba").Range("C2").Value .TextBox3.Text = Sheets("data vba").Range("D2").Value ' .... etc ... End With
Et de coller ça dans l'évènement UserForm_Initialize() de l'userform1.
-