Calcul (moy, max, min...) entre deux classeur
Résolu
Quoi29
Messages postés
22
Statut
Membre
-
Quoi29 Messages postés 22 Statut Membre -
Quoi29 Messages postés 22 Statut Membre -
Bonjour,
Je suis nouveau sur le forum et suis actuellement entrain d'essayer de me remettre à coder en VBA depuis peu. Je ne me rappel plus comment de manière la plus simple et épurée coder la chose suivante:
J'ai un classeur contenant ma Macro (nom du classeur inconnu). J'ai un deuxième classeur "Classeur2" contenant deux feuilles "Feuille1" et "Feuille2". "Feuille2" contient une colonne "A1:A3000" contenant un grand nombre de valeur sur cette plage.
Je souhaiterais que la cellule "A1" de la "Feuille1" du classeur contenant la Macro récupère la moyenne/le maximum/le minimum (...) de la colonne "A3:A3000". Comment faire? (Je ne veux surtout pas utiliser de boucle for pour le calcul de la moyenne des 3000 valeurs)
Mon idée (qui ne marche pas):
Merci pour votre aide en espérant avoir été clair
Je suis nouveau sur le forum et suis actuellement entrain d'essayer de me remettre à coder en VBA depuis peu. Je ne me rappel plus comment de manière la plus simple et épurée coder la chose suivante:
J'ai un classeur contenant ma Macro (nom du classeur inconnu). J'ai un deuxième classeur "Classeur2" contenant deux feuilles "Feuille1" et "Feuille2". "Feuille2" contient une colonne "A1:A3000" contenant un grand nombre de valeur sur cette plage.
Je souhaiterais que la cellule "A1" de la "Feuille1" du classeur contenant la Macro récupère la moyenne/le maximum/le minimum (...) de la colonne "A3:A3000". Comment faire? (Je ne veux surtout pas utiliser de boucle for pour le calcul de la moyenne des 3000 valeurs)
Mon idée (qui ne marche pas):
Dim NbRow As Integer NbRow=3000 With Excel.Application.Workbooks("Classeur2").Sheets("Feuille2") Excel.Application.ActiveWorkbooks.Sheets("Feuill1").Cells("A1") = WorksheetFunction.Average(Range(.Cells(3, 3), .Cells(3, NbRow)))
Merci pour votre aide en espérant avoir été clair
A voir également:
- Application.worksheetfunction.max
- Nombre de jours entre deux dates excel - Guide
- Calcul moyenne excel - Guide
- Maj to min - Guide
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
Ca marche parfaitement, Eureka!
Merci beaucoup pour ton aide
J'ai crié victoire trop vite.
Voici comment j'ai incorporé ton code:
'Found the Total and write it in Solution sheet
Set rg = Excel.Application.Workbooks(Imput & ".xlsx").Sheets("Travaille").Range("O3:O" & NbRow)
avg = Application.WorksheetFunction.Sum(rg)
Excel.Application.ThisWorkbook.Sheets("Solution").Range(Column(Version) & "22") = avg
rg.Clear
avg = 0
'Found the Total and write it in Solution sheet
Set rg = Excel.Application.Workbooks(Imput & ".xlsx").Sheets("Travaille").Range("M3:M" & NbRow)
avg = Application.WorksheetFunction.Sum(rg)
Excel.Application.ThisWorkbook.Sheets("Solution").Range(Column(Version) & "24") = avg
rg.Clear
avg = 0
'Found the Total and write it in Solution sheet
Set rg = Excel.Application.Workbooks(Imput & ".xlsx").Sheets("Travaille").Range("P3:P" & NbRow)
avg = Application.WorksheetFunction.Sum(rg)
Excel.Application.ThisWorkbook.Sheets("Solution").Range(Column(Version) & "26") = avg
rg.Clear
avg = 0
'Found the Peak and write it in Solution sheet
Set rg = Excel.Application.Workbooks(Imput & ".xlsx").Sheets("Travaille").Range("D3:D" & NbRow)
avg = Application.WorksheetFunction.Max(rg)
Excel.Application.ThisWorkbook.Sheets("Solution").Range(Column(Version) & "25") = avg
rg.Clear
avg = 0
Lorsque je fais tourner le programme. J'ai l'erreur à la ligne suivante:
avg = Application.WorksheetFunction.Sum(rg)
Avec comme message d'erreur:
"Erreur 1008 le programme ne peut réaliser la fonction sum"
Lorsque je regarde dans mon dossier Excel les cellules O3:O3000 et M3:3000 ont été remplacé par des cases vides. D'où j'imagine le problème de réaliser la fonction sum.
Lorsque j'enlève ton code incorporé mes cellules sont bien présentes et remplis comme il se doit.
Aurais-tu une idée de l'origine de l'erreur?
rg.Clear
avg = 0
Les colonnes ne disparaissent plus mais cela bloque comme même au même endroit