Garlim
Messages postés10Date d'inscriptionvendredi 25 juillet 2008StatutMembreDernière intervention30 juillet 2008
-
29 juil. 2008 à 15:26
Garlim
Messages postés10Date d'inscriptionvendredi 25 juillet 2008StatutMembreDernière intervention30 juillet 2008
-
30 juil. 2008 à 09:50
Bonjour,
Je suis en VBA (version EXCEL 2003) et j'ai pas trouvé le bon thème!
Dans une userform, je crée des textbox en dynamique. Je voudrais que chaque userform impair soit un cumul de la précédente texbox impair + la textbox pair précédente.
pour une je programmerais:
sub texbox3_change( )
textbox3=textbox1+textbox2
end sub
Super facile, pour une. Mais comme je cherche à le faire pour des textbox dont je ne connais pas le numéro, je ne sais pas. Peut-être par un module de classe? Ou alors en intégrant cet événement _change dans un module?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 29 juil. 2008 à 16:44
Bonjour,
je te mets simplement sur des rails :
soient plusieurs controles nommés toto suivi d'un chiffre n
1) Controls("toto" & n) se réfère au contrôle toton
2)
For each ctrl in controls
lenomducontrôle = ctrl.name
if left(lenomducontrole, 4) = "toto" then 'c'est alors l'un de contreôles qui sont baptisés toton
indicecontrole = val(mid(lenomducontrole,5)) ' te donnera le chiffre n du contrôle concerné
end if
Next
3) pour savoir si n est pair ou impair :
if n and 0 'est alors pair
if n and 1 'est alors impair
4) si n est impair, pour connaitre les pairs précédents
for i = n-1 to 2 step -2
.....
next
A toi de jouer, maintenant ...
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 29 juil. 2008 à 16:45
Bonjour,
Arrêt bourin !
Repense ton problème autrement... On ne crée pas des textbox dynamiquement pour faire un simple calcul ! ... On n'a pas idée de faire ça... Explique un peu ce que tu veux faire, je te tenterais de t'aiguiller des pistes de réflexion sur la façon de faire...
Garlim
Messages postés10Date d'inscriptionvendredi 25 juillet 2008StatutMembreDernière intervention30 juillet 2008 29 juil. 2008 à 19:37
Merci JMF et us_30 pour vos réponses, mais ce n'est pas exactement ce que je recherches.
@JMF:
Ce que je cherches à faire c'est au cas où on rentre une valeur dans un textbox, la valeur d'une autre texbox change.
Le hic c'est que les valeurs des textbox me sont pas connus.
La valeur MID ne nécessite pas une seconde valeur? val(mid(lenomducontrole,5,1))
@us_30:
Mon soucis est que je souhaite faire un "genre" de tableau croisée dynamique dans une userform? Pourquoi? Parcequ'un tableau croisée dynamique ne permet pas de modifier les valeurs!
Pour info (attention c'est de la lecture!) : Mon tableau devra comporter 2 années de 52 semaines chacune avec environ 500 lignes pour la version complète. Des filtres situées en haut de la userform permettront de sélectionner les lignes intéressantes. D'autres filtres permettront de faire le cumul par mois des semaines précédemment affichés.
10 lignes forment un modèle, plusieurs modèles(qté variable) forment un pays.
La première ligne servira à saisir des chiffres sur certaines semaines et la deuxième a en faire le cumul.
De plus une macro viendra répartir en fonction de la quantité total de chaque semaine les chiffres sur les semaines avoisinantes.
D'autres part, il y aura la possibilité aux utilisateurs de saisir sur d'autres tableaux à la journées ce coup ci des valeurs, qui iront se reporter directement dans le tableaux principal.
Je ne pense pas que cela pourrait être fait plus simplement que les textbox en dynamique ou alors se taper les 52*2*500 textbox à la main!!!
Surtout que je compte ajouter un système qui permettent d'ajouter ou supprimer un modèle par un clic.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Garlim
Messages postés10Date d'inscriptionvendredi 25 juillet 2008StatutMembreDernière intervention30 juillet 2008 29 juil. 2008 à 19:44
Il se met à jour certes, mais pas sur le Tableau lui-même! Essaie de taper une valeur dans une cellule, tu verras ce qu'il te répondra!
PS : les utilisateurs ne mettront pas à jour la base de donnée, mais le Tableau, d'où mon problème!
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 29 juil. 2008 à 20:02
Garlim,
1) les indications que je t'ai données suffisent à traiter ce que tu veux traiter ! Réfléchis un peu
2)MsgBox Mid("toto25", 5) ===>> retourne bien évidemment 25 !
Bref ...
Garlim
Messages postés10Date d'inscriptionvendredi 25 juillet 2008StatutMembreDernière intervention30 juillet 2008 29 juil. 2008 à 20:05
1)Merci JMF, je test ça demain au boulot^^
2)Ah bin j'apprends quelquechose, je savais pas que si on mettais rien après il prenait toutes les lettres :D (moi j'aurai mis right("toto25",2))
Garlim
Messages postés10Date d'inscriptionvendredi 25 juillet 2008StatutMembreDernière intervention30 juillet 2008 30 juil. 2008 à 09:50
Ah oui, mais non en fait :s
J'aurai souhaité pouvoir entrer des valeurs donc dans les cases pair, et qu'à ce moment là la valeur indique le cumul dans les case impaire.