Garder en mémoire les données d'une userform après fermeture

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

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

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour

    Pour quoi la boucle For j = 2 to 11 ? j n'est utilisé nul part !!!
    0
  2. thomanneca
     
    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
    0
  3. thomanneca
     
    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
    0
  4. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    0
    1. thomanneca
       
      oui tout à fait, je dois changer cela.
      Je ne m'y étais pas encore attardé étant donné que l'objectif premier est de faire revenir l'info, après je verrai pour raccourcir s'il y a moyen..
      0
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Heuuu nan, ça ne fonctionne pas tout à fait comme ça ... Si l'algo n'est pas bon, le code ne fonctionnera pas !!! et ici l'algo ne donne pas ce que tu cherches à faire ...

      Tu dis avoir réussi à sauvegarder les infos de l'UF dans une feuille ... peux-tu mettre ici le code stp ?
      0
    3. thomanneca
       
      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
      0
    4. thomanneca
       
      voici le code et jusque la, tout fonctionne correctement.
      me reste à conserver les données lors de la fermeture du fichier..
      0
    5. Polux31 Messages postés 7219 Statut Membre 1 204
       
      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.
      0