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:
UserFom Boucle For Next pour charger valeur cellule dans textbox
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 !!!!!
Emilieilime74
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
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
Si vous voulez remplir les objets d'une UF avec des donnees feuille, oui, evenement activate ou initialize pour faire ce job