UserFom Boucle For Next pour charger valeur cellule dans textbox

Résolu/Fermé
Emilieilime74 - Modifié par pijaku le 10/05/2016 à 08:55
locacit Messages postés 2 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 8 mai 2016 - 8 mai 2016 à 22:14
Bonjour,

Tout d'abord je vous remercie tous car c'est en parcourant le forum que j'ai trouvé l'aide dont j'avais besoin.

Pour ce point, malgré le fait que j'ai parcouru plusieurs forums et testé plusieurs formules, je suis coincée.

J'ai un userform (UserForm1) avec 54 TextBox et 19 ComboBox.

Mon objectif est d'enregistrer les données saisies dans le formulaire et de les recharger lors d'une prochaine ouverture du fichier.

D'après ce que j'ai compris, il faut copier les valeurs des Textbox et ComboBox dans des cellules, pour cela j'ai utilisé cette macro :

Private Sub ENREGISTRER_Click()
'Copie des valeur du formulaire dans une feuille du classeur

Dim i As Integer
'Définie la variable i

With Sheets("SAUVEGARDE2")
' Va dans l'onglet correspondant pour toutes les prochaines étapes

  ' Les textBox
For i = 1 To 54
'soit i un chiffre entre 1 et 54 (aussi bien pour les lignes que pour les numéros de textbox)

 .Range("A" & i).Value = UserForm1.Controls("TextBox" & i + 1).Value
 'Recopie les données dans la colonne A
Next i

' Les comboBox
For i = 1 To 19
'soit i un chiffre entre 1 et 54 (aussi bien pour les lignes que pour les numéros de combobox)

.Range("B" & i).Value = UserForm1.Controls("ComboBox" & i + 1).Value
 'Recopie les données dans la colonne B
Next i

End With
End Sub


Là ou je coince, c'est pour recharger les valeurs des cellulles dans les textbox et les combobox, j'ai plus ou moins inversé la formule mais ça coince :

Private Sub Save_Form()
  
Dim i As Integer
'Définie la variable i

With Sheets("SAUVEGARDE2")
' Va dans l'onglet correspondant pour toutes les prochaines étapes

  ' Les textBox
For i = 1 To 54
'soit i un chiffre entre 1 et 54 (aussi bien pour les lignes que pour les numéros de textbox)

 .UserForm1.Controls("TextBox" & i).Value = Range("A" & i + 1).Value
 'Recopie les données dans la colonne A
Next i

' Les comboBox
For i = 1 To 19
'soit i un chiffre entre 1 et 54 (aussi bien pour les lignes que pour les numéros de combobox)

 .UserForm1.Controls("ComboBox" & i).Value = Range("B" & i + 1).Value
 'Recopie les données dans la colonne B
Next i

End With
End Sub



Au niveau de la ligne :

.UserForm1.Controls("TextBox" & i).Value = Range("A" & i + 1).Value

J'ai "Erreur d'execution '438' : Propriété ou méthode non gérée par cet objet"

Je ne comprends pas ce qui m'échappe.

D'avance Merci pour vos lumières et Bon Après-Midi,
A voir également:

1 réponse

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711
18 avril 2016 à 14:31
Bonjour,

pour cette ligne le point en debut, erreur de doigts ou .......????

.UserForm1.Controls("TextBox" & i).Value = Range("A" & i + 1).Value

et celle-ci

.UserForm1.Controls("ComboBox" & i).Value = Range("B" & i + 1).Value

parce que y en faut pas !!!!!
0
Emilieilime74
18 avril 2016 à 14:56
hem hem ... je me doutais que ça venait d'un truc tout bête ... ! Merci !

Bon là pas de message d'erreur mais il ne se passe rien en revanche, quand j'ouvre mon formulaire alors que j'avais enregistré des données avant (qui se retrouvent bien dans les cellules de sauvegarde ...)

A tous les coups ça doit venir de ma formule, je dois mettre un initialize ou un activate plutôt qu'un simple call non ?

Sub Bouton4_Cliquer()

Call Save_Form
UserForm1.Show
'Ouvrir le formulaire


End Sub
1
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711 > Emilieilime74
18 avril 2016 à 15:39
Re,

Si vous voulez remplir les objets d'une UF avec des donnees feuille, oui, evenement activate ou initialize pour faire ce job
0
locacit Messages postés 2 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 8 mai 2016
8 mai 2016 à 22:14
Merci beaucoup pour votre aide !
0