Aide pour une macro sous Excel :(

Aide pour une macro sous Excel :( - VB/VBA/VBS - Programmation

Marsh Posté le 04-12-2010 à 17:52:57    

Bonjour,  
Actuellement en master d'hydrogéologie, on doit effectué pour une étude de cas un traitement de données.
J'ai pour cela des tableaux de mesures qui se composent de la sorte :  
Date au format : jj/mm/an h:min:s (exemple "06/07/2008  01:00:00"  )    /      Température     /     Hauteur
Ces tableaux contiennent énormément de valeurs (16500 lignes).
Il faudrait que je puisse sélectionner toutes les lignes de dont l'heure est de 12:00:00, et si possible les placer dans une nouvelle feuille.  
Je ne connais rien du tout aux macros, dont je m'en remets à vous ... sinon je devrais faire ca en mode manuel ;'(

Reply

Marsh Posté le 04-12-2010 à 17:52:57   

Reply

Marsh Posté le 04-12-2010 à 23:01:22    

Pas besoin de macro pour ça :o
 
Tu mets un filtre automatique et tu filtres sur la colonne des heures ;)


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 04-12-2010 à 23:05:46    

Code :
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. ' Macro enregistrée le 04/12/2010 par OtObOx
  5. '
  6. '
  7.     Columns("A:C" ).Select
  8.     Selection.AutoFilter
  9.     Selection.AutoFilter Field:=1, Criteria1:="=*12:00:00", Operator:=xlAnd
  10. End Sub


 
Voilà :)


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 06-12-2010 à 19:01:11    

Bonsoir,
He bien tout d'abord, merci de vos réponses.
Alors entre temps j'ai bidouillé quelque chose de complètement déguelasse, qui me prend pas mal de temps.
J'ai ensuite essayé ta macro otobox.
C'est exactement ce que je veux.
Par contre j'ai un autre soucis :(
http://nsa20.casimages.com/img/2010/12/06/mini_101206065734295888.jpg
 
L'image est petite mais c'est clicable pour se rendre compte.
En fait il est possible que les champs se répètent.
Pour modifier ca dans ta macro, au lieux de mettre "A;C", je peux en mettre plusieurs ? genre "A;C"D;F" ? (j'ai essayé en vain)
Il est aussi possible que l'heure diffère en fait. Le mieux serait de prendre les heures du genre 12:xx:xx. A la place de 12:00:00, je peux mettre quoi ?  
 Et pour finir, mais la ca peut être compliqué :D
Une fois j'ai le tableau "trié", je devrais arriver à un truc du style :  
xx/xx/xx 12:xx:xx                   ||||         Hauteurs
 
Le but ensuite est de voir si j'ai des séries complètes. Je m'expliques, il est possible d'avoir des données abscentes certains jours.
Avec une condition du genre si case actuelle(au niveau date/heure) n'est pas égale a la case d'avant + 1 jour alors émettre un message ou mettre en valeur cette localisation ?
 
J'ai l'air un peu ridicule, mais le problème vient de la quantité de données à traitée que j'ai. A la main, c'est du mission impossible :'(
Merci de votre aide.

Message cité 1 fois
Message édité par soruah le 06-12-2010 à 19:09:12
Reply

Marsh Posté le 06-12-2010 à 19:32:36    

soruah a écrit :

Bonsoir,
He bien tout d'abord, merci de vos réponses.
Alors entre temps j'ai bidouillé quelque chose de complètement déguelasse, qui me prend pas mal de temps.
J'ai ensuite essayé ta macro otobox.
C'est exactement ce que je veux.
Par contre j'ai un autre soucis :(
http://nsa20.casimages.com/img/201 [...] 295888.jpg

 

L'image est petite mais c'est clicable pour se rendre compte.
En fait il est possible que les champs se répètent.
Pour modifier ca dans ta macro, au lieux de mettre "A;C", je peux en mettre plusieurs ? genre "A;C"D;F" ? (j'ai essayé en vain)
Il est aussi possible que l'heure diffère en fait. Le mieux serait de prendre les heures du genre 12:xx:xx. A la place de 12:00:00, je peux mettre quoi ?
 Et pour finir, mais la ca peut être compliqué :D
Une fois j'ai le tableau "trié", je devrais arriver à un truc du style :
xx/xx/xx 12:xx:xx                   ||||         Hauteurs

 

Le but ensuite est de voir si j'ai des séries complètes. Je m'expliques, il est possible d'avoir des données abscentes certains jours.
Avec une condition du genre si case actuelle(au niveau date/heure) n'est pas égale a la case d'avant + 1 jour alors émettre un message ou mettre en valeur cette localisation ?

 

J'ai l'air un peu ridicule, mais le problème vient de la quantité de données à traitée que j'ai. A la main, c'est du mission impossible :'(
Merci de votre aide.


Si les données ne sont pas organisée en une seule liste et, comme ici, organisées en plusieurs listes, les filtres automatiques ne fonctionnent plus.
Tu peux copier-coller les colonnes  supplémentaires sous la première colonne de façon à n'avoir qu'une seule liste.

 

Sinon le caractère * remplace n'importe quel caractère. Ainsi, tu fais :

Criteria1:="=*12:*:00"


tu auras toutes les données entre 12:00 et 12:59, à condition que ça soit la minute juste (= 00 secondes).

 

Pour le reste, il faudrait effectivement passer par des macros, à moins que la mise en page conditionnelle puisse te venir en aide.

 

Dans chaque fichier, combien de lignes as tu à traiter ? Comment reçois-tu tes données ? Directement au format excel ou en fichier texte à importer ? As-tu ce besoin ponctuellement (ce qui semble le cas et là tu bricoles directement sur Excel) ou vas-tu trier ces données régulièrement (auquel cas les macros deviennent utiles) ?

 

Si c'est pour une étude ponctuelle, le plus simple est de se servir des fonctions offertes par Excel : copier-coller/filtre automatique/formules de calcul cachées.


Message édité par otobox le 06-12-2010 à 19:37:40

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 06-12-2010 à 19:37:53    

Alors, tout d'abord encore merci de ton aide rapide.
Ceci va être un traitement ponctuel.
Je dois le réaliser sur 6 fichiers. Ces fichiers renferment des mesures ponctuelles toutes les heures, ou toutes les 30min, ou toutes les 15min, et ca depuis 2000 à 2010.
Ce qui me fait un p'tit paquet de ligne non négligeables : aux alentours de 70 000 lignes sur plusieurs colonnes qui se répètent comme dans l'exemple précédent que j'ai mis en ligne.
 
J'ai essayé de modifier le filtre en mettant 12 : ?? : ??, mais ca a pas marché, j'vais essayé avec ta méthode.
Sinon, les 6 fichiers que j'ai, sont des fichiers excel.


Message édité par soruah le 06-12-2010 à 19:39:53
Reply

Marsh Posté le 06-12-2010 à 22:17:29    

Il me semble que la limite d'Excel c'est un peu plus de 65000 lignes. Dans ce cas là, ce que je ferais c'est couper-coller tes séries de colonnes dans des onglets. Ensuite filtres automatiques après avoir rajouté des colonnes supplémentaires qui testeraient les données manquantes.

 

Ou alors, tu importes tes données dans une base Access et tu filtres avec des requêtes.


Message édité par otobox le 06-12-2010 à 22:19:51

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed