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?
Merci d'avance.
A voir également:
Texbow
Impossible de lire la propriété vlookup de la classe worksheetfunction - Meilleures réponses
Impossible de lire la propriété vlookup - Meilleures réponses
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 ...
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...
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.
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!
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 ...
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))
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.