Boucler la copie de textbox vers des cellules

Fermé
VerreABallon - 14 août 2009 à 18:26
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 14 août 2009 à 19:10
Bonjour,

Je galère (comme pas mal de personnes visiblement!) sur un code VBA. Je souhaite enregistrer sur une ligne le contenu de 20 texbox. Toutes les valeurs des Textbox sont numeriques si cela a une importance.
En fait c'est une macro qui doit editer un ligne d'un de mes tableaux. J'ai deja recupérer le numéro de la ligne à modifier, qui est contenu dans la variable (public) NumLigne. L'objectif est bien entendu que chaque textbox renvoie toujours sur la meme colonne.
Voici le code que j'ai tenté, mais je me fais toujours renvoyé par VBA lorsque j'execute.
Pour info, ma userform est Userform1.
Si quelqu'un peut me sortir de ce pétrin je l'en remercierai beaucoup.
Merci d'avance!

Sub EnregistrerModif()

'Declaration des Variables
'*************************

Dim j As Integer
Dim NameBox As Object
j = 1
For j = 1 To 20
Sheets("Feuil2").Select
Range("A1").Offset(NumLigne - 1, j).Value = UserForm1.Controls("TextBox" & i).Value
Next j
End Sub
A voir également:

1 réponse

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
14 août 2009 à 19:10
Bonjour,

Pas trop envie de me construire un formulaire donc ma réponse sera approximative...
Fais l'inverse, boucle sur tes contrôles et regarde si son nom t'interesse, si oui met à jour la cellule concernée.

For Each Ctrl In Me.Controls
If Left(Ctrl.Name, 7) = "TextBox" Then
j = CInt(Mid(Ctrl.Name, 8))
Range("A1").Offset(NumLigne - 1, j).Value = Ctrl.Value
End If
Next Ctrl

Il y a sûrement des erreurs (tu restes sur ("TextBox" & i).Value et tu remplis plusieurs colonnes, pas moi) mais tu comprendras je pense le principe pour remplir les cellules correctement.

eric
0