Traitement de log sous excel - VB/VBA/VBS - Programmation
Marsh Posté le 20-02-2004 à 14:55:56
Franchement, si c'est pour faire du VBA, retourne sur Discus, hein...
Marsh Posté le 20-02-2004 à 14:56:41
tu crois que sur discu y'aura qq'un pr m'expliquer comment on fait ?
Marsh Posté le 20-02-2004 à 15:00:22
Boaf Attends drasche ou mareek, c'est eux les fondus de VB, perso j'y panne rien
Marsh Posté le 20-02-2004 à 15:08:54
deux possibilités: tu mets une formule dans la seconde colonne pour extraire x caractères (le plus simple), mais j'imagine que le nombre de pages peut tenir sur 2 chiffres? d'après ce que tu dis, extraire les deux derniers caractères et les convertir en nombre, ça devrait le faire avec une simple formule. Euh Right(A1, 2) par exemple.
Marsh Posté le 20-02-2004 à 15:09:44
drasche a écrit : deux possibilités: tu mets une formule dans la seconde colonne pour extraire x caractères (le plus simple), mais j'imagine que le nombre de pages peut tenir sur 2 chiffres? d'après ce que tu dis, extraire les deux derniers caractères et les convertir en nombre, ça devrait le faire avec une simple formule. Euh Right(A1, 2) par exemple. |
bah c'est ce a quoi je pensais, mais si jamais y a 100 pages
bon d'accord, c'est peu probable..
Marsh Posté le 20-02-2004 à 15:16:59
=VALUE(RIGHT(A1;2)) en fait
si ya plus tu recopies la formule, ça sera plus rapide qu'une macro à mon avis.
Marsh Posté le 20-02-2004 à 15:21:02
Si le champ "pages imprimées : xxxx" est tout au bout de la ligne, en cherchant à reculons le dernier ":" ou le dernier espace, il restera le nombre. Recherches de caractères un peu "lourdes".
J'avais écrit un prog DOS y a longtemps qui coupait les fichiers en colonnes mais valable que si champs de longueur fixe...
En QBasic, on peut écrire un truc qui lit ligne par ligne et crache que les nombres après "pages imprimées : " mais faut faire le lien avec le reste des données...
Si y en a qu'un par ligne, en remplaçant les ";" par chr$(9) (tabulation horizontale) Excel serait pas plus heureux ? Devrait faire deux colonnes ? En CSV, ça devrait être le séparateur colonne, normalement, donc "direct" (en théorie).
Marsh Posté le 20-02-2004 à 15:27:19
drasche a écrit : deux possibilités: tu mets une formule dans la seconde colonne pour extraire x caractères (le plus simple), mais j'imagine que le nombre de pages peut tenir sur 2 chiffres? d'après ce que tu dis, extraire les deux derniers caractères et les convertir en nombre, ça devrait le faire avec une simple formule. Euh Right(A1, 2) par exemple. |
2 chiffres, voir 3...
non ça marche pas, à cause des ": " avant
Marsh Posté le 20-02-2004 à 15:28:35
carbon_14 a écrit : En QBasic, on peut écrire un truc qui lit ligne par ligne et crache que les nombres après "pages imprimées : " mais faut faire le lien avec le reste des données... |
euh... g rien compris au binz. là c le dernier ":" je pense à chercher.
Marsh Posté le 20-02-2004 à 15:35:16
Thalis a écrit : 2 chiffres, voir 3... |
mmmh dans ce cas, le plus sûr est la macro, style tu pars du dernier caractère, tu continues à lire le précédent. Quand c'est autre chose, tu t'arrêtes, tu gardes les numéros pour en faire un nombre, que tu renvoies à l'appelant. Et tu utilises direct le nom de la fonction VBA dans la page. Ca doit le faire.
Marsh Posté le 20-02-2004 à 15:36:28
ouais en fait non, on peut chercher l'occurence de "pages imprimées :" et lire ce qu'il y a après sans se tromper alors.
Marsh Posté le 20-02-2004 à 15:42:35
drasche a écrit : ouais en fait non, on peut chercher l'occurence de "pages imprimées :" et lire ce qu'il y a après sans se tromper alors. |
bon pas de pbm et je lui dit ça comment ?
Marsh Posté le 20-02-2004 à 15:46:15
tu crées une macro en VBA qui va rechercher "imprimées : ", sachant que la suite est le nombre de pages, ça doit donner ceci:
Code :
|
Marsh Posté le 20-02-2004 à 16:10:32
ah oki merci. dernière question, je la fous où la macro vba ? (ds les macro oui je sais, mais je la fais s'executer à chaque ligne c ça ?)
Marsh Posté le 20-02-2004 à 16:13:19
oui, tu l'utilises comme n'importe quelle macro standard Excel.
Code :
|
par exemple
Marsh Posté le 20-02-2004 à 16:25:38
oki merci bcp de ton aide (celle de ceux qui ont repondu aussi hein )
Marsh Posté le 20-02-2004 à 16:46:14
Pour la solution avec la colonne supplémentaire extrayant le nombre de pages, voici la formule Excel à utiliser :
=CNUM(DROITE(LC(-1);NBCAR(LC(-1))-CHERCHE("pages imprimées :";LC(-1))-NBCAR("pages imprimées :" )))
a+
Marsh Posté le 20-02-2004 à 19:54:52
Sinon, je sais pas si renommé (une copie) en .CSV ne permettrait pas de lire deux colonnes.
fichier CSV (comma separated values) :
a;b;c
a est ds première colonne, b dans la seconde, c ds la troisième
Vu qu'il y a un point-virgule et un seul juste avant le bon endroit, à voir. Ca simplifierait la macro, juste "pages imprimées :" à enlever.
Marsh Posté le 20-02-2004 à 20:05:49
vi le pbm c que le log d'origine est déjà un csv, avec tab en separation
Marsh Posté le 20-02-2004 à 14:51:57
Bon j'vous explique mon pbm (vu qu'apparemment ici c plein de gens sympas )
Je recupere les logs d'impression de mon 2k serveur.
le pbm quand je les importe dans excel, c'est que la colonne detail me donne un truc comme ça :
Le document 1, Microsoft Word - superdocumentvachementimportant.doc possédé par userquiaoséimprimer a été imprimé sur hp LaserJet 1300n via le port hpLaserJet1300n_copy_1. Taille en octets : 59744 ; pages imprimées : 3
le tout dans une seule cellule (la dernière)
sauf que forcement pour compter le nb de pages pour chaque user je suis obligée de retaper à la main le nb de page ds la dernière colonne. c pas que je suis faignasse, mais à environ 200 impressions par jour et un compte rendu bi mensuel ça me gonfle un peu
donc je voudrais uen macro ou un petit truc en vba qui me prenne le chiffre marqué derrière "pages imprimées :" et me le recopie dans la colonne suivante (comme je faisais à la main sauf que g plus besoin de le faire)
y'a qq'un qui peut m'expliquer comment on lui dit ça au biniou svp ? (en langage treeees simple que je puisse reutiliser mais faut que je comprenne et c pas gagner, les admins reseau en prog c tjrs des grosses quiches )