Automatiser calcul de moyenne vba excel 2007
Résolu
Goret
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je vous contacte car je rencontre des difficultés sur mon programme (je suis débutant).
J'utilise VBA sous Excel]2007.
J'ai une feuille excel avec sur 10 lignes de données chiffrées. Et je cherche à automatiser le calcul] de la moyenne d'une ligne par l'utilisation d'une fenêtre qui permet de sélectionner la ligne à calculer (avec une listbox) et par un commandbutton (qui va ordonner le calcul de la moyenne).
Le résultat du calcul devra s'afficher dans la fenêtre sur une textbox prévue à cet effet.
Je n'arrive vraiment pas à trouver ce code, si quelqu'un pouvait m'aider ce serait génial!!
Merci d'avance
Je vous contacte car je rencontre des difficultés sur mon programme (je suis débutant).
J'utilise VBA sous Excel]2007.
J'ai une feuille excel avec sur 10 lignes de données chiffrées. Et je cherche à automatiser le calcul] de la moyenne d'une ligne par l'utilisation d'une fenêtre qui permet de sélectionner la ligne à calculer (avec une listbox) et par un commandbutton (qui va ordonner le calcul de la moyenne).
Le résultat du calcul devra s'afficher dans la fenêtre sur une textbox prévue à cet effet.
Je n'arrive vraiment pas à trouver ce code, si quelqu'un pouvait m'aider ce serait génial!!
Merci d'avance
A voir également:
- Automatiser calcul de moyenne vba excel 2007
- Comment calculer la moyenne sur excel - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
10 réponses
Pour info, j'ai préparé la fenêtre, il ne me reste plus qu'à trouver le code à appliquer pour la commandbox et trouver le code pour afficher le résultat sur la listbox
Bonjour,
Le plus "automatique" serait de mettre la formule Moyenne sur chaque ligne.
Mais bon, si tu veux vraiment du VBA ...
A+
Le plus "automatique" serait de mettre la formule Moyenne sur chaque ligne.
Mais bon, si tu veux vraiment du VBA ...
Private Sub CommandButton1_Click() Dim Lig As Long, ColDeb As Integer, ColFin As Integer Dim Tot As Double, i As Integer 'initialiser la ligne à calculer Lig = 7 ' à adapter à la sélection ListBox 'initialiser les colonnes de.. à ColDeb = 4: ColFin = 11 With Sheets("Feuil1") For i = ColDeb To ColFin Tot = Tot + .Cells(Lig, i) Next i End With TextBox1.Text = Tot / (i - ColDeb) End Sub
A+
Merci pour ton aide, cependant, je n'arrive toujours pas à le faire tourner.
Voici ce que j'ai complété:
Private Sub CommandButton1_Click()
Dim Lig As Long, ColDeb As Integer, ColFin As Integer
Dim Tot As Double, i As Integer
'initialiser la ligne à calculer
Lig = ListBox1_Click
' à adapter à la sélection ListBox
'initialiser les colonnes de.. à
ColDeb = B: ColFin = IV
With Sheets("le nom de ma feuille")
For i = ColDeb To ColFin
Tot = Tot + .Cells(Lig, i)
Next i
End With
TextBox1.Text = Tot / (i - ColDeb)
End Sub
Voici ce que j'ai complété:
Private Sub CommandButton1_Click()
Dim Lig As Long, ColDeb As Integer, ColFin As Integer
Dim Tot As Double, i As Integer
'initialiser la ligne à calculer
Lig = ListBox1_Click
' à adapter à la sélection ListBox
'initialiser les colonnes de.. à
ColDeb = B: ColFin = IV
With Sheets("le nom de ma feuille")
For i = ColDeb To ColFin
Tot = Tot + .Cells(Lig, i)
Next i
End With
TextBox1.Text = Tot / (i - ColDeb)
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hummmm.. faudrait quand même que tu aprenne un peu loe VBA si tu veux t'en servir !!!
Quel est le text de ta listbox ?
Pour les colonnes c'est les N° que tu doit mettre, par exemple B c'est la colonne 2
A=1, B=2, C=3,....AA=27....IA=235...
With Sheets("le nom de ma feuille") c'est le nom de l'onglet de ta feuille
Sur quel ligne se trouve tes dix lignes ?
Quel est le text de ta listbox ?
Pour les colonnes c'est les N° que tu doit mettre, par exemple B c'est la colonne 2
A=1, B=2, C=3,....AA=27....IA=235...
With Sheets("le nom de ma feuille") c'est le nom de l'onglet de ta feuille
Sur quel ligne se trouve tes dix lignes ?
Ok merci j'ai bien capté pour les colonnes.
Et ok pour la feuille
Mes lignes se trouvent sur les lignes de 2 à 11.
Dans le listbox, j'ai pu entrer les bonnes lignes dans rowsource en mettant (2:11).
J'ai l'impression que le problème vient de Lig=, je n'arrive pas à faire en sorte que la ligne à choisir est définie par cette listbox...
Et ok pour la feuille
Mes lignes se trouvent sur les lignes de 2 à 11.
Dans le listbox, j'ai pu entrer les bonnes lignes dans rowsource en mettant (2:11).
J'ai l'impression que le problème vient de Lig=, je n'arrive pas à faire en sorte que la ligne à choisir est définie par cette listbox...
Voilà, et j'ai en plus fait en sorte d'afficher un message d'erreur au cas où aucun choix n'est fait:
Private Sub CommandButton1_Click()
Dim a As Integer
Dim Bool As Boolean
a = ListBox1.ListIndex + 2
If a >= "2" Then
Bool = True
End If
If Bool = True Then
TextBox1.Text = Application.WorksheetFunction.Average(Range(Cells(a, 2), Cells(a, 255)))
Else
MsgBox "Veuillez faire un choix", vbCritical
End If
End Sub
Private Sub CommandButton1_Click()
Dim a As Integer
Dim Bool As Boolean
a = ListBox1.ListIndex + 2
If a >= "2" Then
Bool = True
End If
If Bool = True Then
TextBox1.Text = Application.WorksheetFunction.Average(Range(Cells(a, 2), Cells(a, 255)))
Else
MsgBox "Veuillez faire un choix", vbCritical
End If
End Sub
Bonjour,
Le plus "automatique" serait de mettre la formule Moyenne sur chaque ligne.
Mais bon, si tu veux vraiment du VBA ...
Private Sub CommandButton1_Click()
Dim Lig As Long, ColDeb As Integer, ColFin As Integer
Dim Tot As Double, i As Integer
'initialiser la ligne à calculer
Lig = 7 ' à adapter à la sélection ListBox
'initialiser les colonnes de.. à
ColDeb = 4: ColFin = 11
With Sheets("Feuil1")
For i = ColDeb To ColFin
Tot = Tot + .Cells(Lig, i)
Next i
End With
TextBox1.Text = Tot / (i - ColDeb)
End Sub
J'ai testé ceci à l'instant et personnellement sa marche très bien pour ma part et vous ?
Le plus "automatique" serait de mettre la formule Moyenne sur chaque ligne.
Mais bon, si tu veux vraiment du VBA ...
Private Sub CommandButton1_Click()
Dim Lig As Long, ColDeb As Integer, ColFin As Integer
Dim Tot As Double, i As Integer
'initialiser la ligne à calculer
Lig = 7 ' à adapter à la sélection ListBox
'initialiser les colonnes de.. à
ColDeb = 4: ColFin = 11
With Sheets("Feuil1")
For i = ColDeb To ColFin
Tot = Tot + .Cells(Lig, i)
Next i
End With
TextBox1.Text = Tot / (i - ColDeb)
End Sub
J'ai testé ceci à l'instant et personnellement sa marche très bien pour ma part et vous ?
Ce serait plus simple..
Supprimer le bouton (plus besoin de tester si sélection faite)
et mettre l'affichage directement dans l'événement de la listbox.
A+
Supprimer le bouton (plus besoin de tester si sélection faite)
et mettre l'affichage directement dans l'événement de la listbox.
Private Sub ListBox1_Click() Dim A As Integer A = ListBox1.ListIndex + 2 TextBox1.Text = Application.Average(Range(Cells(A, 2), Cells(A, 255))) End Sub
A+