Excell Textbox
Résolu
anocheda
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
anocheda -
anocheda -
Bonjour,
J'ai crée plusieurs text boxs sous excell et je cherche avec une macro a modifier le texte de toutes avec un For i=...
en gros j'ai:
texbox1, textbox2...textbox52
et j ecris dans ma macro :
For i = 1 to 52
textbox i = ....
Next i
forcement ca marche pas, il reconnait pas textboxe i et je sais pas trop quoi faire (tout ecrire a la main est faisable mais y a pleins de conditions et ca va prendre trop de temps )
J'ai vu qu on pouvait faire ca avec un "Frame" mais je sais pas ce que c'est...est ce que quelqu'un peut m'aider
Merci
Antoine
J'ai crée plusieurs text boxs sous excell et je cherche avec une macro a modifier le texte de toutes avec un For i=...
en gros j'ai:
texbox1, textbox2...textbox52
et j ecris dans ma macro :
For i = 1 to 52
textbox i = ....
Next i
forcement ca marche pas, il reconnait pas textboxe i et je sais pas trop quoi faire (tout ecrire a la main est faisable mais y a pleins de conditions et ca va prendre trop de temps )
J'ai vu qu on pouvait faire ca avec un "Frame" mais je sais pas ce que c'est...est ce que quelqu'un peut m'aider
Merci
Antoine
A voir également:
- Excell Textbox
- Liste déroulante excell - Guide
- Excell viewer - Télécharger - Tableur
- Excell 2013 - Télécharger - Tableur
- Aller à la ligne excell - Guide
- Comment concatener plusieurs textbox ✓ - Forum Excel
18 réponses
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
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
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
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
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
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
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
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+
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
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+
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
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+