VBA : Récupération de données dans userform dynamique (textbox)
Résolu/Fermé
anton26
Messages postés
31
Date d'inscription
samedi 22 décembre 2012
Statut
Membre
Dernière intervention
25 janvier 2016
-
22 déc. 2012 à 19:18
anton26 Messages postés 31 Date d'inscription samedi 22 décembre 2012 Statut Membre Dernière intervention 25 janvier 2016 - 12 janv. 2013 à 20:57
anton26 Messages postés 31 Date d'inscription samedi 22 décembre 2012 Statut Membre Dernière intervention 25 janvier 2016 - 12 janv. 2013 à 20:57
A voir également:
- VBA : Récupération de données dans userform dynamique (textbox)
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum Programmation
- Vba dernière colonne non vide ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
6 réponses
Bon voilà la suite,
Une fois créés tes TexBox dynamiques,
Admettons que tu veuilles transférer le contenu des TextBox quand tu appuies sur un bouton CommandButton1
A+.
Une fois créés tes TexBox dynamiques,
Admettons que tu veuilles transférer le contenu des TextBox quand tu appuies sur un bouton CommandButton1
Private Sub CommandButton1_Click() Dim Ctrl As Control, CtrlName As String, CtrlIndex As Integer For Each Ctrl In Me.Controls CtrlName = Ctrl.Name If InStr(CtrlName, "TextBox") = 1 Then 'recuperation du numero du Textbox CtrlIndex = Val(Mid(CtrlName, 8)) 'MsgBox CtrlIndex Worksheets("Feuil1").Cells(1, CtrlIndex).Value = Ctrl.Text End If Next End Sub
A+.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
22 déc. 2012 à 19:31
22 déc. 2012 à 19:31
Bonsoir anton26,
Pour les essais, pourriez-vous déposer votre fichier Excel sur un site de stockage tel que "cjoint.com" en prenant la précaution d'effacer ou de remplacer toutes données confidentielles.
Pour les essais, pourriez-vous déposer votre fichier Excel sur un site de stockage tel que "cjoint.com" en prenant la précaution d'effacer ou de remplacer toutes données confidentielles.
anton26
Messages postés
31
Date d'inscription
samedi 22 décembre 2012
Statut
Membre
Dernière intervention
25 janvier 2016
22 déc. 2012 à 20:23
22 déc. 2012 à 20:23
Voici le lien pour accéder a mon fichier : https://www.cjoint.com/?BLwuxdIb3fa
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
22 déc. 2012 à 19:55
22 déc. 2012 à 19:55
Bonjour,
Voir cette démo et plus particulièrement la démo2
Dans cette démo ce n'est pas le nom qui à de l'importance, si tu veux savoir ce que le textBox contient tu n'est pas plus avancé avec une collection de classe, il te faut en plus une collection d'objets.
La démo en question te montrera comment faire.
A+
Voir cette démo et plus particulièrement la démo2
Dans cette démo ce n'est pas le nom qui à de l'importance, si tu veux savoir ce que le textBox contient tu n'est pas plus avancé avec une collection de classe, il te faut en plus une collection d'objets.
La démo en question te montrera comment faire.
A+
anton26
Messages postés
31
Date d'inscription
samedi 22 décembre 2012
Statut
Membre
Dernière intervention
25 janvier 2016
22 déc. 2012 à 23:01
22 déc. 2012 à 23:01
J'ai bien étudié cette démo mais je ne vois pas comment l'appliquer à mon problème. Pourrais tu m'éclairer sur la manière dont je pourrais m'y prendre ? Merci beaucoup
Bonsoir,
La propiété .Size n'existe pas pour TextBox, il faut mettre .FontSize
De même, le type Classe1 n'est pas défini.
Voici ton code revu et corrigé qui fonctionne
Private Sub UserForm_Initialize()
Dim Obj As Control
'Dim Cl As Classe1
Dim i As Byte
'Set Collect = New Collection
'
For i = 1 To 7 'Boucle pour la création des 7 TextBox
Set Obj = Me.Controls.Add("forms.Textbox.1")
With Obj
.Name = "TextBox" & i
'.Object.Text = .Name 'Pour contrôler le nom des TextBox créés
.Left = 5
.Top = 30 * i + 10
.Width = 50
.Height = 15
.BackColor = &HC0FFFF
.BorderStyle = 1
.FontName = "arial"
.FontBold = True
.FontSize = 9
.Enabled = True 'Ecriture
End With
'Ajout de l'objet dans la classe
'Set Cl = New Classe1
'Set Cl.TxtBx = Obj
'Collect.Add Cl
Next i
'
End Sub
A+.
La propiété .Size n'existe pas pour TextBox, il faut mettre .FontSize
De même, le type Classe1 n'est pas défini.
Voici ton code revu et corrigé qui fonctionne
Private Sub UserForm_Initialize()
Dim Obj As Control
'Dim Cl As Classe1
Dim i As Byte
'Set Collect = New Collection
'
For i = 1 To 7 'Boucle pour la création des 7 TextBox
Set Obj = Me.Controls.Add("forms.Textbox.1")
With Obj
.Name = "TextBox" & i
'.Object.Text = .Name 'Pour contrôler le nom des TextBox créés
.Left = 5
.Top = 30 * i + 10
.Width = 50
.Height = 15
.BackColor = &HC0FFFF
.BorderStyle = 1
.FontName = "arial"
.FontBold = True
.FontSize = 9
.Enabled = True 'Ecriture
End With
'Ajout de l'objet dans la classe
'Set Cl = New Classe1
'Set Cl.TxtBx = Obj
'Collect.Add Cl
Next i
'
End Sub
A+.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
anton26
Messages postés
31
Date d'inscription
samedi 22 décembre 2012
Statut
Membre
Dernière intervention
25 janvier 2016
22 déc. 2012 à 20:21
22 déc. 2012 à 20:21
Merci a tous les trois d'utiliser de votre temps pour me renseigner.
En effet Yoda mon programme fonctionne, mais je souhaiterai maintenant récupérer les noms rentrés dans les textbox afin de les ranger dans une feuille.
J'ai essayé avec : Worksheets("Feuil1").Cells(1,i).Value = textboxi
mais cela ne fonctionne pas.
En effet Yoda mon programme fonctionne, mais je souhaiterai maintenant récupérer les noms rentrés dans les textbox afin de les ranger dans une feuille.
J'ai essayé avec : Worksheets("Feuil1").Cells(1,i).Value = textboxi
mais cela ne fonctionne pas.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
22 déc. 2012 à 21:37
22 déc. 2012 à 21:37
C'est comme j'explique dans mon poste précédant.
Regarde la démo.
Regarde la démo.
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
22 déc. 2012 à 21:04
22 déc. 2012 à 21:04
Bonsoir anton26,
Je ne puis faire fonctionner ta macro .. tu as dû supprimer trop de choses .. soit.
Tes Userforms sont dynamiques .. ok
Quand tu tentes de récupérer les valeurs des UserForms:
- est-ce que les Userforms sont encore "en vie" ?
- tu récupère à partir d'un autre UserForm ?
Je ne puis faire fonctionner ta macro .. tu as dû supprimer trop de choses .. soit.
Tes Userforms sont dynamiques .. ok
Quand tu tentes de récupérer les valeurs des UserForms:
- est-ce que les Userforms sont encore "en vie" ?
- tu récupère à partir d'un autre UserForm ?
22 déc. 2012 à 23:21
12 janv. 2013 à 20:57