|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : mars 2011 Messages : 28 ![]() |
Bonjour tout le monde !
J'ai créé un programme (souvent avec l'aide de l'enregistreur de macro car mes connaissances sont très basiques). Voilà le déroulement du programme : 1. je crée un classeur excel avec un nom bien spécifique : il dépend du mois, de l'année et du point de mesure : Code :
direction 1vitesse 1 vitesse 2 vitesse n direction 2 ... direction k Code :
Code :
Code :
Jusque là c'est assez facile et mon programme marche. C'est peut être pas très rapide mais ça marche ! Là où ca se complqie, c'est pour créer sur chaque onglet, un histogramme des vitesses et un histogramme des directions à partir des totaux. Je voulais créer les deux histogrammes avant de passer à un autre onglet... J'ai tenté en modifiant le programme de l'enregistreur de macro mais ca n'a pas fonctionner (ca aurait été trop beau !) Quelqu'un pourrait-il m'expliquer comment faire ? merci beaucoup ! |
||||||||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Code :
__________________
Cordialement. |
||
|
|
20
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : mars 2011 Messages : 28 ![]() |
Merci beaucoup pour l'amélioration de mon programme !! Il marche super vite, c'est génial !!
par contre il y a un petit hic dans le programme remplissage. Il ne rempli pas correctement les tableaux. Est-ce que tu pourrais m'expliquer le morceau du code ci dessous, stp ? c'est une partie que je ne comprend pas très bien dans le code. Code :
|
||
|
|
00
|
|
|
#4 | ||||||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Effectivement, remplace cette partie du code par celle-ci
Code :
Pour tester, exécute dans un nouveau fichier les deux codes Test1 et Test2 ci-après Code :
Code :
__________________
Cordialement. |
||||||
|
|
20
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : mars 2011 Messages : 28 ![]() |
Ok, avec la modif, je comprend mieux ! J'ai fait les deux tests et ton code marche mieux que le mien pour les valeur supérieur à 1,5 pour la vitesse
mercimais j'ai toujours le problème du remplissage qui ne fonctionne pas correctement quand je le lance. J'ai tenté de chercher l'erreur par moi-même, en vain... j'ai joint le fichier le point, si ca ne te genes pas, est ce que tu peux regarder ce qui ne va pas ? Merci d'avoir passé autant de temps à résoudre mon problème et désolée de t'en demander un peu plus.. PJ : oct2011.rar |
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Citation:
EDIT J'ai revérifié à l'aide d'un TCD avec groupement. Dans le code il fallait prendre les intervalles [0, 0.1[ [0.1, 0.2[ ....etc Le code précédent tenait compte de [0, 0.1] ]0.1, 0.2]...etc De même pour les directions Avec ce changement sur les variables j et k, tu auras les mêmes données qu'un TCD avec groupement. Code :
__________________
Cordialement. |
|||
|
|
20
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : mars 2011 Messages : 28 ![]() |
Je suis d'accord avec toi !! Normalement ça devrait marcher !!!
mais il ne rempli que la colonne [0 0,1[ et c'est ce que je ne comprend pas. Je sais que mes valeurs varient entre 0 et 1,2 pour les vitesses. J'ai vérifié qu'il y avait bien des virgules et non des points dans le classeur "courant", feuille (2). J'ai aussi vérifier l'emplacement des colones vitesses et directions par rapport au programme. De plus il affiche la même valeur 1,011712345 et la somme totale de toutes les valeur ne fait pas 100... du coup j'ai tenté de remettre les selects sur V et dirp dans ton programme et j'obtiens le même résultat... Je ne sais plus où chercher ! encore merci pour ton aide ! C'est super sympa ! |
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Sur ton fichier .csv j'avais remplacé les données vers .xls en modifiant les virgules en points (mon séparateur décimal est le point)
Le code fonctionne chez moi! Si tu fais un tableau croisé dynamique en faisant un groupement, qu'obtiens-tu?
__________________
Cordialement. |
|
|
20
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : mars 2011 Messages : 28 ![]() |
en remplacant les virgules par des points, il réparti bien une valeur en fonction de la vitesse et de la direction. Sauf qu'il met toujours la même valeur 1,011712345 au lieu de compter le nombre de fois où on obtient une vitesse et une direction données. Cette valeur correspond à 100/(DerLig-1).
je ne sais pas ce qu'est un tableau dynamique ni un groupement milles merci pour toute l'aide que tu m'apportes ! |
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Tes chiffres ne sont pas considérés comme des nombres parce que la somme ne se fait pas.
Le point ou la virgule dépend du séparateur décimal de ton poste de travail. Attends, ton fichier est un csv. L'as tu converti en fichier excel (.xls) avec pour chaque colonne les données correspondantes
__________________
Cordialement. |
|
|
20
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : mars 2011 Messages : 28 ![]() |
J'ai peut être trouvé l'erreur...
Mon séparateur de décimal est un point pour le code mais dans excel c'est une virgule. Du coup il trie bien en fonction des vitesses et des direction mais il n'arrive pas a les compter car il y a une virgule à la place d'un point. Il ne comprend donc pas que c'est un nombre !!! est-ce que je peux encore profiter de ta gentillesse pour savoir comment mettre un point pour séparateur de décimal dans excel ? merci beaucoup d'avance ! et ben non ce n'est pas ça. J'ai trouvé comment changer le séparateur de décimaux (pour ceux que ça intéresse : bouton office -> options exel -> options avancés, décocher "utiliser les séparateurs du système") et il ne compte toujours pas. Donc c'est val(res(k,j)) dans l'équation res(k,j)= val(res(k,j)) + 100/(DerLig-1) qui plante.... Merci beaucoup de me consacrer autant de temps ! |
|
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Sinon, mets en PJ ton fichier.
__________________
Cordialement. |
|
|
20
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : mars 2011 Messages : 28 ![]() |
J'avais oublié de préciser : j'avais spécialement créer un fichier excel. J'ai rempli les vitesses et les directions de manière aléatoire pour voir si justement j'avais le problème de conversion de fichier, suite à ton message.
je te joins le fichier de points converti en excel. PJ : nov_2011.xlsx OK !!!! lorsque je met res(k,j) = val(res(k,j) + 1 à la place de res(k,j) = val(res(k,j) + 100/(DerLig - 1) ca marche, j'ai le bon nombre de point total, et le tableau se rempli correctement !!!! (sauf que du coup je n'ai plus de pourcentage) Je vois enfin le bout de ce programme !! Merci beaucoup pour toute l'aide que tu m'as apportée !! |
|
|
00
|
|
|
#14 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Ton fichier que tu as mis en PJ est t il l'identique de ton fichier original?
Tu as la feuille des donnée en 2ème position et en 1ère position tu as la feuille d'où sortir le nom du fichier H13, H14 et H15. Si c'est ça, je viens de tester sans problème Code :
Edit: Lignes 70, 72 et 78 modifiés pour prendre en compte l'éventualité si le séparateur décimal est la virgule
__________________
Cordialement. |
||
|
|
20
|
|
|
#15 |
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : mars 2011 Messages : 28 ![]() |
En tant que blonde confirmée, je t'avais joint le mauvais fichier !
grace aux lignes 70, 72 et 78 qui considère le point et la virgule comme séparateur de décimaux ton code marche impécable !!! il est rapide et affiche tous les histogrammes comme il faut, nikel ! merci pour tout !!!! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com