Recuperer le contenu des textbox - VB/VBA/VBS - Programmation
Marsh Posté le 13-02-2006 à 17:40:15
Tu fais une fonction qui accepte en paramètre, soit un objet Textbox, soit le nom de ta textbox.
Dans ta fonction tu utiliseras l'objet tel quel ( objTxt.Value ) ou via la collection Controls( nomTextBox ).Value
Pour la lettre des coordonnées de ta cellule, tu peux jongler avec le code ASCII des caractères par rapport au n° de ta textbox.
Marsh Posté le 14-02-2006 à 16:06:58
j'ai essayé de faire ce que tu m'a proposé mais je bloque (par contre j'ai pas fais de fonction)
Code :
|
Il me dis qu'il trouve pas l'objet au niveau du if Control...
Marsh Posté le 14-02-2006 à 16:31:25
1/ vérifie que les valeurs de tes variables textbox et NoColonne donnent bien un nom de champ valable (je vois un MsgBox donc je suppose que c'est bon, mais on n'est jamais trop sûr)
2/ préfixe Controls par le nom de ton userform et un point
frmMonUserForm.Controls(...)
3/ passe par une variable objet
dim oTxt As TextBox
set oTxt = userform.controls(...)
if oTxt.value Then...
Si rien ne marche alors quelque chose m'échappe
Marsh Posté le 14-02-2006 à 16:38:39
Salut angelo,
Pour utiliser controls pour appeler le textbox il ne faut pas oublier les guillemets
Par ailleurs pour éviter de passer par des Asc() utilise plutôt la fonction cells(N° ligne, N° colone) que range.
Si ton textbox est vide tu ne fais rien, si tu défini uniquement ce que tu as à faire si le textbox à une valeur ça simplifie les choses.
Voilà ce que pourrait donner ton code une fois simplifié :
Code :
|
il y a surement mieux mais c'est déjà ça
@+ et bon courage
Marsh Posté le 14-02-2006 à 16:41:48
Pffff j'avais cru que TextBox était une variable contenant le début du nom des textbox à exploiter.
Mais watashi a clairement mieux vu que moi l'erreur. Effectivement avec les guillemets ça devrait focnitonner.
Marsh Posté le 14-02-2006 à 16:54:08
alors j'ai fais un copier coller scrupuleu du code de watashi mais il me met toujours la même chose : objet sécifié introuvable au niveau du if
c'est peut être que ce code est sur l'évenement click d'un bouton alors que les textbox sont sur le userforms non?
Marsh Posté le 14-02-2006 à 17:00:01
Si ton code n'est pas directement dans le userform alors il faut préfixer Controls par le nom de ton userform comme je t'ai indiqué en 2/
Sinon ben attend les bonnes lumières de watashi
Marsh Posté le 14-02-2006 à 17:07:44
c'ets que définitivement il reconnait pas le nom de ton textbox
vérifies voir si les noms des contrôles sont bien textbox1 à textbox22...
ton bouton est sur le même userform ? sinon il faut mentioner le nom du userform également...
@+
Marsh Posté le 14-02-2006 à 17:13:58
lol tegu on a répondu en même temps
Marsh Posté le 14-02-2006 à 17:30:35
Autant pour moi je viens de relire l'ennoncé et il y a 21 textbox donc de textbox 1 à textbox21 change le for i= 1 to 22 en i= 1 to 21 et ça devrait rouler
@+
Marsh Posté le 15-02-2006 à 11:08:50
les textbox sont sur le même userform que le bouton toutefois j'ai modifier quand même le code
Code :
|
et toujour pareil objet requis au niveau du if
j'ai vérifier le nom de mes TextBox et c'est bien TextBox1, TextBox2 ...
la preuve en image :
http://angelo7891.skyblog.com/
désolé la foto est flou mais en agrandissant on peut se rendre compte que le userform s'appel Opération et le textbox TextBox1
Marsh Posté le 15-02-2006 à 11:23:27
si tu veux je regardes ton fichier.
Regarde ton pm je t'y mets mon mail.
Donnes moi aussi ta version d'excel.
@+
Marsh Posté le 16-02-2006 à 06:55:56
Bonjour,
Si le UserForm s'appelle Opération, il faut changer frmOpération en Opération :
If Opération.Controls("TextBox" & i).Value <> "" Then
Epéna
Marsh Posté le 16-02-2006 à 09:36:28
Exact, frm n'est pas un préfixe implicite du langage VB mais une convention personnelle de nommage.
Décidemment il faut faire gaffe à ce qu'on écrit pour être interprété correctement.
Marsh Posté le 16-02-2006 à 09:41:18
en fait le problème étais ailleur (du a mon manque de vigilence et mon étourderie )
Code :
|
le probleme étais que ma derniere textbox était appelé textbox21 et non 22 donc il trouvait pas le dernier forcément !
sinon le donné est bon vu que les textbox sont sur le userform Opération inutile de mettre Opération.Controls
Marsh Posté le 13-02-2006 à 16:00:56
Bonjour alors voila j'ai 21 texbox présent dans un Userform
j'arrive à récupérer le contenu d'un textbox mais j'aimerai ne pas a avoir à écrir mon code 22 fois
voici mon code (valable juste pour le TextBox1 qui rempli la case B16)
j'ai remarqué que le contenu de la textbox1 va en B12 (16 correspond à mon Jour +3 car aujourd'hui on est le 13)
le textbox2 va en C16, le textbox3 en D16 ...
donc comment changer mon code et faire une boucle et ainsi récupérer le contenu des 22 textbox (le contenu du 21 ieme est en V16)