Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Moyenne TextBox erronée si TextBox vide

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mikael2235

XLDnaute Occasionnel
Bonjour à tous,

Je souhaite dans un Label calculer la moyenne de 10 TextBox.

Je fait donc ma forumle en VBA : Application.average (val(TextBox1), val(TextBox2), val(TextBox3),....)

Le problème est que si seulement 5 TextBox sont remplies, pour le calcul de la moyenne il me divise par 10

Comment peux-t'on faire pour éviter de mettre toutes les combinaisons de conditions possible avec des If... ???

Merci pour votre aide.
Mikael
 
Re : Moyenne TextBox erronée si TextBox vide

bonjour mikael2235
sans plus d'infos pas facile
il faut partir sur une boucle
un exemple de base je suppose sur un userform???

Code:
Dim i As Byte, x As Variant
For i = 1 To 10
If Controls("TextBox" & i) <> "" Then x = x + CDbl(Controls("TextBox" & i))
Next i
Label1 = x
 
Re : Moyenne TextBox erronée si TextBox vide

Salut laetitia,

Oui c'est utilisé dans un Userform !

Pour ta boucle, l'idée est là. mais au lieu d'additionner la valeur des TextBox non vides, ça serait mieux qu'il compte le nombre de TextBox non vide.

Ensuite je pourrais faire la somme des TextBox et diviser par ce nombre.

Avec ta solution j'aurai la somme mais je ne serai pas par combien la diviser.

Merci
 
Re : Moyenne TextBox erronée si TextBox vide

re,

Code:
Dim i As Byte, x As Variant, y As Byte
For i = 1 To 10
If Controls("TextBox" & i) <> "" Then x = x + CDbl(Controls("TextBox" & i)): y = y + 1
Next i
Label1 = x / y
 
Re : Moyenne TextBox erronée si TextBox vide

Ok c'est plus simple comme ça,

J'avais mis dans ton code x = x+1

et ensuite j'avais fait Application.Sum
et ensuite la division...

ça permet de gagner quelques lignes



Autrement, sujet différent mais qui concerne la même macro, tu vas peut-être pouvoir m'aider.
Je souhaite mettre ce code dans une Private Sub TextBox1_Afterupdate() et pour éviter de mettre mon code 10 fois.

Peux-t'on faire quelque chose de ce genre ?
Code:
Private Sub TextBox1_Afterupdate(),TextBox2_Afterupdate(),...

Merci
 
Re : Moyenne TextBox erronée si TextBox vide

re,
au sujet du format du resultat j'ai mis 2 chiffres aprés le point si pas un entier
si pas d'importance pour toi. tu ecris simplement comme cela

Code:
User.Label1 = x / y

au lieu de
Code:
If x / y - Int(x / y) = 0 Then User.Label1 = x / y Else User.Label1 = Format(x / y, "0.00")

attention User c'est le nom de mon userform ...adapte
j'ai bloque aussi pour pouvoir taper que des chiffres & point adapte si tu veus une virgule je suis reste sur
Code:
CDbl
accepte point & virgule
Code:
val
accepte que le point
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

B
  • Question Question
Réponses
3
Affichages
1 K
D
Réponses
9
Affichages
2 K
D
D
Réponses
8
Affichages
2 K
C
Réponses
0
Affichages
784
CaptainMerlux
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…