Excell Textbox
Résolu/Fermé
anocheda
Messages postés
54
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
17 novembre 2008
-
22 juil. 2008 à 16:39
anocheda - 12 août 2008 à 14:44
anocheda - 12 août 2008 à 14:44
A voir également:
- Excell Textbox
- Formule excell - Guide
- Liste déroulante excell - Guide
- Somme excell - Guide
- Excell viewer - Télécharger - Tableur
- Excell 2013 - Télécharger - Tableur
18 réponses
antic80
Messages postés
4751
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 159
22 juil. 2008 à 17:31
22 juil. 2008 à 17:31
salut
au lieu de mettre textbox i , essaye avec textbox & i
au lieu de mettre textbox i , essaye avec textbox & i
anocheda
Messages postés
54
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
17 novembre 2008
3
22 juil. 2008 à 18:00
22 juil. 2008 à 18:00
Bonjour,
J'y ai cru ca aurait été parfait mais ca marche pas....
j'ai le code suivant
For i = 1 To 9
Me.Joueur&i.Value = Me.TextBox&i.Value
Next i
je veux que la valeur de Joueur1 soit egale a TextBox1
...Joueur9=Textbox9
il me met membre de méthode ou de donnée introuvable...
merci si tu as une autre idée
J'y ai cru ca aurait été parfait mais ca marche pas....
j'ai le code suivant
For i = 1 To 9
Me.Joueur&i.Value = Me.TextBox&i.Value
Next i
je veux que la valeur de Joueur1 soit egale a TextBox1
...Joueur9=Textbox9
il me met membre de méthode ou de donnée introuvable...
merci si tu as une autre idée
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
22 juil. 2008 à 19:08
22 juil. 2008 à 19:08
Bonjour,
Tu peu essayer en créyant une collection..
VBA et les collections
A+
Tu peu essayer en créyant une collection..
VBA et les collections
A+
anocheda
Messages postés
54
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
17 novembre 2008
3
22 juil. 2008 à 19:24
22 juil. 2008 à 19:24
Salut,
J'avou que je comprend pas tres bien ce que fait le truc
j suis un gros debutant en VBA (je m'y suis mi hier!!!) et je saias pas trop a quoi sert ce code...
voila si tu connais plus simple hesit pas
merci
J'avou que je comprend pas tres bien ce que fait le truc
j suis un gros debutant en VBA (je m'y suis mi hier!!!) et je saias pas trop a quoi sert ce code...
voila si tu connais plus simple hesit pas
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
m@rina
Messages postés
20202
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
11 mai 2024
11 279
22 juil. 2008 à 19:41
22 juil. 2008 à 19:41
Bonjour,
Tout d'abord, où se trouve tes textbox ? Dans ta feuille ou dans une Userform ?
m@rina
Tout d'abord, où se trouve tes textbox ? Dans ta feuille ou dans une Userform ?
m@rina
anocheda
Messages postés
54
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
17 novembre 2008
3
22 juil. 2008 à 19:43
22 juil. 2008 à 19:43
Salut,
Bé je penses qu'elles sont dans la feuilles : j'ai utilisé diretcement la boite a outil controles...
je sais pas ce que c'est un UserForm
Bé je penses qu'elles sont dans la feuilles : j'ai utilisé diretcement la boite a outil controles...
je sais pas ce que c'est un UserForm
m@rina
Messages postés
20202
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
11 mai 2024
11 279
22 juil. 2008 à 20:18
22 juil. 2008 à 20:18
Re...
Voilà déjà ce qu'il fallait savoir ! Des contrôles dans une feuille ne se traitent pas de la même façon que des contrôles dans une Userform.
Mais comme dans ton exemple tu mets : "Me", je ne comprenais pas car Me fait référence au formulaire qui contient les contrôles...
Voilà le code que tu peux utiliser :
Sub zdt()
Dim zdt As OLEObject
For Each zdt In ActiveSheet.OLEObjects
If Left(zdt.Name, 7) = "TextBox" Then 'teste le nom des objets
'tu mets ici tes actions
End If
Next zdt
End Sub
Voilà déjà ce qu'il fallait savoir ! Des contrôles dans une feuille ne se traitent pas de la même façon que des contrôles dans une Userform.
Mais comme dans ton exemple tu mets : "Me", je ne comprenais pas car Me fait référence au formulaire qui contient les contrôles...
Voilà le code que tu peux utiliser :
Sub zdt()
Dim zdt As OLEObject
For Each zdt In ActiveSheet.OLEObjects
If Left(zdt.Name, 7) = "TextBox" Then 'teste le nom des objets
'tu mets ici tes actions
End If
Next zdt
End Sub
anocheda
Messages postés
54
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
17 novembre 2008
3
22 juil. 2008 à 20:35
22 juil. 2008 à 20:35
Bonjour Marina,
Mon probleme c'est qu'il leur arrive pas tous la meme chose me TextBox, enfin presque :
ce que je veux c'est :
TextBox1 = Joueur1
TextBox2 = Joueur2
..
TextBoxN= JoueurN
et le nombre N est le nombre de Joueur ... donc en plus je peux pas faire un "For each "
c'est pourquoi je cherche a faire un For i = 1 a N puisque mon N change.... mais bno ca c'est pas tres grave pour l'instat..
j'aimerai donc juste changer le numero de ma textbox par un variable
En fai ce que je veux faire c'est un jeu de carte avec excell
le truc chiant a faire pour l'instant c'est d'associer mes cartes a des images...
c'est un peu comme le poker donc chaque joueur a 2 cartes
j'ai reussi a melamger mon jeu et faire la donne et mais joueur ont des cartes "ecrites" avec par exemple Aco pour l'As de coeur
ce que je veux c'est associer cette valeure a une image d'une carte.
J'ai reussi a le faire mais ca prend ultra de place
la premiere carte du joueur 1 s'appel Carte11 la deuxieme Carte12
la premiere carte du joueur 2 s'appel Carte21 la deuxieme Carte22
....
jusque nombre de joueur qui est inferieur a 9 ( au max o na Carte91 et Carte92)
ensuite j'ai toute mes image enregistée sous la forme Image1 a Image52 (mes cartes).
et j'ai une serie d'image qui representent un dos de carte appelées Carte11, Carte12...
pour chaque textboxe je fais:
If Carte11="Aco" then Carte11= Image1
If Carte11="Rco" then Carte11= Image2
...
52 fois !!!
ce qui me ferait 9*2*52 lignes et ca me donne pas envi
donc j'aimerai le faire une seul fois pour une carte " Carte(i,j) et faire varier i de 1 a 9 et j de 1 a 2
Voila,
J'ai tout balancé d'une traite mais c'est a peu pres ca
si tu as une idée merci
Antoine
Mon probleme c'est qu'il leur arrive pas tous la meme chose me TextBox, enfin presque :
ce que je veux c'est :
TextBox1 = Joueur1
TextBox2 = Joueur2
..
TextBoxN= JoueurN
et le nombre N est le nombre de Joueur ... donc en plus je peux pas faire un "For each "
c'est pourquoi je cherche a faire un For i = 1 a N puisque mon N change.... mais bno ca c'est pas tres grave pour l'instat..
j'aimerai donc juste changer le numero de ma textbox par un variable
En fai ce que je veux faire c'est un jeu de carte avec excell
le truc chiant a faire pour l'instant c'est d'associer mes cartes a des images...
c'est un peu comme le poker donc chaque joueur a 2 cartes
j'ai reussi a melamger mon jeu et faire la donne et mais joueur ont des cartes "ecrites" avec par exemple Aco pour l'As de coeur
ce que je veux c'est associer cette valeure a une image d'une carte.
J'ai reussi a le faire mais ca prend ultra de place
la premiere carte du joueur 1 s'appel Carte11 la deuxieme Carte12
la premiere carte du joueur 2 s'appel Carte21 la deuxieme Carte22
....
jusque nombre de joueur qui est inferieur a 9 ( au max o na Carte91 et Carte92)
ensuite j'ai toute mes image enregistée sous la forme Image1 a Image52 (mes cartes).
et j'ai une serie d'image qui representent un dos de carte appelées Carte11, Carte12...
pour chaque textboxe je fais:
If Carte11="Aco" then Carte11= Image1
If Carte11="Rco" then Carte11= Image2
...
52 fois !!!
ce qui me ferait 9*2*52 lignes et ca me donne pas envi
donc j'aimerai le faire une seul fois pour une carte " Carte(i,j) et faire varier i de 1 a 9 et j de 1 a 2
Voila,
J'ai tout balancé d'une traite mais c'est a peu pres ca
si tu as une idée merci
Antoine
m@rina
Messages postés
20202
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
11 mai 2024
11 279
22 juil. 2008 à 23:33
22 juil. 2008 à 23:33
Non, tu n'as pas besoin de ifor i to ...
Tu reprends ma macro et là où j'ai mis "tu mets tes actions", c'est là où tu renommes tes textbox, ce qui donne :
Sub zdt()
Dim zdt As OLEObject
Dim i As Integer
For Each zdt In ActiveSheet.OLEObjects
If Left(zdt.Name, 7) = "TextBox" Then 'teste le nom des objets
i = i + 1
zdt.Name = "joueur" & i
End If
Next zdt
End Sub
Tu reprends ma macro et là où j'ai mis "tu mets tes actions", c'est là où tu renommes tes textbox, ce qui donne :
Sub zdt()
Dim zdt As OLEObject
Dim i As Integer
For Each zdt In ActiveSheet.OLEObjects
If Left(zdt.Name, 7) = "TextBox" Then 'teste le nom des objets
i = i + 1
zdt.Name = "joueur" & i
End If
Next zdt
End Sub
Salut Marina,
Ok j ai compri ca a l'air parfait mais il reconnait pas as Left... il me dit que ca existe pas
est ce que c'est bien ecrit?
merci
Ok j ai compri ca a l'air parfait mais il reconnait pas as Left... il me dit que ca existe pas
est ce que c'est bien ecrit?
merci
m@rina
Messages postés
20202
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
11 mai 2024
11 279
24 juil. 2008 à 23:45
24 juil. 2008 à 23:45
Bonsoir,
Non, il n'y a pas de faute.
La condition
If Left(zdt.Name, 7) = "TextBox"
permet de vérifier que les contrôles sont bien des textbox (et pas d'autres contrôles). Ca vérifie que les 7 premiers caractères gauches du nom sont bien les caractères TextBox. Il faut bien respecter les majuscules dans lettres de TextBox.
m@rina
Non, il n'y a pas de faute.
La condition
If Left(zdt.Name, 7) = "TextBox"
permet de vérifier que les contrôles sont bien des textbox (et pas d'autres contrôles). Ca vérifie que les 7 premiers caractères gauches du nom sont bien les caractères TextBox. Il faut bien respecter les majuscules dans lettres de TextBox.
m@rina
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
25 juil. 2008 à 13:53
25 juil. 2008 à 13:53
Bonjour tous,
Petite modification de la macro de marina,
Remarque: Il faut qu'il y ai toujours 52 joueurs puisque 52 textBox,
De plus, les Textbox ne serront pas toujours lu par ordre numérique, ce pourraît être 1 2 5 3 4 etc..
Si pas toujours 52 joueur, rectification macro par..
A+
Petite modification de la macro de marina,
Sub zdt() Dim zdt As OLEObject Dim i As Integer For Each zdt In ActiveSheet.OLEObjects If TypeOf zdt.Object Is MSForms.TextBox Then i = i + 1 zdt.TEXT = "joueur" & i End If Next zdt End Sub
Remarque: Il faut qu'il y ai toujours 52 joueurs puisque 52 textBox,
De plus, les Textbox ne serront pas toujours lu par ordre numérique, ce pourraît être 1 2 5 3 4 etc..
Si pas toujours 52 joueur, rectification macro par..
Sub zdt() 'Renommer les textBox 1 à 9 par TextBox01, TextBox02 etc.. 'Connaître le nombre de joueurs à affichés Dim NBjoueurs As Integer Dim zdt As OLEObject Dim i As Integer NBjoueurs = 10 'Pour la démo. For Each zdt In ActiveSheet.OLEObjects If TypeOf zdt.Object Is MSForms.TextBox Then i = Val(Right(zdt, 2)) If i <= NBjoueurs Then zdt.Text = "joueur " & i End If End If Next zdt End Sub
A+
m@rina
Messages postés
20202
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
11 mai 2024
11 279
25 juil. 2008 à 20:00
25 juil. 2008 à 20:00
Bonjour,
Voui, sauf que la propriété Text ne peut pas être affectée à un objet OLE...
Mais, cela voudrait dire que je n'ai pas compris la question...Je pensais qu'il s'agissait simplement de modifier le nom des textboxes.
m@rina
Voui, sauf que la propriété Text ne peut pas être affectée à un objet OLE...
Mais, cela voudrait dire que je n'ai pas compris la question...Je pensais qu'il s'agissait simplement de modifier le nom des textboxes.
m@rina
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
26 juil. 2008 à 08:58
26 juil. 2008 à 08:58
Voui, sauf que la propriété Text ne peut pas être affectée à un objet OLE...
Voui.. tu est sûre ?
A+
Voui.. tu est sûre ?
A+
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
8 mai 2024
7 216
31 juil. 2008 à 20:23
31 juil. 2008 à 20:23
anocheda
Messages postés
54
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
17 novembre 2008
3
6 août 2008 à 16:16
6 août 2008 à 16:16
Bonjour,
Dsl Marina et Lermitte222 je faisais autre chose..
Les macros marchent tres bien pour changer le nom des textbox, mais c'Est pas vraiment ce que je voulais faire:
en fait je veux pouvoir les nommer de 1 a X pour pouvoir ensuite faire la meme action sur toute les textbox avec un boucle sur leur nom:
For i = 1 to 10
TextBox i .Value = "toto"
Next for
la macro permet de changer le nom mais pas de faire une action en fonction du nom...
Est ce qu'il est possible de faire une action pour toutes les textBox de ma feuille dont le left est Joueur, sans les nomer une par une?
Merc isi vous etes toujours la
Antoine
Dsl Marina et Lermitte222 je faisais autre chose..
Les macros marchent tres bien pour changer le nom des textbox, mais c'Est pas vraiment ce que je voulais faire:
en fait je veux pouvoir les nommer de 1 a X pour pouvoir ensuite faire la meme action sur toute les textbox avec un boucle sur leur nom:
For i = 1 to 10
TextBox i .Value = "toto"
Next for
la macro permet de changer le nom mais pas de faire une action en fonction du nom...
Est ce qu'il est possible de faire une action pour toutes les textBox de ma feuille dont le left est Joueur, sans les nomer une par une?
Merc isi vous etes toujours la
Antoine
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
10 août 2008 à 09:59
10 août 2008 à 09:59
Re,
Un peu tard mais je viens seulement de penser à une solution,
Tout les textbox avec la propriété LinkCell initialisée, par exemple TextBox1.linkCell > K1, TB2 > K2 etc..
Tu peu aussi cacher la colonne.
Tu peu ainsi mettre du texte dans les texbox en modifiant les valeurs des cellules, et si l'un ou l'autre des textbox sont changer manuellement tu peu récupérer en testant les cellules.
A+
Un peu tard mais je viens seulement de penser à une solution,
Tout les textbox avec la propriété LinkCell initialisée, par exemple TextBox1.linkCell > K1, TB2 > K2 etc..
Tu peu aussi cacher la colonne.
Tu peu ainsi mettre du texte dans les texbox en modifiant les valeurs des cellules, et si l'un ou l'autre des textbox sont changer manuellement tu peu récupérer en testant les cellules.
A+