|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 6 ![]() |
Bonjour,
Je cherche à faire quelque chose de particulier. Je commence tout juste en VBA. J'ai fait le tour des forums et je n'ai rien trouvé qui puissent m'aider. Je possède une base de données qui me permet de rappeler un certaine nombre d'entre elles et de les classer. Le hic, c'est que le nombre est variable selon les critères et donc que mes plages de sorties varient. Voici un exemple de ce que je peux avoir. (en surligné ce que j'aimerais avoi, idéalement les moyennes serait alignées dans une colonne) A B CDEFGH 5 1 abc Moyenne 5 Moyenne Écart-type Nb() 5 20 abcdefg Moyenne 45 Moyenne Écart-type Nb() 5 31 ab Moyenne 90 Moyenne Écart-type Nb() 45 2 a Moyenne 45 7 ab Moyenne 45 35 a Moyenne 45 41 abcd Moyenne 45 42 abc Moyenne 90 5 ab Moyenne 90 12 abcdefgh Moyenne Je cherche à calculer la moyenne de chaque ligne à la dernière colone +1, la moyenne de la moyenne de chaque ligne, l'écart type de la moyenne de chaque ligne pour chaque bloc de données ainsi que le nb de la colonne B de chaque bloc. Je pense qu'une manière d'y arriver est de définir le range de la colonne 3 jusqu'à la dernière colonne utilisée de la feuille jusqu'à la ligne vide et faire une boucle pour chaque bloc de données. Mettre ça en VBA après, c'est autre chose... J'espère que c'est suffisamment clair. Merci beaucoup!! |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Désolé mais pour ma part je n'ai rien compris à ce que tu voulais faire. J'espère que d'autres seront plus perspicaces que moi. Sinon, tu peux reformuler ou donner un exemple ?
|
|
|
00
|
|
|
#3 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
Franchement, je ne comprends pas l'organisation de tes données. Est-ce la base de données ou le résultat souhaité ?
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 6 ![]() |
Voici une explication plus claire.
Je cherche à pouvoir appliquer différentes fonctions (voir images) sur une série de données qui peuvent avoir un nombre de lignes et de colonnes variable mais qui sont toujours circonscrites en (3) blocs (voir images). Je cherche à avoir sur ces plages de données
Sur les images en noir: ce que j'ai en ce moment vert: ce que j'aimerais obtenir ![]() ![]() Une solution à laquelle j'avais pensée c'est de trouver le nombre de colonnes max et les lignes vides et de définir mon range à partir de ce max et de la ligne vide puis faire une boucle pour chaque bloc. Étant débutant en VBA je ne sais pas comment pouvoir appliquer ça en pratique. Merci |
|
|
10
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Pour tes formules "moyenne", est-ce ce que tu veux valable pour la colonne N (14) ?
Code :
Range([A1], Cells(Rows.Count, 1).End(xlUp)).Offset(, 13).FormulaR1C1 = "=AVERAGE(RC3:RC[-1])"
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 6 ![]() |
Bonjour Daniel,
Merci de la réponse. J'ai fait un petit ajout pour que les moyennes s'ajoutent toujours à la dernière colonne. Deux questions demeurent:
Pour le moment j'ai ceci qui fonctionne bien outre les points mentionnés ci-hauts. Code :
Merci |
||
|
|
00
|
|
|
#7 | |||||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Citation:
Citation:
Code :
__________________
Cordialement. Daniel Citation:
|
|||||
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 6 ![]() |
Le code évitant les lignes vides fonctionne très bien. Merci!
Pour les statistiques (moyenne, SEM et nb()) sur les blocs de donnée, sur l'image
Merci encore |
|
|
00
|
|
|
#9 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
Pour la moyenne et la colonne P. Essaie d'adapter pour le reste (c'est quoi "SEM" ?) : Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 6 ![]() |
Le debugger s'active à la ligne
Code :
ElseIf c.Value <> "" And c.Offset(-1) = 0 Then Ci-joint le classeur sur lequel le code a été testé. Merci |
|
|
00
|
|
|
#11 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
10
|
|
|
#12 | ||
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 6 ![]() |
Wow Daniel, je dois avouer que je trouve ça presque magique!
J'ai encore une fois changé légèrement le code pour que ce soit toujours relatif à la dernière colonne puisque celle-ci change en fonction du nombre de données. Code :
Code :
For Each c In Range([G2], Cells(Rows.Count, Last).End(xlUp))
Code :
Cells(Ligne1, Last + 1).Formula = "=" & c.Address(0, 0) |
||
|
|
00
|
|
|
#13 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
Essaie : Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
Copyright © 2000-2012 - www.developpez.com