UserFom Boucle For Next pour charger valeur cellule dans textbox [Résolu/Fermé]

Signaler
-
Messages postés
2
Date d'inscription
jeudi 18 août 2011
Statut
Membre
Dernière intervention
8 mai 2016
-
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,

1 réponse

Messages postés
15220
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 mai 2020
1 289
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 !!!!!

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
Messages postés
15220
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 mai 2020
1 289 > Emilieilime74
Re,

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

Merci beaucoup pour votre aide !