Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1422 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Besoin d'aide pour faire des moyennes!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide pour faire des moyennes!

n°2125102
dc85
Posté le 06-02-2012 à 20:52:25  profilanswer
 

Bonjour,  
 
Je dois réaliser des moyennes en fonction de plusieurs paramètres :  
 
J'ai des données dans un grand tableau excel qui sont classées en fonction  
1)du lieu  
2)de la date  
3)du point d'observation (de 1 à 5 points de 5 min chacun)  
 
Pour chaque point d'observation, un certain nombres d'espèces ont été recensées.  
Je dois m'arranger pour effectuer la moyenne des espèces rencontrées en un point d'observation de 5 minutes. -> à la main c'est relativement facile  
Ensuite, je dois effectuer la moyenne des espèces différentes rencontrées en 2 points d'observation de 5 minutes (donc la moyenne de 1+2, 1+3, 1+4, 1+5, 2+3, 2+4, 2+5, 3+4, 3+5 et 4+5)  
Puis la moyenne des espèces différentesrencontrées en 3 points d'observation de 5 minutes  
Puis pour 4 points d'observation de 5 minutes puis pour 5 points d'observation de 5 minutes.  
Je dois réaliser ces 5 moyennes pour chaque lieu et date, donc une centaines de fois 5 moyennes à la main ça risque de faire long...  
 
Y a-t-il un moyen d'automatiser tout ça?
 
Avec une macro excel ce serait top (j'ai aussi entendu parler du logiciel R mais je ne l'ai jamais utilisé!)  
 
Merci d'avance à tous!
 
 
 
 
http://cjoint.com/?BBgrixkjARV  
 
voila le classeur avec lequel je travaille. (y a bcp de choses inutiles dessus, mais ce qui intéresse dans le cas présnet c'est la feuille de données (feuille 1) et la feuille 6 qui reprend les mêmes explications que dans mon premier message!  
 
Les points d'observation doivente être choisis soit au hasard, soit de façon systématique (ce que je préfèrerais!) -> pour deux points parmis les 5, prendre en compte toutes les combinaisons possibles.  
 
Ce qu'il est vraiment important, c'est d'éviter les doublons d'espèces!

mood
Publicité
Posté le 06-02-2012 à 20:52:25  profilanswer
 

n°2125106
86vomito33
Posté le 06-02-2012 à 21:45:13  profilanswer
 

bonjour,
 
je te propose de créer un fichierfeuille récap dans lequel tu mets toutes les combinaisons possibles
 
l'idée est de récupérer les nombres pour chaque combinaisons à l'aide d'une macro
 
ci dessous celle correspondant à la combinaison 1 et 2
 

Code :
  1. Sub Macro1()
  2. on fait une copie de ta base de donnée
  3.     Range(cells(1,1),cells(range("A65000" ).end(xlup).rows,12)).Select
  4.     Selection.Copy
  5.     Sheets("Feuil1" ).Select
  6.     Sheets.Add After:=Sheets(Sheets.Count)
  7.     ActiveSheet.Paste
  8.    
  9.     For i = 5000 To 2 Step -1
  10.     'dans le cas de 2 opservations: 1 et 2 on supprimer les observations 3,4 et 5
  11.     If Cells(i, 7) <> 1 And Cells(i, 7) <> 2 Then
  12.     Rows(i).Delete
  13.     Next i
  14. 'ceci fonctionne si tu as déja trié
  15. 'on supprime les espèces identiques
  16.     For i = 5000 To 2 Step -1
  17.     If Cells(i, 8) = Cells(i - 1, 8) Then Rows(i).Delete
  18.     Next i
  19.    
  20.     nbligne = Range("A65000" ).End(xlUp).Row
  21.     somme = nbligne - 1 'correspond au nombre de taxon
  22. 'faudra affecter la bonne cellule en fonction de ta feuille récap
  23.     Sheets("recap" ).Range("B1" ) = somme
  24. End Sub


 
tu reproduits ce code autant de fois que nécessaires
 
il te suffira ensuite de faire les moyennes sur la feuille récap
 
ca va etre long
bon courage


Message édité par 86vomito33 le 07-02-2012 à 08:53:24
n°2125125
dc85
Posté le 06-02-2012 à 23:31:25  profilanswer
 

Déja un grand merci de t'être penché sur mon problème!  Je vais regarder ce que ça donne.  Est-tu sur d'avoir pris en compte toutes les combinaisons possibles dans le cas de deux observations?

n°2125126
dc85
Posté le 06-02-2012 à 23:37:49  profilanswer
 

Alors, je rencontre quelques problèmes!
J'ai déjà rajouté ' début de la ligne 3, mais quand j'exécute, le programme me die qu'il y a un Next sans For...

n°2125143
86vomito33
Posté le 07-02-2012 à 08:51:00  profilanswer
 

j'ai pris juste le cas 1 et 2 faut duppliquer 1et3 1et4,etc...
 
en ce qui conerne la boucle for...next
 
modifie la deuxieme avec ii au lieu de i


Message édité par 86vomito33 le 07-02-2012 à 08:52:12
n°2125145
dc85
Posté le 07-02-2012 à 09:12:56  profilanswer
 

Du coup j'ai ça :
 

Code :
  1. Sub Macro1()
  2. 'on fait une copie de ta base de donnée
  3.     Range(Cells(1, 1), Cells(Range("A65000" ).End(xlUp).Rows, 12)).Select
  4.     Selection.Copy
  5.     Sheets("Feuil1" ).Select
  6.     Sheets.Add After:=Sheets(Sheets.Count)
  7.     ActiveSheet.Paste
  8.  
  9.     For i = 5000 To 2 Step -1
  10.     'dans le cas de 2 opservations: 1 et 2 on supprimer les observations 3,4 et 5
  11.     If Cells(i, 7) <> 1 And Cells(i, 7) <> 2 Then
  12.     Rows(i).Delete
  13.     Next i
  14.     For i = 5000 To 2 Step -1
  15.     If Cells(i, 8) = Cells(i - 1, 8) Then Rows(i).Delete
  16.     Next ii
  17.  
  18.     nbligne = Range("A65000" ).End(xlUp).Row
  19.     somme = nbligne - 1 'correspond au nombre de taxon
  20. 'faudra affecter la bonne cellule en fonction de ta feuille récap
  21.     Sheets("recap" ).Range("B1" ) = somme
  22. End Sub


 
Mail il me met le même message!  (erreur de compilation! Next sans For)

n°2125154
86vomito33
Posté le 07-02-2012 à 10:40:54  profilanswer
 


 
        For i = 5000 To 2 Step -1
        'dans le cas de 2 opservations: 1 et 2 on supprimer les observations 3,4 et 5
        If Cells(i, 7) <> 1 And Cells(i, 7) <> 2 Then Rows(i).Delete
        Next i
 
        For ii = 5000 To 2 Step -1
        If Cells(ii, 8) = Cells(ii - 1, 8) Then Rows(ii).Delete
        Next ii

n°2125155
86vomito33
Posté le 07-02-2012 à 10:42:32  profilanswer
 

pour tn info
for ... to ... step ...
....
next
 
if ... then
...
else
...
end if
 
ou if ... then ...

n°2125210
dc85
Posté le 07-02-2012 à 15:57:06  profilanswer
 

Alors soit je suis un vrai manche en la matière (ce qui est fort possible), soit y a un bug!
 
J'ai ajouté le code que tu m'as donné et excel m'affiche maintenant "incompatibilité de type"
 
(et j'ai rien compris au dernier message lol!)

n°2125288
dc85
Posté le 08-02-2012 à 00:33:50  profilanswer
 

En gros, il faut arriver à coder un truc du genre :
 
pour les lignes ayant la même unité et la même date :  
 
nombre de cellules différentes de la colonne "code taxon" pour ("point d'obs=1" + "point d'obs=2" + "point d'obs=3" + "point d'obs=4" + "point d'obs=5" )/5   *
nombre de cellules différentes de la colonne "code taxon" pour ("point d'obs=1 ou 2" + "point d'obs=1 ou 3" + "point d'obs=1 ou 4" + "point d'obs=1 ou 5" + "point d'obs=2 ou 3" +  "point d'obs=2 ou 4" +  "point d'obs=2 ou 5" +  "point d'obs=3 ou 4" +  "point d'obs=3 ou 5" +  "point d'obs=4 ou 5" )/10
nombre de cellules différentes de la colonne "code taxon" pour ("point d'obs=1 ou 2 ou 3" + "point d'obs=1 ou 2 ou 4" + "point d'obs=1 ou 2 ou 5" + "point d'obs=1 ou 3 ou 4" + "point d'obs=1 ou 3 ou 5" +  "point d'obs=1 ou 4 ou 5" +  "point d'obs=2 ou 3 ou 4" +  "point d'obs=2 ou 3 ou 5" +  "point d'obs=2 ou 4 ou 5" +  "point d'obs=3 ou 4 ou 5" )/10
nombre de cellules différentes de la colonne "code taxon" pour ("point d'obs=1 ou 2 ou 3 ou 4" + "point d'obs=1 ou 2 ou 3 ou 5" + "point d'obs=1 ou 2 ou 4 ou 5" + "point d'obs=2 ou 3 ou 4 ou 5" )/4
nombre de cellules différentes de la colonne "code taxon" pour ("point d'obs=1 ou 2 ou 3 ou 4 ou 5" )
 
*   en réalité, nombre de cellules de la colonne "code taxon" ("différentes pour point d'obs=1" + "différentes pour point d'obs=2" + "différentes pour point d'obs=3" + "différentes pour point d'obs=4" + "différentes pour point d'obs=5" )/5


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Besoin d'aide pour faire des moyennes!

 

Sujets relatifs
aide sur fonction excelA supprimer
[Résolu] Petite aide vba Exceldemande d'aide en programmation en c
Besoin de la traduction en clair d'une ligne de code XMLBesoin d'aide pour création d'une requête complexe (MySQL)
[Résolu]Aide pour créer un petit prog[Résolu][Batch]Aide commande ren en bat
Plus de sujets relatifs à : Besoin d'aide pour faire des moyennes!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR