Boucler la copie de textbox vers des cellules
VerreABallon
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
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
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:
- Boucler la copie de textbox vers des cellules
- Copie caché - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
- Copie disque dur - Guide
- Verrouiller des cellules excel - Guide
1 réponse
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
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